Fix JsonSchema indexes

JsonSchema was throwing errors in the validator, so implement changes to
the update script to add the appropiate indexes.

Tested by:
Schema validator passes on the JsonSchema Fields

Change-Id: I6cb2737901b55c1089aef744d3ce3c3dfe13f17f
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/static/redfish/v1/JsonSchemas/AccountService/AccountService.json b/static/redfish/v1/JsonSchemas/AccountService/AccountService.json
new file mode 100644
index 0000000..72a708b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/AccountService/AccountService.json
@@ -0,0 +1,585 @@
+{
+    "$ref": "#/definitions/AccountService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "AccountProviderTypes": {
+            "enum": [
+                "RedfishService",
+                "ActiveDirectoryService",
+                "LDAPService",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "ActiveDirectoryService": "An external Active Directory Service.",
+                "LDAPService": "A generic external LDAP Service.",
+                "OEM": "An OEM specific external authentication or directory service.",
+                "RedfishService": "An external Redfish Service."
+            },
+            "enumLongDescriptions": {
+                "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.",
+                "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.",
+                "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity."
+            },
+            "type": "string"
+        },
+        "AccountService": {
+            "additionalProperties": false,
+            "description": "The AccountService schema contains properties for managing user accounts. The properties are common to all user accounts, such as password requirements, and control features such as account lockout. The schema also contains links to the collections of Manager Accounts and Roles.",
+            "longDescription": "This resource shall be used to represent a management account service for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "AccountLockoutCounterResetAfter": {
+                    "description": "The interval of time in seconds between the last failed login attempt and reset of the lockout threshold counter. This value must be less than or equal to AccountLockoutDuration. Reset sets the counter to zero.",
+                    "longDescription": "This property shall reference the threshold of time in seconds from the last failed login attempt at which point the AccountLockoutThreshold counter (that counts number of failed login attempts) is reset back to zero (at which point AccountLockoutThreshold failures would be required before the account is locked).  This value shall be less than or equal to AccountLockoutDuration. The threshold counter also resets to zero after each successful login.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": "number",
+                    "units": "s"
+                },
+                "AccountLockoutDuration": {
+                    "description": "The time in seconds an account is locked out. The value must be greater than or equal to the value of the AccountLockoutCounterResetAfter property. If set to 0, no lockout occurs.",
+                    "longDescription": "This property shall reference the period of time in seconds that an account is locked after the number of failed login attempts reaches the threshold referenced by AccountLockoutThreshold, within the window of time referenced by AccountLockoutCounterResetAfter.  The value shall be greater than or equal to the value of AccountLockoutResetAfter.  If set to 0, no lockout shall occur.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "s"
+                },
+                "AccountLockoutThreshold": {
+                    "description": "The number of failed login attempts allowed before a user account is locked for a specified duration. A value of 0 means it is never locked.",
+                    "longDescription": "This property shall reference the threshold of failed login attempts at which point the user's account is locked.  If set to 0, no lockout shall ever occur.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Accounts": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerAccountCollection.json#/definitions/ManagerAccountCollection",
+                    "description": "A link to a collection of Manager Accounts.",
+                    "longDescription": "This property shall contain the link to a collection of type ManagerAccountCollection.",
+                    "readonly": true
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "ActiveDirectory": {
+                    "$ref": "#/definitions/ExternalAccountProvider",
+                    "description": "The first ActiveDirectory external account provider this AccountService supports.",
+                    "longDescription": "This property shall contain the first ActiveDirectory external account provider this AccountService supports. If the AccountService supports 1 or more ActiveDirectory services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection."
+                },
+                "AdditionalExternalAccountProviders": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProviderCollection.json#/definitions/ExternalAccountProviderCollection",
+                    "description": "The additional external account providers this AccountService is using.",
+                    "longDescription": "This property shall contain an additional external account providers this AccountService is using.",
+                    "readonly": true
+                },
+                "AuthFailureLoggingThreshold": {
+                    "description": "The number of authorization failures allowed before the failure attempt is logged to the manager log.",
+                    "longDescription": "This property shall reference the threshold for when an authorization failure is logged.  This represents a modulo function value, thus the failure shall be logged every nth occurrence where n represents the value of this property.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": "number"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LDAP": {
+                    "$ref": "#/definitions/ExternalAccountProvider",
+                    "description": "The first LDAP external account provider this AccountService supports.",
+                    "longDescription": "This property shall contain the first LDAP external account provider this AccountService supports. If the AccountService supports 1 or more LDAP services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection."
+                },
+                "LocalAccountAuth": {
+                    "$ref": "#/definitions/LocalAccountAuth",
+                    "description": "Controls when this service will use the accounts defined withing this AccountService as part of authentication.",
+                    "longDescription": "This property shall govern how the service uses the Accounts collection within this AccountService as part of authentication.  Details about each of the modes are found in the description of the enum values.",
+                    "readonly": false
+                },
+                "MaxPasswordLength": {
+                    "description": "The maximum password length for this service.",
+                    "longDescription": "This property shall reference the maximum password length that the implementation will allow a password to be set to.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "MinPasswordLength": {
+                    "description": "The minimum password length for this service.",
+                    "longDescription": "This property shall reference the minimum password length that the implementation will allow a password to be set to.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PrivilegeMap": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.json#/definitions/PrivilegeRegistry",
+                    "description": "A reference to the Privilege mapping that defines the privileges needed to perform a requested operation on a URI associated with this service.",
+                    "longDescription": "The value of this property shall be a link to a resource of type PrivilegeMappoing that defines the privileges a user context needs in order to perform a requested operation on a URI associated with this service.",
+                    "readonly": true
+                },
+                "Roles": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/RoleCollection.json#/definitions/RoleCollection",
+                    "description": "A link to a collection of Roles.",
+                    "longDescription": "This property shall contain the link to a collection of type RoleCollection.",
+                    "readonly": true
+                },
+                "ServiceEnabled": {
+                    "description": "Indicates whether this service is enabled.  If set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the AccountService resource (for example, the Session Service) will fail.  New sessions cannot be started when the service is disabled. However, established sessions may still continue operating. This does not affect Basic AUTH connections.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.  If this is set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the Account Service, like the Session Service, will fail accessing.  Thus new sessions cannot be started with the service disabled (though established sessions may still continue operating).  Note: this does not affect Basic AUTH connections.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Authentication": {
+            "additionalProperties": false,
+            "description": "Contains the authentication information for the external service.",
+            "longDescription": "This type shall contain all the required information to authenticate to the external service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AuthenticationType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AuthenticationTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the type of authentication used to connect to the external account provider.",
+                    "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.",
+                    "readonly": false
+                },
+                "KerberosKeytab": {
+                    "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "Password": {
+                    "description": "This property is used with a PATCH or PUT to write the password for the account service.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the password for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Token": {
+                    "description": "This property is used with a PATCH or PUT to write the token for the account.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the token for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Username": {
+                    "description": "This property contains the user name for the account service.",
+                    "longDescription": "The value of this property shall be the user name for this account service.",
+                    "readonly": false,
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "AuthenticationTypes": {
+            "enum": [
+                "Token",
+                "KerberosKeytab",
+                "UsernameAndPassword",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "KerberosKeytab": "A kerberos keytab.",
+                "OEM": "An OEM specific authentication mechanism.",
+                "Token": "An opaque authentication token.",
+                "UsernameAndPassword": "Username and password combination."
+            },
+            "type": "string"
+        },
+        "ExternalAccountProvider": {
+            "additionalProperties": false,
+            "description": "A remote service that can provide accounts for this manager to utilize for authentication.",
+            "longDescription": "This type shall be used to represent resources that represent external user account services for this manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AccountProviderType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AccountProviderTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the type of external account provider this resource references.",
+                    "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.",
+                    "readonly": true
+                },
+                "Authentication": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Authentication"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the authentication information for the external account provider.",
+                    "longDescription": "The value of this property shall contain the authentication information for the external account provider."
+                },
+                "LDAPService": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LDAPService"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains additional mapping information needed to parse a generic LDAP service.",
+                    "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service."
+                },
+                "RemoteRoleMapping": {
+                    "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/RoleMapping"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "This property shall contain a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
+                    "type": "array"
+                },
+                "ServiceAddresses": {
+                    "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "LDAPSearchSettings": {
+            "additionalProperties": false,
+            "description": "Contains settings for searching a generic LDAP service.",
+            "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BaseDistinguishedNames": {
+                    "description": "The base distinguished names to use when searching the LDAP service.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "GroupNameAttribute": {
+                    "description": "The attribute name that contains the name of the Group.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "GroupsAttribute": {
+                    "description": "The attribute name that contains the Groups for a user.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "UsernameAttribute": {
+                    "description": "The attribute name that contains the Username.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the Username.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "LDAPService": {
+            "additionalProperties": false,
+            "description": "Contains settings for parsing a generic LDAP service.",
+            "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "SearchSettings": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LDAPSearchSettings"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the settings needed to search an external LDAP service.",
+                    "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service."
+                }
+            },
+            "type": "object"
+        },
+        "LocalAccountAuth": {
+            "enum": [
+                "Enabled",
+                "Disabled",
+                "Fallback"
+            ],
+            "enumDescriptions": {
+                "Disabled": "Authentication via accounts defined in this AccountService is disabled.",
+                "Enabled": "Authentication via accounts defined in this AccountService is enabled.",
+                "Fallback": "Authentication via accounts defined in this AccountService is only used if there are external account providers that are currently unreachable."
+            },
+            "enumLongDescriptions": {
+                "Disabled": "This value shall be used to indicate that the service will never authenticate users based on the Accounts collection within this AccountService.",
+                "Enabled": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService.",
+                "Fallback": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService only if there are external account providers that are currently unreachable."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "RoleMapping": {
+            "additionalProperties": false,
+            "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.",
+            "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "LocalRole": {
+                    "description": "The name of the local role in which to map the remote user or group.",
+                    "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "RemoteGroup": {
+                    "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
+                    "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RemoteUser": {
+                    "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.",
+                    "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#AccountService.v1_3_0.AccountService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/AccountService/index.json b/static/redfish/v1/JsonSchemas/AccountService/index.json
index 72a708b..c9750ea 100644
--- a/static/redfish/v1/JsonSchemas/AccountService/index.json
+++ b/static/redfish/v1/JsonSchemas/AccountService/index.json
@@ -1,585 +1,21 @@
 {
-    "$ref": "#/definitions/AccountService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "AccountProviderTypes": {
-            "enum": [
-                "RedfishService",
-                "ActiveDirectoryService",
-                "LDAPService",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "ActiveDirectoryService": "An external Active Directory Service.",
-                "LDAPService": "A generic external LDAP Service.",
-                "OEM": "An OEM specific external authentication or directory service.",
-                "RedfishService": "An external Redfish Service."
-            },
-            "enumLongDescriptions": {
-                "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.",
-                "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.",
-                "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity."
-            },
-            "type": "string"
-        },
-        "AccountService": {
-            "additionalProperties": false,
-            "description": "The AccountService schema contains properties for managing user accounts. The properties are common to all user accounts, such as password requirements, and control features such as account lockout. The schema also contains links to the collections of Manager Accounts and Roles.",
-            "longDescription": "This resource shall be used to represent a management account service for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "AccountLockoutCounterResetAfter": {
-                    "description": "The interval of time in seconds between the last failed login attempt and reset of the lockout threshold counter. This value must be less than or equal to AccountLockoutDuration. Reset sets the counter to zero.",
-                    "longDescription": "This property shall reference the threshold of time in seconds from the last failed login attempt at which point the AccountLockoutThreshold counter (that counts number of failed login attempts) is reset back to zero (at which point AccountLockoutThreshold failures would be required before the account is locked).  This value shall be less than or equal to AccountLockoutDuration. The threshold counter also resets to zero after each successful login.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": "number",
-                    "units": "s"
-                },
-                "AccountLockoutDuration": {
-                    "description": "The time in seconds an account is locked out. The value must be greater than or equal to the value of the AccountLockoutCounterResetAfter property. If set to 0, no lockout occurs.",
-                    "longDescription": "This property shall reference the period of time in seconds that an account is locked after the number of failed login attempts reaches the threshold referenced by AccountLockoutThreshold, within the window of time referenced by AccountLockoutCounterResetAfter.  The value shall be greater than or equal to the value of AccountLockoutResetAfter.  If set to 0, no lockout shall occur.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "s"
-                },
-                "AccountLockoutThreshold": {
-                    "description": "The number of failed login attempts allowed before a user account is locked for a specified duration. A value of 0 means it is never locked.",
-                    "longDescription": "This property shall reference the threshold of failed login attempts at which point the user's account is locked.  If set to 0, no lockout shall ever occur.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Accounts": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerAccountCollection.json#/definitions/ManagerAccountCollection",
-                    "description": "A link to a collection of Manager Accounts.",
-                    "longDescription": "This property shall contain the link to a collection of type ManagerAccountCollection.",
-                    "readonly": true
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "ActiveDirectory": {
-                    "$ref": "#/definitions/ExternalAccountProvider",
-                    "description": "The first ActiveDirectory external account provider this AccountService supports.",
-                    "longDescription": "This property shall contain the first ActiveDirectory external account provider this AccountService supports. If the AccountService supports 1 or more ActiveDirectory services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection."
-                },
-                "AdditionalExternalAccountProviders": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProviderCollection.json#/definitions/ExternalAccountProviderCollection",
-                    "description": "The additional external account providers this AccountService is using.",
-                    "longDescription": "This property shall contain an additional external account providers this AccountService is using.",
-                    "readonly": true
-                },
-                "AuthFailureLoggingThreshold": {
-                    "description": "The number of authorization failures allowed before the failure attempt is logged to the manager log.",
-                    "longDescription": "This property shall reference the threshold for when an authorization failure is logged.  This represents a modulo function value, thus the failure shall be logged every nth occurrence where n represents the value of this property.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": "number"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LDAP": {
-                    "$ref": "#/definitions/ExternalAccountProvider",
-                    "description": "The first LDAP external account provider this AccountService supports.",
-                    "longDescription": "This property shall contain the first LDAP external account provider this AccountService supports. If the AccountService supports 1 or more LDAP services as an external account provider this entity must be populated by default. This entity shall not be present in the AdditionalExternalAccountProviders collection."
-                },
-                "LocalAccountAuth": {
-                    "$ref": "#/definitions/LocalAccountAuth",
-                    "description": "Controls when this service will use the accounts defined withing this AccountService as part of authentication.",
-                    "longDescription": "This property shall govern how the service uses the Accounts collection within this AccountService as part of authentication.  Details about each of the modes are found in the description of the enum values.",
-                    "readonly": false
-                },
-                "MaxPasswordLength": {
-                    "description": "The maximum password length for this service.",
-                    "longDescription": "This property shall reference the maximum password length that the implementation will allow a password to be set to.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "MinPasswordLength": {
-                    "description": "The minimum password length for this service.",
-                    "longDescription": "This property shall reference the minimum password length that the implementation will allow a password to be set to.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PrivilegeMap": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.json#/definitions/PrivilegeRegistry",
-                    "description": "A reference to the Privilege mapping that defines the privileges needed to perform a requested operation on a URI associated with this service.",
-                    "longDescription": "The value of this property shall be a link to a resource of type PrivilegeMappoing that defines the privileges a user context needs in order to perform a requested operation on a URI associated with this service.",
-                    "readonly": true
-                },
-                "Roles": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/RoleCollection.json#/definitions/RoleCollection",
-                    "description": "A link to a collection of Roles.",
-                    "longDescription": "This property shall contain the link to a collection of type RoleCollection.",
-                    "readonly": true
-                },
-                "ServiceEnabled": {
-                    "description": "Indicates whether this service is enabled.  If set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the AccountService resource (for example, the Session Service) will fail.  New sessions cannot be started when the service is disabled. However, established sessions may still continue operating. This does not affect Basic AUTH connections.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.  If this is set to false, the AccountService is disabled.  This means no users can be created, deleted or modified.  Any service attempting to access the Account Service, like the Session Service, will fail accessing.  Thus new sessions cannot be started with the service disabled (though established sessions may still continue operating).  Note: this does not affect Basic AUTH connections.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Authentication": {
-            "additionalProperties": false,
-            "description": "Contains the authentication information for the external service.",
-            "longDescription": "This type shall contain all the required information to authenticate to the external service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AuthenticationType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AuthenticationTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the type of authentication used to connect to the external account provider.",
-                    "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.",
-                    "readonly": false
-                },
-                "KerberosKeytab": {
-                    "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "Password": {
-                    "description": "This property is used with a PATCH or PUT to write the password for the account service.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the password for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Token": {
-                    "description": "This property is used with a PATCH or PUT to write the token for the account.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the token for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Username": {
-                    "description": "This property contains the user name for the account service.",
-                    "longDescription": "The value of this property shall be the user name for this account service.",
-                    "readonly": false,
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "AuthenticationTypes": {
-            "enum": [
-                "Token",
-                "KerberosKeytab",
-                "UsernameAndPassword",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "KerberosKeytab": "A kerberos keytab.",
-                "OEM": "An OEM specific authentication mechanism.",
-                "Token": "An opaque authentication token.",
-                "UsernameAndPassword": "Username and password combination."
-            },
-            "type": "string"
-        },
-        "ExternalAccountProvider": {
-            "additionalProperties": false,
-            "description": "A remote service that can provide accounts for this manager to utilize for authentication.",
-            "longDescription": "This type shall be used to represent resources that represent external user account services for this manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AccountProviderType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AccountProviderTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the type of external account provider this resource references.",
-                    "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.",
-                    "readonly": true
-                },
-                "Authentication": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Authentication"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the authentication information for the external account provider.",
-                    "longDescription": "The value of this property shall contain the authentication information for the external account provider."
-                },
-                "LDAPService": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LDAPService"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains additional mapping information needed to parse a generic LDAP service.",
-                    "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service."
-                },
-                "RemoteRoleMapping": {
-                    "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/RoleMapping"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "This property shall contain a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
-                    "type": "array"
-                },
-                "ServiceAddresses": {
-                    "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "LDAPSearchSettings": {
-            "additionalProperties": false,
-            "description": "Contains settings for searching a generic LDAP service.",
-            "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BaseDistinguishedNames": {
-                    "description": "The base distinguished names to use when searching the LDAP service.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "GroupNameAttribute": {
-                    "description": "The attribute name that contains the name of the Group.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "GroupsAttribute": {
-                    "description": "The attribute name that contains the Groups for a user.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "UsernameAttribute": {
-                    "description": "The attribute name that contains the Username.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the Username.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "LDAPService": {
-            "additionalProperties": false,
-            "description": "Contains settings for parsing a generic LDAP service.",
-            "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "SearchSettings": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LDAPSearchSettings"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the settings needed to search an external LDAP service.",
-                    "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service."
-                }
-            },
-            "type": "object"
-        },
-        "LocalAccountAuth": {
-            "enum": [
-                "Enabled",
-                "Disabled",
-                "Fallback"
-            ],
-            "enumDescriptions": {
-                "Disabled": "Authentication via accounts defined in this AccountService is disabled.",
-                "Enabled": "Authentication via accounts defined in this AccountService is enabled.",
-                "Fallback": "Authentication via accounts defined in this AccountService is only used if there are external account providers that are currently unreachable."
-            },
-            "enumLongDescriptions": {
-                "Disabled": "This value shall be used to indicate that the service will never authenticate users based on the Accounts collection within this AccountService.",
-                "Enabled": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService.",
-                "Fallback": "This value shall be used to indicate that the service will authenticate users based on the Accounts collection within this AccountService only if there are external account providers that are currently unreachable."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "RoleMapping": {
-            "additionalProperties": false,
-            "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.",
-            "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "LocalRole": {
-                    "description": "The name of the local role in which to map the remote user or group.",
-                    "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "RemoteGroup": {
-                    "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
-                    "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RemoteUser": {
-                    "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.",
-                    "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/AccountService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "AccountService Schema File",
+    "Schema": "#AccountService.AccountService",
+    "Description": "AccountService Schema File Location",
+    "Id": "AccountService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/AccountService.json",
+            "Uri": "/redfish/v1/JSONSchemas/AccountService/AccountService.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#AccountService.v1_3_0.AccountService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json b/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json
new file mode 100644
index 0000000..bc81ad4
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json
@@ -0,0 +1,165 @@
+{
+    "$ref": "#/definitions/ActionInfo",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "ActionInfo": {
+            "additionalProperties": false,
+            "description": "The ActionInfo schema describes the parameters and other information necessary to perform a Redfish Action on a particular Action target. Parameter support can differ between vendors and even between instances of a resource. This data can be used to ensure Action requests from applications contain supported parameters.",
+            "longDescription": "This resource shall be used to represent information about the supported parameters for an Action within a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Parameters": {
+                    "description": "The parameters associated with the specified Redfish Action.",
+                    "items": {
+                        "$ref": "#/definitions/Parameters"
+                    },
+                    "longDescription": "This property shall contain a list of parameters associated with a Redfish Action associated with this resource.",
+                    "type": "array"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ParameterTypes": {
+            "enum": [
+                "Boolean",
+                "Number",
+                "NumberArray",
+                "String",
+                "StringArray",
+                "Object",
+                "ObjectArray"
+            ],
+            "enumDescriptions": {
+                "Boolean": "A boolean (true or false).",
+                "Number": "A number.",
+                "NumberArray": "An array of numbers.",
+                "Object": "An embedded JSON object.",
+                "ObjectArray": "An array of JSON objects.",
+                "String": "A string.",
+                "StringArray": "An array of strings."
+            },
+            "type": "string"
+        },
+        "Parameters": {
+            "additionalProperties": false,
+            "description": "A parameter associated with the specified Redfish Action.",
+            "longDescription": "This property shall contain information about a specific parameter associated with a Redfish Action associated with this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AllowableValues": {
+                    "description": "A list of values for this parameter supported by this Action target.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "This property shall indicate the allowable values for this parameter as applied to this Action target.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "DataType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ParameterTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The JSON property type used for this parameter.",
+                    "longDescription": "This property shall indicate the JSON property type of the parameter.",
+                    "readonly": true
+                },
+                "Name": {
+                    "description": "The name of the parameter for this Action.",
+                    "longDescription": "This property shall contain the name of the parameter used by the associated Redfish Action.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "ObjectDataType": {
+                    "description": "The OData Type of an object-based parameter.",
+                    "longDescription": "This property shall describe the entity type definition (in @odata.type format) for the parameter.  This property shall be required for parameters with a DataType of Object or ObjectArray, and shall not be present for parameters with other DataType(s).",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Required": {
+                    "description": "Indicates whether the parameter is required to perform this Action.",
+                    "longDescription": "This property shall return true if the parameter is required to be present to perform the associated Action, and shall be false if the parameter is not required (optional) to perform the associated Action.",
+                    "readonly": true,
+                    "type": "boolean"
+                }
+            },
+            "required": [
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#ActionInfo.v1_0_3.ActionInfo"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ActionInfo/index.json b/static/redfish/v1/JsonSchemas/ActionInfo/index.json
index bc81ad4..e212eed 100644
--- a/static/redfish/v1/JsonSchemas/ActionInfo/index.json
+++ b/static/redfish/v1/JsonSchemas/ActionInfo/index.json
@@ -1,165 +1,21 @@
 {
-    "$ref": "#/definitions/ActionInfo",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "ActionInfo": {
-            "additionalProperties": false,
-            "description": "The ActionInfo schema describes the parameters and other information necessary to perform a Redfish Action on a particular Action target. Parameter support can differ between vendors and even between instances of a resource. This data can be used to ensure Action requests from applications contain supported parameters.",
-            "longDescription": "This resource shall be used to represent information about the supported parameters for an Action within a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Parameters": {
-                    "description": "The parameters associated with the specified Redfish Action.",
-                    "items": {
-                        "$ref": "#/definitions/Parameters"
-                    },
-                    "longDescription": "This property shall contain a list of parameters associated with a Redfish Action associated with this resource.",
-                    "type": "array"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ParameterTypes": {
-            "enum": [
-                "Boolean",
-                "Number",
-                "NumberArray",
-                "String",
-                "StringArray",
-                "Object",
-                "ObjectArray"
-            ],
-            "enumDescriptions": {
-                "Boolean": "A boolean (true or false).",
-                "Number": "A number.",
-                "NumberArray": "An array of numbers.",
-                "Object": "An embedded JSON object.",
-                "ObjectArray": "An array of JSON objects.",
-                "String": "A string.",
-                "StringArray": "An array of strings."
-            },
-            "type": "string"
-        },
-        "Parameters": {
-            "additionalProperties": false,
-            "description": "A parameter associated with the specified Redfish Action.",
-            "longDescription": "This property shall contain information about a specific parameter associated with a Redfish Action associated with this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AllowableValues": {
-                    "description": "A list of values for this parameter supported by this Action target.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "This property shall indicate the allowable values for this parameter as applied to this Action target.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "DataType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ParameterTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The JSON property type used for this parameter.",
-                    "longDescription": "This property shall indicate the JSON property type of the parameter.",
-                    "readonly": true
-                },
-                "Name": {
-                    "description": "The name of the parameter for this Action.",
-                    "longDescription": "This property shall contain the name of the parameter used by the associated Redfish Action.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "ObjectDataType": {
-                    "description": "The OData Type of an object-based parameter.",
-                    "longDescription": "This property shall describe the entity type definition (in @odata.type format) for the parameter.  This property shall be required for parameters with a DataType of Object or ObjectArray, and shall not be present for parameters with other DataType(s).",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Required": {
-                    "description": "Indicates whether the parameter is required to perform this Action.",
-                    "longDescription": "This property shall return true if the parameter is required to be present to perform the associated Action, and shall be false if the parameter is not required (optional) to perform the associated Action.",
-                    "readonly": true,
-                    "type": "boolean"
-                }
-            },
-            "required": [
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ActionInfo",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ActionInfo Schema File",
+    "Schema": "#ActionInfo.ActionInfo",
+    "Description": "ActionInfo Schema File Location",
+    "Id": "ActionInfo",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ActionInfo.json",
+            "Uri": "/redfish/v1/JSONSchemas/ActionInfo/ActionInfo.json"
         }
-    },
-    "title": "#ActionInfo.v1_0_3.ActionInfo"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Assembly/Assembly.json b/static/redfish/v1/JsonSchemas/Assembly/Assembly.json
new file mode 100644
index 0000000..c2c8e4f
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Assembly/Assembly.json
@@ -0,0 +1,323 @@
+{
+    "$ref": "#/definitions/Assembly",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Assembly": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Assembly properties.",
+            "longDescription": "This resource shall be used to represent an assembly information resource for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assemblies": {
+                    "description": "This is the definition for an assembly information record.",
+                    "items": {
+                        "$ref": "#/definitions/AssemblyData"
+                    },
+                    "longDescription": "These properties shall be the definition for assembly records  for a Redfish implementation.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Assemblies@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "AssemblyData": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/AssemblyDataActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "BinaryDataURI": {
+                    "description": "URI that provides the ability to access an image of the assembly information.",
+                    "format": "uri",
+                    "longDescription": "The value of this property shall be a URI at which the Service provides for the download of the OEM-specific binary image of the assembly data.  An HTTP GET from this URI shall return a response payload of MIME time application/octet-stream. An HTTP PUT to this URI, if supported by the Service, shall replace the binary image of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "description": "Description of the Assembly.",
+                    "longDescription": "The value of this property shall be a description of this assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "EngineeringChangeLevel": {
+                    "description": "Engineering change level of the Assembly.",
+                    "longDescription": "The value of this property shall be the Engineering Change Level (ECL) or revision of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Model": {
+                    "description": "Model number of the Assembly.",
+                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "description": "Name of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "Part number of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Producer": {
+                    "description": "Producer or manufacturer of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the company which supplied or manufactured this assembly. This value shall be equal to the 'Manufacturer' field in a PLDM FRU structure, if applicable, for this assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ProductionDate": {
+                    "description": "Production date of the Assembly.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall be the date of production or manufacture for this assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SKU": {
+                    "description": "SKU of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SparePartNumber": {
+                    "description": "Spare part number of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Vendor": {
+                    "description": "Vendor of the Assembly.",
+                    "longDescription": "The value of this property shall be the name of the company which provides the final product that includes this assembly. This value shall be equal to the 'Vendor' field in a PLDM FRU structure, if applicable, for this assembly.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Version": {
+                    "description": "Version of the Assembly.",
+                    "longDescription": "The value of this property shall be the version of the assembly as determined by the vendor or supplier.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "AssemblyDataActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/AssemblyDataOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AssemblyDataOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Assembly.v1_1_0.Assembly"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Assembly/index.json b/static/redfish/v1/JsonSchemas/Assembly/index.json
index c2c8e4f..81a70dc 100644
--- a/static/redfish/v1/JsonSchemas/Assembly/index.json
+++ b/static/redfish/v1/JsonSchemas/Assembly/index.json
@@ -1,323 +1,21 @@
 {
-    "$ref": "#/definitions/Assembly",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Assembly": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Assembly properties.",
-            "longDescription": "This resource shall be used to represent an assembly information resource for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assemblies": {
-                    "description": "This is the definition for an assembly information record.",
-                    "items": {
-                        "$ref": "#/definitions/AssemblyData"
-                    },
-                    "longDescription": "These properties shall be the definition for assembly records  for a Redfish implementation.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Assemblies@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "AssemblyData": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/AssemblyDataActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "BinaryDataURI": {
-                    "description": "URI that provides the ability to access an image of the assembly information.",
-                    "format": "uri",
-                    "longDescription": "The value of this property shall be a URI at which the Service provides for the download of the OEM-specific binary image of the assembly data.  An HTTP GET from this URI shall return a response payload of MIME time application/octet-stream. An HTTP PUT to this URI, if supported by the Service, shall replace the binary image of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "description": "Description of the Assembly.",
-                    "longDescription": "The value of this property shall be a description of this assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "EngineeringChangeLevel": {
-                    "description": "Engineering change level of the Assembly.",
-                    "longDescription": "The value of this property shall be the Engineering Change Level (ECL) or revision of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Model": {
-                    "description": "Model number of the Assembly.",
-                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "description": "Name of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "Part number of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Producer": {
-                    "description": "Producer or manufacturer of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the company which supplied or manufactured this assembly. This value shall be equal to the 'Manufacturer' field in a PLDM FRU structure, if applicable, for this assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ProductionDate": {
-                    "description": "Production date of the Assembly.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall be the date of production or manufacture for this assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SKU": {
-                    "description": "SKU of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SparePartNumber": {
-                    "description": "Spare part number of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Vendor": {
-                    "description": "Vendor of the Assembly.",
-                    "longDescription": "The value of this property shall be the name of the company which provides the final product that includes this assembly. This value shall be equal to the 'Vendor' field in a PLDM FRU structure, if applicable, for this assembly.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Version": {
-                    "description": "Version of the Assembly.",
-                    "longDescription": "The value of this property shall be the version of the assembly as determined by the vendor or supplier.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "AssemblyDataActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/AssemblyDataOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AssemblyDataOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Assembly",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Assembly Schema File",
+    "Schema": "#Assembly.Assembly",
+    "Description": "Assembly Schema File Location",
+    "Id": "Assembly",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Assembly.json",
+            "Uri": "/redfish/v1/JSONSchemas/Assembly/Assembly.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Assembly.v1_1_0.Assembly"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json b/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json
new file mode 100644
index 0000000..7b3491e
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json
@@ -0,0 +1,884 @@
+{
+    "$ref": "#/definitions/AttributeRegistry",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AttributeRegistry": {
+            "additionalProperties": false,
+            "description": "The AttributeRegistry schema contains a set of key-value pairs that represents the structure of a Registry. It includes mechanisms for building user interfaces (menus), allowing consistent navigation of the contents. The Attribute Registry is specific to a particular implementation or product. The attributes and property names are not standardized.",
+            "longDescription": "This resource shall be used to represent an Attribute registry for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Language": {
+                    "description": "This is the RFC 5646 compliant language code for the registry.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OwningEntity": {
+                    "description": "This is the organization or company that publishes this registry.",
+                    "longDescription": "The value of this property shall be a string that represents the publisher of this registry.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "RegistryEntries": {
+                    "$ref": "#/definitions/RegistryEntries",
+                    "description": "List of all attributes and their metadata for this component.",
+                    "longDescription": "The value of this property shall a list of all attributes for this component, along with their possible values, dependencies, and other metadata."
+                },
+                "RegistryVersion": {
+                    "description": "This is the attribute registry version which is used in the middle portion of a AttributeRegistry.",
+                    "longDescription": "The value of this property shall be the version of this attribute registry. The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "SupportedSystems": {
+                    "description": "Array of systems supported by this attribute registry.",
+                    "items": {
+                        "$ref": "#/definitions/SupportedSystems"
+                    },
+                    "longDescription": "The value of this property shall be an array containing a list of systems supported by this attribute registry.",
+                    "type": "array"
+                }
+            },
+            "required": [
+                "Language",
+                "RegistryVersion",
+                "OwningEntity",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "AttributeType": {
+            "enum": [
+                "Enumeration",
+                "String",
+                "Integer",
+                "Boolean",
+                "Password"
+            ],
+            "enumDescriptions": {
+                "Boolean": "The attributes that are true or false.",
+                "Enumeration": "The attributes that include a list of the known possible enumerated values.",
+                "Integer": "The attributes that have integer numeric values.",
+                "Password": "The attributes that include password values and are not displayed as plain text. The value shall be null for GET requests.",
+                "String": "The attributes that include free form text in their values."
+            },
+            "type": "string"
+        },
+        "AttributeValue": {
+            "additionalProperties": false,
+            "description": "A possible value for attributes of type 'Enumeration'.",
+            "longDescription": "This type shall describe a possible value of an attribute of type 'Enumeration'.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ValueDisplayName": {
+                    "description": "A user-readable display string of the value of the attribute in the defined 'Language'.",
+                    "longDescription": "The value of this property shall be a string representing the user-readable display string of the value of the attribute in the defined 'Language'.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ValueName": {
+                    "description": "The value name of the attribute.",
+                    "longDescription": "The value of this property shall be a string representing the value name of the attribute. ValueName is a unique string within the list of possible values in the 'Value' array of a given attribute.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "Attributes": {
+            "additionalProperties": false,
+            "description": "An attribute and its possible values.",
+            "longDescription": "This type shall describe an attribute and its possible values and other metadata.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AttributeName": {
+                    "description": "The unique name of the attribute.",
+                    "longDescription": "The value of this property shall be the name of this attribute that is unique in this registry.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "CurrentValue": {
+                    "description": "Placeholder of the current value of the attribute.",
+                    "longDescription": "Placeholder of the current value of the attribute, to aid in evaluating dependencies. The current value of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "boolean",
+                        "number",
+                        "null"
+                    ]
+                },
+                "DefaultValue": {
+                    "description": "The default current value of the attribute.",
+                    "longDescription": "The value of this property shall be the default value of the attribute.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "boolean",
+                        "number",
+                        "null"
+                    ]
+                },
+                "DisplayName": {
+                    "description": "The user-readable display string of the attribute in the defined 'Language'.",
+                    "longDescription": "The value of this property shall be the user-readable display string of the attribute in the defined 'Language'.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DisplayOrder": {
+                    "description": "The numeric value describing the ascending order that the attribute is displayed relative to other attributes.",
+                    "longDescription": "The value of this property shall be a number the describes the ascending order in which this attribute is displayed, relative to other attributes.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "GrayOut": {
+                    "description": "The gray-out state of this attribute.",
+                    "longDescription": "The value of this property shall be a boolean describing the gray-out state of this attribute. When set to true, a grayed-out attribute should be grayed out in user interfaces. But, unlike ReadOnly, the value of grayed-out attributes might still be be modified. The grayout state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "HelpText": {
+                    "description": "The help text for the attribute.",
+                    "longDescription": "The value of this property shall be the help text of the attribute.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Hidden": {
+                    "description": "The hidden state of this attribute.",
+                    "longDescription": "The value of this property shall be a boolean describing the visibility state of this attribute. When set to true, a hidden attribute should be hidden in user interfaces. The hidden state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Immutable": {
+                    "description": "Defines whether this attribute is immutable or not.",
+                    "longDescription": "The value of this property shall be a boolean describing the immutable state of this attribute. Immutable attributes should not be modified and are typically used to reflect a hardware state.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IsSystemUniqueProperty": {
+                    "description": "Defines whether this attribute is unique for this system and should not be replicated.",
+                    "longDescription": "The value of this property shall be a boolean describing this attribute is unique or not. A value of true indicates that the attribute is unique and should not be replicated.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "LowerBound": {
+                    "description": "The lower limit of the value of an attribute of type 'Integer'.",
+                    "longDescription": "The value of this property shall be a number indicating the lower limit of the value of an attribute of type 'Integer'.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MaxLength": {
+                    "description": "The maximum character length of the value of an attribute of type 'String'.",
+                    "longDescription": "The value of this property shall be a number indicating the maximum character length of the value of an attribute of type 'String'.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MenuPath": {
+                    "description": "A path that describes the menu hierarchy of this attribute.",
+                    "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this attribute, in the form of a path to the menu names.",
+                    "pattern": "^[.]?[A-Za-z0-9_//]+$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MinLength": {
+                    "description": "The minimum character length of the value of an attribute of type 'String'.",
+                    "longDescription": "The value of this property shall be a number indicating the minimum character length of the value of an attribute of type 'String'.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "ReadOnly": {
+                    "description": "The read-only state of this attribute.",
+                    "longDescription": "The value of this property shall be a boolean describing the read-only state of attribute. A read-only attribute cannot be modified, and should be grayed out in user interfaces. The read-only state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "ResetRequired": {
+                    "description": "True if changing the value of this attribute requires a system or device reset in order to take effect.",
+                    "longDescription": "The value of this property shall be a boolean describing the requirement for a system or device reset for this attribute value change to take effect.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "ScalarIncrement": {
+                    "description": "The amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change.",
+                    "longDescription": "The value of this property shall be a number indicating the amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change. A ScalarIncrement value of 0 indicates a free-form numeric user input.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Type": {
+                    "$ref": "#/definitions/AttributeType",
+                    "description": "The type of the attribute.",
+                    "longDescription": "The value of this property shall be an enumeration describing type of the attribute.",
+                    "readonly": true
+                },
+                "UefiDevicePath": {
+                    "description": "The UEFI device path that qualifies this attribute.",
+                    "longDescription": "This property shall contain the UEFI device path string used to qualify and locate the specific device for this Attribute, as defined by the UEFI Specification.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "UefiKeywordName": {
+                    "description": "The UEFI KeywordString of the attribute.",
+                    "longDescription": "The value of this property shall be the configuration KeywordString of this attribute, as defined in the UEFI Specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "UefiNamespaceId": {
+                    "description": "The UEFI NamespaceId of the attribute.",
+                    "longDescription": "The value of this property shall be the configuration NamespaceId of this attribute, as defined in the UEFI Specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "UpperBound": {
+                    "description": "The upper limit of the value of an attribute of type 'Integer'.",
+                    "longDescription": "The value of this property shall be a number indicating the upper limit of the value of an attribute of type 'Integer'.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Value": {
+                    "description": "The array containing possible values for attributes of type 'Enumeration'.",
+                    "items": {
+                        "$ref": "#/definitions/AttributeValue"
+                    },
+                    "longDescription": "The value of this property shall be an array containing the possible values of an attribute of type 'Enumeration'.",
+                    "type": "array"
+                },
+                "ValueExpression": {
+                    "description": "A regular expression that is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.",
+                    "longDescription": "The value of this property shall be a regular expression that is valid according to the Perl regular expression dialect. This string is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "WarningText": {
+                    "description": "The warning text for changing the attribute.",
+                    "longDescription": "The value of this property shall be the warning text of the attribute.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "WriteOnly": {
+                    "description": "Defines whether this attribute is write-only. Such attributes revert back to their initial value after settings are applied.",
+                    "longDescription": "The value of this property shall be a boolean describing the write-only state of this attribute. A write-only attribute reverts back to it's initial value after settings are applied.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "Dependencies": {
+            "additionalProperties": false,
+            "description": "A dependency of attributes on this component.",
+            "longDescription": "This type shall describe a dependency of attributes on this component.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Dependency": {
+                    "$ref": "#/definitions/Dependency",
+                    "description": "The dependency expression for one or more Attributes in this Attribute Registry.",
+                    "longDescription": "The value of this property shall be the dependency expression for one or more Attributes in this Attribute Registry."
+                },
+                "DependencyFor": {
+                    "description": "The AttributeName of the attribute whose change triggers the evaluation of this dependency expression.",
+                    "longDescription": "The value of this property shall be the AttributeName of the attribute whose change triggers the evaluation of this dependency expression.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Type": {
+                    "$ref": "#/definitions/DependencyType",
+                    "description": "The type of the dependency structure.",
+                    "longDescription": "The value of this property shall be an enumeration describing type of the attribute dependency.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "Dependency": {
+            "additionalProperties": false,
+            "description": "The dependency expression for one or more Attributes in this Attribute Registry.",
+            "longDescription": "This type shall describe the dependency expression for one or more Attributes in this Attribute Registry.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MapFrom": {
+                    "description": "Array of the map-from conditions for mapping dependency.",
+                    "items": {
+                        "$ref": "#/definitions/MapFrom"
+                    },
+                    "longDescription": "The value of this property shall be an array containing the map-from conditions for a dependency of Type 'Map'.",
+                    "type": "array"
+                },
+                "MapToAttribute": {
+                    "description": "The Name of the attribute that is affected by this dependency expression.",
+                    "longDescription": "The value of this property shall be the AttributeName of the attribute that is affected by this dependency expression.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MapToProperty": {
+                    "$ref": "#/definitions/MapToProperty",
+                    "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.",
+                    "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.",
+                    "readonly": true
+                },
+                "MapToValue": {
+                    "description": "The value that MapToProperty is changed to if the dependency expression evaluates to true.",
+                    "longDescription": "The value that the property specified in MapToProperty (in the attribute specified in MapToAttribute) is changed to if the dependency expression evaluates to true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "boolean",
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "DependencyType": {
+            "enum": [
+                "Map"
+            ],
+            "enumDescriptions": {
+                "Map": "A simple mapping dependency. The attribute value or state is changed to the mapped value if the condition evaluates to true."
+            },
+            "type": "string"
+        },
+        "MapFrom": {
+            "additionalProperties": false,
+            "description": "A map-from condition for mapping dependency.",
+            "longDescription": "This type shall describe a map-from condition for a dependency of Type 'Map'.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MapFromAttribute": {
+                    "description": "The attribute that is used to evaluate this dependency expression.",
+                    "longDescription": "The value of this property shall be the AttributeName of the attribute that is used in evaluating this dependency expression term.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MapFromCondition": {
+                    "$ref": "#/definitions/MapFromCondition",
+                    "description": "The condition that is used to evaluate this dependency expression.",
+                    "longDescription": "The value of this property shall be the condition that is used to evaluate this dependency expression. For example, 'EQU' or 'NEQ'.",
+                    "readonly": true
+                },
+                "MapFromProperty": {
+                    "$ref": "#/definitions/MapFromProperty",
+                    "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.",
+                    "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.",
+                    "readonly": true
+                },
+                "MapFromValue": {
+                    "description": "The value that the is used property specified in MapFromProperty that is used to evaluate this dependency expression.",
+                    "longDescription": "The value that the property specified in MapFromProperty (in the attribute specified in MapFromAttribute) that is used to evaluate this dependency expression.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "boolean",
+                        "number",
+                        "null"
+                    ]
+                },
+                "MapTerms": {
+                    "$ref": "#/definitions/MapTerms",
+                    "description": "The logical term used to combine two or more MapFrom conditions in this dependency expression.",
+                    "longDescription": "The value of this property shall be the logical term used to combine two or more MapFrom conditions in this dependency expression. For example, 'AND' for logical AND, or 'OR' for logical OR of the conditions.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "MapFromCondition": {
+            "enum": [
+                "EQU",
+                "NEQ",
+                "GTR",
+                "GEQ",
+                "LSS",
+                "LEQ"
+            ],
+            "enumDescriptions": {
+                "EQU": "The logical operation for 'Equal'.",
+                "GEQ": "The logical operation for 'Greater than or Equal'.",
+                "GTR": "The logical operation for 'Greater than'.",
+                "LEQ": "The logical operation for 'Less than or Equal'.",
+                "LSS": "The logical operation for 'Less than'.",
+                "NEQ": "The logical operation for 'Not Equal'."
+            },
+            "type": "string"
+        },
+        "MapFromProperty": {
+            "enum": [
+                "CurrentValue",
+                "DefaultValue",
+                "ReadOnly",
+                "WriteOnly",
+                "GrayOut",
+                "Hidden",
+                "LowerBound",
+                "UpperBound",
+                "MinLength",
+                "MaxLength",
+                "ScalarIncrement"
+            ],
+            "enumDescriptions": {
+                "CurrentValue": "The dependency on an attribute's CurrentValue.",
+                "DefaultValue": "The dependency on an attribute's DefaultValue.",
+                "GrayOut": "The dependency on an attribute's GrayOut state.",
+                "Hidden": "The dependency on an attribute's Hidden state.",
+                "LowerBound": "The dependency on an attribute's LowerBound.",
+                "MaxLength": "The dependency on an attribute's MaxLength.",
+                "MinLength": "The dependency on an attribute's MinLength.",
+                "ReadOnly": "The dependency on an attribute's ReadOnly state.",
+                "ScalarIncrement": "The dependency on an attribute's ScalarIncrement.",
+                "UpperBound": "The dependency on an attribute's UpperBound.",
+                "WriteOnly": "The dependency on an attribute's WriteOnly state."
+            },
+            "type": "string"
+        },
+        "MapTerms": {
+            "enum": [
+                "AND",
+                "OR"
+            ],
+            "enumDescriptions": {
+                "AND": "The operation used for logical 'AND' of dependency terms.",
+                "OR": "The operation used for logical 'OR' of dependency terms."
+            },
+            "type": "string"
+        },
+        "MapToProperty": {
+            "enum": [
+                "CurrentValue",
+                "DefaultValue",
+                "ReadOnly",
+                "WriteOnly",
+                "GrayOut",
+                "Hidden",
+                "Immutable",
+                "HelpText",
+                "WarningText",
+                "DisplayName",
+                "DisplayOrder",
+                "LowerBound",
+                "UpperBound",
+                "MinLength",
+                "MaxLength",
+                "ScalarIncrement",
+                "ValueExpression"
+            ],
+            "enumDescriptions": {
+                "CurrentValue": "The dependency that affects an attribute's CurrentValue.",
+                "DefaultValue": "The dependency that affects an attribute's DefaultValue.",
+                "DisplayName": "The dependency that affects an attribute's DisplayName.",
+                "DisplayOrder": "The dependency that affects an attribute's DisplayName.",
+                "GrayOut": "The dependency that affects an attribute's GrayOut state.",
+                "HelpText": "The dependency that affects an attribute's HelpText.",
+                "Hidden": "The dependency that affects an attribute's Hidden state.",
+                "Immutable": "The dependency that affects an attribute's Immutable state.",
+                "LowerBound": "The dependency that affects an attribute's LowerBound.",
+                "MaxLength": "The dependency that affects an attribute's MaxLength.",
+                "MinLength": "The dependency that affects an attribute's MinLength.",
+                "ReadOnly": "The dependency that affects an attribute's ReadOnly state.",
+                "ScalarIncrement": "The dependency that affects an attribute's ScalarIncrement.",
+                "UpperBound": "The dependency that affects an attribute's UpperBound.",
+                "ValueExpression": "The dependency that affects an attribute's ValueExpression.",
+                "WarningText": "The dependency that affects an attribute's WarningText.",
+                "WriteOnly": "The dependency that affects an attribute's WriteOnly state."
+            },
+            "type": "string"
+        },
+        "Menus": {
+            "additionalProperties": false,
+            "description": "A menu and its hierarchy.",
+            "longDescription": "This type shall describe an attribute's menu and its hierarchy.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DisplayName": {
+                    "description": "The user-readable display string of this menu in the defined 'Language'.",
+                    "longDescription": "The value of this property shall be the user-readable display string of the menu in the defined 'Language'.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DisplayOrder": {
+                    "description": "The numeric value describing the ascending order in which this menu is displayed relative to other menus.",
+                    "longDescription": "The value of this property shall be a number the describes the ascending order in which this menu is displayed, relative to other menus.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "GrayOut": {
+                    "description": "The gray-out state of this menu. A grayed-only menu is not accessible in user interfaces.",
+                    "longDescription": "The value of this property shall be a boolean describing the gray-out state of this menu. When set to true, a grayed-only menu is not accessible in user interfaces.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "MenuName": {
+                    "description": "The unique name string of this menu.",
+                    "longDescription": "The value of this property shall be the name of this menu that is unique in this registry.",
+                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MenuPath": {
+                    "description": "A path that describes this menu hierarchy relative to other menus.",
+                    "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this menu, in the form of a path to the menu names.",
+                    "pattern": "^[.]?[A-Za-z0-9_//]+$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ReadOnly": {
+                    "description": "The read-only state of this menu.",
+                    "longDescription": "The value of this property shall be a boolean describing the read-only state of this menu. A read-only menu is not accessible in user interfaces, and all properties contained in that menu and its sub-menus become read-only.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "RegistryEntries": {
+            "additionalProperties": false,
+            "description": "List of all attributes and their metadata for this component.",
+            "longDescription": "This type shall describe a list of all attributes for this component, along with their possible values, dependencies, and other metadata.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Attributes": {
+                    "description": "The array containing the attributes and their possible values.",
+                    "items": {
+                        "$ref": "#/definitions/Attributes"
+                    },
+                    "longDescription": "The value of this property shall be an array containing the attributes and their possible values and other metadata.",
+                    "type": "array"
+                },
+                "Dependencies": {
+                    "description": "The array containing a list of dependencies of attributes on this component.",
+                    "items": {
+                        "$ref": "#/definitions/Dependencies"
+                    },
+                    "longDescription": "The value of this property shall be an array containing a list of dependencies of attributes on this component.",
+                    "type": "array"
+                },
+                "Menus": {
+                    "description": "The array containing the attributes menus and their hierarchy.",
+                    "items": {
+                        "$ref": "#/definitions/Menus"
+                    },
+                    "longDescription": "The value of this property shall be an array containing the attributes menus and their hierarchy.",
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "SupportedSystems": {
+            "additionalProperties": false,
+            "description": "A system supported by this attribute registry.",
+            "longDescription": "This type shall describe a system supported by this attribute registry.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FirmwareVersion": {
+                    "description": "Firmware version.",
+                    "longDescription": "The version of the component firmware image that this registry applies to.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ProductName": {
+                    "description": "The product name of the system.",
+                    "longDescription": "The value of this property shall be the product name of the computer system that this registry applies to.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SystemId": {
+                    "description": "The system ID of the system.",
+                    "longDescription": "The value of this property shall be the system ID that identifies the computer system model that this registry applies to.",
+                    "pattern": "^[A-Za-z0-9]+$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#AttributeRegistry.v1_2_0.AttributeRegistry"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/AttributeRegistry/index.json b/static/redfish/v1/JsonSchemas/AttributeRegistry/index.json
index 7b3491e..2cbd7d3 100644
--- a/static/redfish/v1/JsonSchemas/AttributeRegistry/index.json
+++ b/static/redfish/v1/JsonSchemas/AttributeRegistry/index.json
@@ -1,884 +1,21 @@
 {
-    "$ref": "#/definitions/AttributeRegistry",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AttributeRegistry": {
-            "additionalProperties": false,
-            "description": "The AttributeRegistry schema contains a set of key-value pairs that represents the structure of a Registry. It includes mechanisms for building user interfaces (menus), allowing consistent navigation of the contents. The Attribute Registry is specific to a particular implementation or product. The attributes and property names are not standardized.",
-            "longDescription": "This resource shall be used to represent an Attribute registry for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Language": {
-                    "description": "This is the RFC 5646 compliant language code for the registry.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OwningEntity": {
-                    "description": "This is the organization or company that publishes this registry.",
-                    "longDescription": "The value of this property shall be a string that represents the publisher of this registry.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "RegistryEntries": {
-                    "$ref": "#/definitions/RegistryEntries",
-                    "description": "List of all attributes and their metadata for this component.",
-                    "longDescription": "The value of this property shall a list of all attributes for this component, along with their possible values, dependencies, and other metadata."
-                },
-                "RegistryVersion": {
-                    "description": "This is the attribute registry version which is used in the middle portion of a AttributeRegistry.",
-                    "longDescription": "The value of this property shall be the version of this attribute registry. The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "SupportedSystems": {
-                    "description": "Array of systems supported by this attribute registry.",
-                    "items": {
-                        "$ref": "#/definitions/SupportedSystems"
-                    },
-                    "longDescription": "The value of this property shall be an array containing a list of systems supported by this attribute registry.",
-                    "type": "array"
-                }
-            },
-            "required": [
-                "Language",
-                "RegistryVersion",
-                "OwningEntity",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "AttributeType": {
-            "enum": [
-                "Enumeration",
-                "String",
-                "Integer",
-                "Boolean",
-                "Password"
-            ],
-            "enumDescriptions": {
-                "Boolean": "The attributes that are true or false.",
-                "Enumeration": "The attributes that include a list of the known possible enumerated values.",
-                "Integer": "The attributes that have integer numeric values.",
-                "Password": "The attributes that include password values and are not displayed as plain text. The value shall be null for GET requests.",
-                "String": "The attributes that include free form text in their values."
-            },
-            "type": "string"
-        },
-        "AttributeValue": {
-            "additionalProperties": false,
-            "description": "A possible value for attributes of type 'Enumeration'.",
-            "longDescription": "This type shall describe a possible value of an attribute of type 'Enumeration'.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ValueDisplayName": {
-                    "description": "A user-readable display string of the value of the attribute in the defined 'Language'.",
-                    "longDescription": "The value of this property shall be a string representing the user-readable display string of the value of the attribute in the defined 'Language'.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ValueName": {
-                    "description": "The value name of the attribute.",
-                    "longDescription": "The value of this property shall be a string representing the value name of the attribute. ValueName is a unique string within the list of possible values in the 'Value' array of a given attribute.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "Attributes": {
-            "additionalProperties": false,
-            "description": "An attribute and its possible values.",
-            "longDescription": "This type shall describe an attribute and its possible values and other metadata.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AttributeName": {
-                    "description": "The unique name of the attribute.",
-                    "longDescription": "The value of this property shall be the name of this attribute that is unique in this registry.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "CurrentValue": {
-                    "description": "Placeholder of the current value of the attribute.",
-                    "longDescription": "Placeholder of the current value of the attribute, to aid in evaluating dependencies. The current value of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "boolean",
-                        "number",
-                        "null"
-                    ]
-                },
-                "DefaultValue": {
-                    "description": "The default current value of the attribute.",
-                    "longDescription": "The value of this property shall be the default value of the attribute.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "boolean",
-                        "number",
-                        "null"
-                    ]
-                },
-                "DisplayName": {
-                    "description": "The user-readable display string of the attribute in the defined 'Language'.",
-                    "longDescription": "The value of this property shall be the user-readable display string of the attribute in the defined 'Language'.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DisplayOrder": {
-                    "description": "The numeric value describing the ascending order that the attribute is displayed relative to other attributes.",
-                    "longDescription": "The value of this property shall be a number the describes the ascending order in which this attribute is displayed, relative to other attributes.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "GrayOut": {
-                    "description": "The gray-out state of this attribute.",
-                    "longDescription": "The value of this property shall be a boolean describing the gray-out state of this attribute. When set to true, a grayed-out attribute should be grayed out in user interfaces. But, unlike ReadOnly, the value of grayed-out attributes might still be be modified. The grayout state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "HelpText": {
-                    "description": "The help text for the attribute.",
-                    "longDescription": "The value of this property shall be the help text of the attribute.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Hidden": {
-                    "description": "The hidden state of this attribute.",
-                    "longDescription": "The value of this property shall be a boolean describing the visibility state of this attribute. When set to true, a hidden attribute should be hidden in user interfaces. The hidden state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Immutable": {
-                    "description": "Defines whether this attribute is immutable or not.",
-                    "longDescription": "The value of this property shall be a boolean describing the immutable state of this attribute. Immutable attributes should not be modified and are typically used to reflect a hardware state.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IsSystemUniqueProperty": {
-                    "description": "Defines whether this attribute is unique for this system and should not be replicated.",
-                    "longDescription": "The value of this property shall be a boolean describing this attribute is unique or not. A value of true indicates that the attribute is unique and should not be replicated.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "LowerBound": {
-                    "description": "The lower limit of the value of an attribute of type 'Integer'.",
-                    "longDescription": "The value of this property shall be a number indicating the lower limit of the value of an attribute of type 'Integer'.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MaxLength": {
-                    "description": "The maximum character length of the value of an attribute of type 'String'.",
-                    "longDescription": "The value of this property shall be a number indicating the maximum character length of the value of an attribute of type 'String'.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MenuPath": {
-                    "description": "A path that describes the menu hierarchy of this attribute.",
-                    "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this attribute, in the form of a path to the menu names.",
-                    "pattern": "^[.]?[A-Za-z0-9_//]+$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MinLength": {
-                    "description": "The minimum character length of the value of an attribute of type 'String'.",
-                    "longDescription": "The value of this property shall be a number indicating the minimum character length of the value of an attribute of type 'String'.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "ReadOnly": {
-                    "description": "The read-only state of this attribute.",
-                    "longDescription": "The value of this property shall be a boolean describing the read-only state of attribute. A read-only attribute cannot be modified, and should be grayed out in user interfaces. The read-only state of an attribute might be affected by the results of evaluating the 'Dependencies' array.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "ResetRequired": {
-                    "description": "True if changing the value of this attribute requires a system or device reset in order to take effect.",
-                    "longDescription": "The value of this property shall be a boolean describing the requirement for a system or device reset for this attribute value change to take effect.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "ScalarIncrement": {
-                    "description": "The amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change.",
-                    "longDescription": "The value of this property shall be a number indicating the amount to increment or decrement the value of an attribute of type 'Integer' each time a user requests a value change. A ScalarIncrement value of 0 indicates a free-form numeric user input.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Type": {
-                    "$ref": "#/definitions/AttributeType",
-                    "description": "The type of the attribute.",
-                    "longDescription": "The value of this property shall be an enumeration describing type of the attribute.",
-                    "readonly": true
-                },
-                "UefiDevicePath": {
-                    "description": "The UEFI device path that qualifies this attribute.",
-                    "longDescription": "This property shall contain the UEFI device path string used to qualify and locate the specific device for this Attribute, as defined by the UEFI Specification.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "UefiKeywordName": {
-                    "description": "The UEFI KeywordString of the attribute.",
-                    "longDescription": "The value of this property shall be the configuration KeywordString of this attribute, as defined in the UEFI Specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "UefiNamespaceId": {
-                    "description": "The UEFI NamespaceId of the attribute.",
-                    "longDescription": "The value of this property shall be the configuration NamespaceId of this attribute, as defined in the UEFI Specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "UpperBound": {
-                    "description": "The upper limit of the value of an attribute of type 'Integer'.",
-                    "longDescription": "The value of this property shall be a number indicating the upper limit of the value of an attribute of type 'Integer'.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Value": {
-                    "description": "The array containing possible values for attributes of type 'Enumeration'.",
-                    "items": {
-                        "$ref": "#/definitions/AttributeValue"
-                    },
-                    "longDescription": "The value of this property shall be an array containing the possible values of an attribute of type 'Enumeration'.",
-                    "type": "array"
-                },
-                "ValueExpression": {
-                    "description": "A regular expression that is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.",
-                    "longDescription": "The value of this property shall be a regular expression that is valid according to the Perl regular expression dialect. This string is used to validate the value of the attribute. This is only applicable to attributes of type 'String' or 'Integer'.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "WarningText": {
-                    "description": "The warning text for changing the attribute.",
-                    "longDescription": "The value of this property shall be the warning text of the attribute.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "WriteOnly": {
-                    "description": "Defines whether this attribute is write-only. Such attributes revert back to their initial value after settings are applied.",
-                    "longDescription": "The value of this property shall be a boolean describing the write-only state of this attribute. A write-only attribute reverts back to it's initial value after settings are applied.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "Dependencies": {
-            "additionalProperties": false,
-            "description": "A dependency of attributes on this component.",
-            "longDescription": "This type shall describe a dependency of attributes on this component.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Dependency": {
-                    "$ref": "#/definitions/Dependency",
-                    "description": "The dependency expression for one or more Attributes in this Attribute Registry.",
-                    "longDescription": "The value of this property shall be the dependency expression for one or more Attributes in this Attribute Registry."
-                },
-                "DependencyFor": {
-                    "description": "The AttributeName of the attribute whose change triggers the evaluation of this dependency expression.",
-                    "longDescription": "The value of this property shall be the AttributeName of the attribute whose change triggers the evaluation of this dependency expression.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Type": {
-                    "$ref": "#/definitions/DependencyType",
-                    "description": "The type of the dependency structure.",
-                    "longDescription": "The value of this property shall be an enumeration describing type of the attribute dependency.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "Dependency": {
-            "additionalProperties": false,
-            "description": "The dependency expression for one or more Attributes in this Attribute Registry.",
-            "longDescription": "This type shall describe the dependency expression for one or more Attributes in this Attribute Registry.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MapFrom": {
-                    "description": "Array of the map-from conditions for mapping dependency.",
-                    "items": {
-                        "$ref": "#/definitions/MapFrom"
-                    },
-                    "longDescription": "The value of this property shall be an array containing the map-from conditions for a dependency of Type 'Map'.",
-                    "type": "array"
-                },
-                "MapToAttribute": {
-                    "description": "The Name of the attribute that is affected by this dependency expression.",
-                    "longDescription": "The value of this property shall be the AttributeName of the attribute that is affected by this dependency expression.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MapToProperty": {
-                    "$ref": "#/definitions/MapToProperty",
-                    "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.",
-                    "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.",
-                    "readonly": true
-                },
-                "MapToValue": {
-                    "description": "The value that MapToProperty is changed to if the dependency expression evaluates to true.",
-                    "longDescription": "The value that the property specified in MapToProperty (in the attribute specified in MapToAttribute) is changed to if the dependency expression evaluates to true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "boolean",
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "DependencyType": {
-            "enum": [
-                "Map"
-            ],
-            "enumDescriptions": {
-                "Map": "A simple mapping dependency. The attribute value or state is changed to the mapped value if the condition evaluates to true."
-            },
-            "type": "string"
-        },
-        "MapFrom": {
-            "additionalProperties": false,
-            "description": "A map-from condition for mapping dependency.",
-            "longDescription": "This type shall describe a map-from condition for a dependency of Type 'Map'.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MapFromAttribute": {
-                    "description": "The attribute that is used to evaluate this dependency expression.",
-                    "longDescription": "The value of this property shall be the AttributeName of the attribute that is used in evaluating this dependency expression term.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MapFromCondition": {
-                    "$ref": "#/definitions/MapFromCondition",
-                    "description": "The condition that is used to evaluate this dependency expression.",
-                    "longDescription": "The value of this property shall be the condition that is used to evaluate this dependency expression. For example, 'EQU' or 'NEQ'.",
-                    "readonly": true
-                },
-                "MapFromProperty": {
-                    "$ref": "#/definitions/MapFromProperty",
-                    "description": "The meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression.",
-                    "longDescription": "The value of this property shall be the meta-data property of the attribute specified in MapFromAttribute that is used to evaluate this dependency expression. For example, this could be the MapFromAttribute CurrentValue, or ReadOnly state.",
-                    "readonly": true
-                },
-                "MapFromValue": {
-                    "description": "The value that the is used property specified in MapFromProperty that is used to evaluate this dependency expression.",
-                    "longDescription": "The value that the property specified in MapFromProperty (in the attribute specified in MapFromAttribute) that is used to evaluate this dependency expression.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "boolean",
-                        "number",
-                        "null"
-                    ]
-                },
-                "MapTerms": {
-                    "$ref": "#/definitions/MapTerms",
-                    "description": "The logical term used to combine two or more MapFrom conditions in this dependency expression.",
-                    "longDescription": "The value of this property shall be the logical term used to combine two or more MapFrom conditions in this dependency expression. For example, 'AND' for logical AND, or 'OR' for logical OR of the conditions.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "MapFromCondition": {
-            "enum": [
-                "EQU",
-                "NEQ",
-                "GTR",
-                "GEQ",
-                "LSS",
-                "LEQ"
-            ],
-            "enumDescriptions": {
-                "EQU": "The logical operation for 'Equal'.",
-                "GEQ": "The logical operation for 'Greater than or Equal'.",
-                "GTR": "The logical operation for 'Greater than'.",
-                "LEQ": "The logical operation for 'Less than or Equal'.",
-                "LSS": "The logical operation for 'Less than'.",
-                "NEQ": "The logical operation for 'Not Equal'."
-            },
-            "type": "string"
-        },
-        "MapFromProperty": {
-            "enum": [
-                "CurrentValue",
-                "DefaultValue",
-                "ReadOnly",
-                "WriteOnly",
-                "GrayOut",
-                "Hidden",
-                "LowerBound",
-                "UpperBound",
-                "MinLength",
-                "MaxLength",
-                "ScalarIncrement"
-            ],
-            "enumDescriptions": {
-                "CurrentValue": "The dependency on an attribute's CurrentValue.",
-                "DefaultValue": "The dependency on an attribute's DefaultValue.",
-                "GrayOut": "The dependency on an attribute's GrayOut state.",
-                "Hidden": "The dependency on an attribute's Hidden state.",
-                "LowerBound": "The dependency on an attribute's LowerBound.",
-                "MaxLength": "The dependency on an attribute's MaxLength.",
-                "MinLength": "The dependency on an attribute's MinLength.",
-                "ReadOnly": "The dependency on an attribute's ReadOnly state.",
-                "ScalarIncrement": "The dependency on an attribute's ScalarIncrement.",
-                "UpperBound": "The dependency on an attribute's UpperBound.",
-                "WriteOnly": "The dependency on an attribute's WriteOnly state."
-            },
-            "type": "string"
-        },
-        "MapTerms": {
-            "enum": [
-                "AND",
-                "OR"
-            ],
-            "enumDescriptions": {
-                "AND": "The operation used for logical 'AND' of dependency terms.",
-                "OR": "The operation used for logical 'OR' of dependency terms."
-            },
-            "type": "string"
-        },
-        "MapToProperty": {
-            "enum": [
-                "CurrentValue",
-                "DefaultValue",
-                "ReadOnly",
-                "WriteOnly",
-                "GrayOut",
-                "Hidden",
-                "Immutable",
-                "HelpText",
-                "WarningText",
-                "DisplayName",
-                "DisplayOrder",
-                "LowerBound",
-                "UpperBound",
-                "MinLength",
-                "MaxLength",
-                "ScalarIncrement",
-                "ValueExpression"
-            ],
-            "enumDescriptions": {
-                "CurrentValue": "The dependency that affects an attribute's CurrentValue.",
-                "DefaultValue": "The dependency that affects an attribute's DefaultValue.",
-                "DisplayName": "The dependency that affects an attribute's DisplayName.",
-                "DisplayOrder": "The dependency that affects an attribute's DisplayName.",
-                "GrayOut": "The dependency that affects an attribute's GrayOut state.",
-                "HelpText": "The dependency that affects an attribute's HelpText.",
-                "Hidden": "The dependency that affects an attribute's Hidden state.",
-                "Immutable": "The dependency that affects an attribute's Immutable state.",
-                "LowerBound": "The dependency that affects an attribute's LowerBound.",
-                "MaxLength": "The dependency that affects an attribute's MaxLength.",
-                "MinLength": "The dependency that affects an attribute's MinLength.",
-                "ReadOnly": "The dependency that affects an attribute's ReadOnly state.",
-                "ScalarIncrement": "The dependency that affects an attribute's ScalarIncrement.",
-                "UpperBound": "The dependency that affects an attribute's UpperBound.",
-                "ValueExpression": "The dependency that affects an attribute's ValueExpression.",
-                "WarningText": "The dependency that affects an attribute's WarningText.",
-                "WriteOnly": "The dependency that affects an attribute's WriteOnly state."
-            },
-            "type": "string"
-        },
-        "Menus": {
-            "additionalProperties": false,
-            "description": "A menu and its hierarchy.",
-            "longDescription": "This type shall describe an attribute's menu and its hierarchy.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DisplayName": {
-                    "description": "The user-readable display string of this menu in the defined 'Language'.",
-                    "longDescription": "The value of this property shall be the user-readable display string of the menu in the defined 'Language'.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DisplayOrder": {
-                    "description": "The numeric value describing the ascending order in which this menu is displayed relative to other menus.",
-                    "longDescription": "The value of this property shall be a number the describes the ascending order in which this menu is displayed, relative to other menus.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "GrayOut": {
-                    "description": "The gray-out state of this menu. A grayed-only menu is not accessible in user interfaces.",
-                    "longDescription": "The value of this property shall be a boolean describing the gray-out state of this menu. When set to true, a grayed-only menu is not accessible in user interfaces.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "MenuName": {
-                    "description": "The unique name string of this menu.",
-                    "longDescription": "The value of this property shall be the name of this menu that is unique in this registry.",
-                    "pattern": "^[A-Za-z][A-Za-z0-9_]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MenuPath": {
-                    "description": "A path that describes this menu hierarchy relative to other menus.",
-                    "longDescription": "The value of this property shall be a string indicating the menu hierarchy of this menu, in the form of a path to the menu names.",
-                    "pattern": "^[.]?[A-Za-z0-9_//]+$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ReadOnly": {
-                    "description": "The read-only state of this menu.",
-                    "longDescription": "The value of this property shall be a boolean describing the read-only state of this menu. A read-only menu is not accessible in user interfaces, and all properties contained in that menu and its sub-menus become read-only.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "RegistryEntries": {
-            "additionalProperties": false,
-            "description": "List of all attributes and their metadata for this component.",
-            "longDescription": "This type shall describe a list of all attributes for this component, along with their possible values, dependencies, and other metadata.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Attributes": {
-                    "description": "The array containing the attributes and their possible values.",
-                    "items": {
-                        "$ref": "#/definitions/Attributes"
-                    },
-                    "longDescription": "The value of this property shall be an array containing the attributes and their possible values and other metadata.",
-                    "type": "array"
-                },
-                "Dependencies": {
-                    "description": "The array containing a list of dependencies of attributes on this component.",
-                    "items": {
-                        "$ref": "#/definitions/Dependencies"
-                    },
-                    "longDescription": "The value of this property shall be an array containing a list of dependencies of attributes on this component.",
-                    "type": "array"
-                },
-                "Menus": {
-                    "description": "The array containing the attributes menus and their hierarchy.",
-                    "items": {
-                        "$ref": "#/definitions/Menus"
-                    },
-                    "longDescription": "The value of this property shall be an array containing the attributes menus and their hierarchy.",
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "SupportedSystems": {
-            "additionalProperties": false,
-            "description": "A system supported by this attribute registry.",
-            "longDescription": "This type shall describe a system supported by this attribute registry.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "FirmwareVersion": {
-                    "description": "Firmware version.",
-                    "longDescription": "The version of the component firmware image that this registry applies to.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ProductName": {
-                    "description": "The product name of the system.",
-                    "longDescription": "The value of this property shall be the product name of the computer system that this registry applies to.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SystemId": {
-                    "description": "The system ID of the system.",
-                    "longDescription": "The value of this property shall be the system ID that identifies the computer system model that this registry applies to.",
-                    "pattern": "^[A-Za-z0-9]+$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/AttributeRegistry",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "AttributeRegistry Schema File",
+    "Schema": "#AttributeRegistry.AttributeRegistry",
+    "Description": "AttributeRegistry Schema File Location",
+    "Id": "AttributeRegistry",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/AttributeRegistry.json",
+            "Uri": "/redfish/v1/JSONSchemas/AttributeRegistry/AttributeRegistry.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#AttributeRegistry.v1_2_0.AttributeRegistry"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Bios/Bios.json b/static/redfish/v1/JsonSchemas/Bios/Bios.json
new file mode 100644
index 0000000..de2936a
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Bios/Bios.json
@@ -0,0 +1,244 @@
+{
+    "$ref": "#/definitions/Bios",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Bios.ChangePassword": {
+                    "$ref": "#/definitions/ChangePassword"
+                },
+                "#Bios.ResetBios": {
+                    "$ref": "#/definitions/ResetBios"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Attributes": {
+            "additionalProperties": false,
+            "description": "The manufacturer/provider-specific list of BIOS attributes.",
+            "longDescription": "This type shall describe BIOS Attribute settings as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                },
+                "^[A-Za-z][A-Za-z0-9_]+$": {
+                    "type": [
+                        "string",
+                        "boolean",
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Bios": {
+            "additionalProperties": true,
+            "description": "The Bios schema contains properties related to the BIOS Attribute Registry. The Attribute Registry describes the system-specific BIOS attributes and Actions for changing to BIOS settings. Changes to the BIOS typically require a system reset before they take effect.",
+            "longDescription": "This resource shall be used to represent BIOS attributes for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AttributeRegistry": {
+                    "description": "The Resource ID of the Attribute Registry that has the system-specific information about a BIOS resource.",
+                    "longDescription": "The reference to the Attribute Registry that lists the metadata describing the BIOS attribute settings in this resource.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Attributes": {
+                    "$ref": "#/definitions/Attributes",
+                    "description": "The list of BIOS attributes specific to the manufacturer or provider.",
+                    "longDescription": "BIOS Attribute settings appear as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ChangePassword": {
+            "additionalProperties": false,
+            "description": "This action is used to change the BIOS passwords.",
+            "longDescription": "This action shall perform a change of the selected BIOS password.",
+            "parameters": {
+                "NewPassword": {
+                    "description": "The value of the new BIOS password.",
+                    "longDescription": "This parameter shall define the value of the new BIOS password.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "OldPassword": {
+                    "description": "The value of the existing password.",
+                    "longDescription": "This parameter shall define the value of the existing BIOS password that is about to be changed.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "PasswordName": {
+                    "description": "The name of the BIOS password to change.",
+                    "longDescription": "This parameter shall define the BIOS password name to change. For instance, this could be the AdminPassword or UserPassword.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ResetBios": {
+            "additionalProperties": false,
+            "description": "This action is used to reset the BIOS attributes to default.",
+            "longDescription": "This action shall perform a reset of the BIOS attributes to teir default values.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#Bios.v1_0_3.Bios"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Bios/index.json b/static/redfish/v1/JsonSchemas/Bios/index.json
index de2936a..498b2ac 100644
--- a/static/redfish/v1/JsonSchemas/Bios/index.json
+++ b/static/redfish/v1/JsonSchemas/Bios/index.json
@@ -1,244 +1,21 @@
 {
-    "$ref": "#/definitions/Bios",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Bios.ChangePassword": {
-                    "$ref": "#/definitions/ChangePassword"
-                },
-                "#Bios.ResetBios": {
-                    "$ref": "#/definitions/ResetBios"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Attributes": {
-            "additionalProperties": false,
-            "description": "The manufacturer/provider-specific list of BIOS attributes.",
-            "longDescription": "This type shall describe BIOS Attribute settings as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                },
-                "^[A-Za-z][A-Za-z0-9_]+$": {
-                    "type": [
-                        "string",
-                        "boolean",
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Bios": {
-            "additionalProperties": true,
-            "description": "The Bios schema contains properties related to the BIOS Attribute Registry. The Attribute Registry describes the system-specific BIOS attributes and Actions for changing to BIOS settings. Changes to the BIOS typically require a system reset before they take effect.",
-            "longDescription": "This resource shall be used to represent BIOS attributes for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AttributeRegistry": {
-                    "description": "The Resource ID of the Attribute Registry that has the system-specific information about a BIOS resource.",
-                    "longDescription": "The reference to the Attribute Registry that lists the metadata describing the BIOS attribute settings in this resource.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Attributes": {
-                    "$ref": "#/definitions/Attributes",
-                    "description": "The list of BIOS attributes specific to the manufacturer or provider.",
-                    "longDescription": "BIOS Attribute settings appear as additional properties in this object, and can be looked up in the Attribute Registry by their AttributeName."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ChangePassword": {
-            "additionalProperties": false,
-            "description": "This action is used to change the BIOS passwords.",
-            "longDescription": "This action shall perform a change of the selected BIOS password.",
-            "parameters": {
-                "NewPassword": {
-                    "description": "The value of the new BIOS password.",
-                    "longDescription": "This parameter shall define the value of the new BIOS password.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "OldPassword": {
-                    "description": "The value of the existing password.",
-                    "longDescription": "This parameter shall define the value of the existing BIOS password that is about to be changed.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "PasswordName": {
-                    "description": "The name of the BIOS password to change.",
-                    "longDescription": "This parameter shall define the BIOS password name to change. For instance, this could be the AdminPassword or UserPassword.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ResetBios": {
-            "additionalProperties": false,
-            "description": "This action is used to reset the BIOS attributes to default.",
-            "longDescription": "This action shall perform a reset of the BIOS attributes to teir default values.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Bios",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Bios Schema File",
+    "Schema": "#Bios.Bios",
+    "Description": "Bios Schema File Location",
+    "Id": "Bios",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Bios.json",
+            "Uri": "/redfish/v1/JSONSchemas/Bios/Bios.json"
         }
-    },
-    "title": "#Bios.v1_0_3.Bios"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/BootOption/BootOption.json b/static/redfish/v1/JsonSchemas/BootOption/BootOption.json
new file mode 100644
index 0000000..1377054
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/BootOption/BootOption.json
@@ -0,0 +1,176 @@
+{
+    "$ref": "#/definitions/BootOption",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "BootOption": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the BootOption resource. It represents the properties of a bootable device available in the System.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Alias": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/BootSource"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The alias of this Boot Source when described in the BootSourceOverrideTarget property in the Computersystem resource.",
+                    "longDescription": "The value of this property shall contain an alias to the Boot Source that describes this Boot Option in the BootSourceOverrideTarget property in the ComputerSystem resource. The possible values of this property are specified through the Redfish.AllowableValues annotation on BootSourceOverrideTarget in the ComputerSystem resource.",
+                    "readonly": true
+                },
+                "BootOptionEnabled": {
+                    "description": "A flag that shows if the Boot Option is enabled.",
+                    "longDescription": "The value of this property shall indicate if the Boot Option is enabled.  If this property is set to false, the Boot Option referenced in the Boot Order array found on the Computer System shall be skipped. In the UEFI context, this property shall influence the Load Option Active flag for the Boot Option.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "BootOptionReference": {
+                    "description": "The unique boot option string that is referenced in the BootOrder.",
+                    "longDescription": "The value of this property shall contain a string that corresponds to the bootable option or device. For UEFI systems, this string shall match the UEFI Boot Option variable name (e.g. Boot####). This value is referenced by the ComputerSystem BootOrder array.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DisplayName": {
+                    "description": "The user-readable display string of the Boot Option.",
+                    "longDescription": "The value of this property shall be a user readable string that describes this Boot Option as it should show up in the Boot Order list in user interfaces.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "RelatedItem": {
+                    "description": "The ID(s) of the resources associated with this Boot Option.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being used for this Boot Option.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "UefiDevicePath": {
+                    "description": "The UEFI device path used to access this UEFI Boot Option.",
+                    "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific device for this UEFI Boot Option, as defined by the UEFI Specification.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "BootOptionReference",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#BootOption.v1_0_0.BootOption"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/BootOption/index.json b/static/redfish/v1/JsonSchemas/BootOption/index.json
index 1377054..38ddf58 100644
--- a/static/redfish/v1/JsonSchemas/BootOption/index.json
+++ b/static/redfish/v1/JsonSchemas/BootOption/index.json
@@ -1,176 +1,21 @@
 {
-    "$ref": "#/definitions/BootOption",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "BootOption": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the BootOption resource. It represents the properties of a bootable device available in the System.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Alias": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/BootSource"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The alias of this Boot Source when described in the BootSourceOverrideTarget property in the Computersystem resource.",
-                    "longDescription": "The value of this property shall contain an alias to the Boot Source that describes this Boot Option in the BootSourceOverrideTarget property in the ComputerSystem resource. The possible values of this property are specified through the Redfish.AllowableValues annotation on BootSourceOverrideTarget in the ComputerSystem resource.",
-                    "readonly": true
-                },
-                "BootOptionEnabled": {
-                    "description": "A flag that shows if the Boot Option is enabled.",
-                    "longDescription": "The value of this property shall indicate if the Boot Option is enabled.  If this property is set to false, the Boot Option referenced in the Boot Order array found on the Computer System shall be skipped. In the UEFI context, this property shall influence the Load Option Active flag for the Boot Option.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "BootOptionReference": {
-                    "description": "The unique boot option string that is referenced in the BootOrder.",
-                    "longDescription": "The value of this property shall contain a string that corresponds to the bootable option or device. For UEFI systems, this string shall match the UEFI Boot Option variable name (e.g. Boot####). This value is referenced by the ComputerSystem BootOrder array.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DisplayName": {
-                    "description": "The user-readable display string of the Boot Option.",
-                    "longDescription": "The value of this property shall be a user readable string that describes this Boot Option as it should show up in the Boot Order list in user interfaces.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "RelatedItem": {
-                    "description": "The ID(s) of the resources associated with this Boot Option.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being used for this Boot Option.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "UefiDevicePath": {
-                    "description": "The UEFI device path used to access this UEFI Boot Option.",
-                    "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific device for this UEFI Boot Option, as defined by the UEFI Specification.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "BootOptionReference",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/BootOption",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "BootOption Schema File",
+    "Schema": "#BootOption.BootOption",
+    "Description": "BootOption Schema File Location",
+    "Id": "BootOption",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/BootOption.json",
+            "Uri": "/redfish/v1/JSONSchemas/BootOption/BootOption.json"
         }
-    },
-    "title": "#BootOption.v1_0_0.BootOption"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Chassis/Chassis.json b/static/redfish/v1/JsonSchemas/Chassis/Chassis.json
new file mode 100644
index 0000000..9125783
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Chassis/Chassis.json
@@ -0,0 +1,681 @@
+{
+    "$ref": "#/definitions/Chassis",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Chassis.Reset": {
+                    "$ref": "#/definitions/Reset"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Chassis": {
+            "additionalProperties": false,
+            "description": "The Chassis schema represents the physical components of a system.  This resource represents the sheet-metal confined spaces and logical zones such as racks, enclosures, chassis and all other containers. Subsystems (like sensors) that operate outside of a system's data plane (meaning the resources are not accessible to software running on the system) are linked either directly or indirectly through this resource.",
+            "longDescription": "This resource shall be used to represent a chassis or other physical enclosure for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this chassis.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "AssetTag": {
+                    "description": "The user assigned asset tag of this chassis.",
+                    "longDescription": "The value of this property shall be an identifying string used to track the chassis for inventory purposes.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ChassisType": {
+                    "$ref": "#/definitions/ChassisType",
+                    "description": "The type of physical form factor of the chassis.",
+                    "longDescription": "ChassisType shall indicate the physical form factor for the type of chassis.",
+                    "readonly": true
+                },
+                "DepthMm": {
+                    "description": "The depth of the chassis.",
+                    "longDescription": "The value of this property shall represent the depth (length) of the chassis (in millimeters) as specified by the manufacturer.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mm"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "HeightMm": {
+                    "description": "The height of the chassis.",
+                    "longDescription": "The value of this property shall represent the height of the chassis (in millimeters) as specified by the manufacturer.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mm"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify the chassis.",
+                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this system.",
+                    "readonly": false
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "LogServices": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
+                    "description": "A reference to the logs for this chassis.",
+                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
+                    "readonly": true
+                },
+                "Manufacturer": {
+                    "description": "The manufacturer of this chassis.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the chassis. This organization might be the entity from whom the chassis is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The model number of the chassis.",
+                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the chassis.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkAdapters": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapterCollection.json#/definitions/NetworkAdapterCollection",
+                    "description": "A reference to the collection of Network Adapters associated with this chassis.",
+                    "longDescription": "The value of this property shall be a link to a collection of type NetworkAdapterCollection.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number of the chassis.",
+                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the chassis.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PhysicalSecurity": {
+                    "$ref": "#/definitions/PhysicalSecurity",
+                    "description": "The state of the physical security sensor.",
+                    "longDescription": "This value of this property shall contain the sensor state of the physical security."
+                },
+                "Power": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Power.json#/definitions/Power",
+                    "description": "A reference to the power properties (power supplies, power policies, sensors) of this chassis.",
+                    "longDescription": "The value of this property shall be a reference to the resource that represents the power characteristics of this chassis and shall be of type Power.",
+                    "readonly": true
+                },
+                "PowerState": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PowerState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The current power state of the chassis.",
+                    "longDescription": "The value of this property shall contain the power state of the chassis.",
+                    "readonly": true
+                },
+                "SKU": {
+                    "description": "The SKU of the chassis.",
+                    "longDescription": "The value of this property shall be the stock-keeping unit number for this chassis.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number of the chassis.",
+                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the chassis.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Thermal": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Thermal.json#/definitions/Thermal",
+                    "description": "A reference to the thermal properties (fans, cooling, sensors) of this chassis.",
+                    "longDescription": "The value of this property shall be a reference to the resource that represents the thermal characteristics of this chassis and shall be of type Thermal.",
+                    "readonly": true
+                },
+                "UUID": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Universal Unique Identifier (UUID) for this Chassis.",
+                    "longDescription": "The value of this property shall contain the universal unique identifier number for the chassis.",
+                    "readonly": true
+                },
+                "WeightKg": {
+                    "description": "The weight of the chassis.",
+                    "longDescription": "The value of this property shall represent the published mass (commonly referred to as weight) of the chassis (in kilograms).",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "kg"
+                },
+                "WidthMm": {
+                    "description": "The width of the chassis.",
+                    "longDescription": "The value of this property shall represent the width of the chassis (in millimeters) as specified by the manufacturer.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mm"
+                }
+            },
+            "required": [
+                "ChassisType",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ChassisType": {
+            "enum": [
+                "Rack",
+                "Blade",
+                "Enclosure",
+                "StandAlone",
+                "RackMount",
+                "Card",
+                "Cartridge",
+                "Row",
+                "Pod",
+                "Expansion",
+                "Sidecar",
+                "Zone",
+                "Sled",
+                "Shelf",
+                "Drawer",
+                "Module",
+                "Component",
+                "IPBasedDrive",
+                "RackGroup",
+                "StorageEnclosure",
+                "Other"
+            ],
+            "enumDescriptions": {
+                "Blade": "An enclosed or semi-enclosed, typically vertically-oriented, system chassis which must be plugged into a multi-system chassis to function normally.",
+                "Card": "A loose device or circuit board intended to be installed in a system or other enclosure.",
+                "Cartridge": "A small self-contained system intended to be plugged into a multi-system chassis.",
+                "Component": "A small chassis, card, or device which contains devices for a particular subsystem or function.",
+                "Drawer": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which may be slid into a multi-system chassis.",
+                "Enclosure": "A generic term for a chassis that does not fit any other description.",
+                "Expansion": "A chassis which expands the capabilities or capacity of another chassis.",
+                "IPBasedDrive": "A chassis in a drive form factor with IP-based network connections.",
+                "Module": "A small, typically removable, chassis or card which contains devices for a particular subsystem or function.",
+                "Other": "A chassis that does not fit any of these definitions.",
+                "Pod": "A collection of equipment racks in a large, likely transportable, container.",
+                "Rack": "An equipment rack, typically a 19-inch wide freestanding unit.",
+                "RackGroup": "A group of racks which form a single entity or share infrastructure.",
+                "RackMount": "A single system chassis designed specifically for mounting in an equipment rack.",
+                "Row": "A collection of equipment racks.",
+                "Shelf": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which must be plugged into a multi-system chassis to function normally.",
+                "Sidecar": "A chassis that mates mechanically with another chassis to expand its capabilities or capacity.",
+                "Sled": "An enclosed or semi-enclosed, system chassis which must be plugged into a multi-system chassis to function normally similar to a blade type chassis.",
+                "StandAlone": "A single, free-standing system, commonly called a tower or desktop chassis.",
+                "StorageEnclosure": "A chassis which encloses storage.",
+                "Zone": "A logical division or portion of a physical chassis that contains multiple devices or systems that cannot be physically separated."
+            },
+            "type": "string"
+        },
+        "IndicatorLED": {
+            "enum": [
+                "Unknown",
+                "Lit",
+                "Blinking",
+                "Off"
+            ],
+            "enumDeprecated": {
+                "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown."
+            },
+            "enumDescriptions": {
+                "Blinking": "The Indicator LED is blinking.",
+                "Lit": "The Indicator LED is lit.",
+                "Off": "The Indicator LED is off.",
+                "Unknown": "The state of the Indicator LED cannot be determined."
+            },
+            "enumLongDescriptions": {
+                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Unknown": "This value shall represent the Indicator LED is in an unknown state.  The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
+            },
+            "type": "string"
+        },
+        "IntrusionSensor": {
+            "enum": [
+                "Normal",
+                "HardwareIntrusion",
+                "TamperingDetected"
+            ],
+            "enumDescriptions": {
+                "HardwareIntrusion": "A door, lock, or other mechanism protecting the internal system hardware from being accessed is detected as being in an insecure state.",
+                "Normal": "No abnormal physical security conditions are detected at this time.",
+                "TamperingDetected": "Physical tampering of the monitored entity is detected."
+            },
+            "type": "string"
+        },
+        "IntrusionSensorReArm": {
+            "enum": [
+                "Manual",
+                "Automatic"
+            ],
+            "enumDescriptions": {
+                "Automatic": "This sensor would be restored to the Normal state automatically as no abnormal physical security conditions are detected.",
+                "Manual": "This sensor would be restored to the Normal state by a manual re-arm."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ComputerSystems": {
+                    "description": "An array of references to the computer systems contained in this chassis.  This will only reference ComputerSystems that are directly and wholly contained in this chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resource that this physical container is associated with and shall reference a resource of type ComputerSystem.  If a ComputerSystem is also referenced in a Chassis that is referenced in a Contains link from this resource, that ComputerSystem shall not be referenced in this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ContainedBy": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the chassis that this chassis is contained by.",
+                    "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that contains this chassis and shall be of type Chassis.",
+                    "readonly": true
+                },
+                "Contains": {
+                    "description": "An array of references to any other chassis that this chassis has in it.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that this chassis contains and shall be of type Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Contains@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "CooledBy": {
+                    "description": "An array of ID[s] of resources that cool this chassis. Normally the ID will be a chassis or a specific set of fans.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that cools this chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "CooledBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Drives": {
+                    "description": "An array of references to the disk drives located in this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
+                    },
+                    "longDescription": "The value of this property shall reference one or more resources of type Drive that are in this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Drives@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ManagedBy": {
+                    "description": "An array of references to the Managers responsible for managing this chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resource that manages this chassis and shall reference a resource of type Manager.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagedBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ManagersInChassis": {
+                    "description": "An array of references to the managers located in this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "The value of this property shall reference one or more resources of type Manager that are in this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagersInChassis@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "PCIeDevices": {
+                    "description": "An array of references to the PCIe Devices located in this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
+                    },
+                    "longDescription": "The value of this property shall reference one or more resources of type PCIeDevices.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PCIeDevices@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "PoweredBy": {
+                    "description": "An array of ID[s] of resources that power this chassis. Normally the ID will be a chassis or a specific set of Power Supplies.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PoweredBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ResourceBlocks": {
+                    "description": "An array of references to the Resource Blocks located in this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are contained in this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ResourceBlocks@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Storage": {
+                    "description": "An array of references to the storage subsystems connected to or inside this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
+                    },
+                    "longDescription": "The value of this property shall reference one or more resources of type Storage that are connected to or contained inside this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Storage@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Switches": {
+                    "description": "An array of references to the Switches located in this Chassis.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Switch that are contained in this Chassis.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Switches@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PhysicalSecurity": {
+            "additionalProperties": false,
+            "description": "The state of the physical security sensor.",
+            "longDescription": "This type shall describe the sensor state of the physical security.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "IntrusionSensor": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IntrusionSensor"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates the known state of the physical security sensor, such as if it is hardware intrusion detected.",
+                    "longDescription": "This property shall represent the state of this physical security sensor.  Hardware intrusion indicates the internal hardware is detected as being accessed in an insecure state. Tampering detected indicates the physical tampering of the monitored entity is detected.",
+                    "readonly": false
+                },
+                "IntrusionSensorNumber": {
+                    "description": "A numerical identifier to represent the physical security sensor.",
+                    "longDescription": "The value of this property shall be a numerical identifier for this physical security sensor that is unique within this resource.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "IntrusionSensorReArm": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IntrusionSensorReArm"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates how the Normal state to be restored.",
+                    "longDescription": "This property shall represent the method to set back to the Normal statue of this physical security sensor.  Manual indicates manual re-arm is needed.  Automatic indicates the state is restored automatically as no abnormal physical security conditions are detected.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "PowerState": {
+            "enum": [
+                "On",
+                "Off",
+                "PoweringOn",
+                "PoweringOff"
+            ],
+            "enumDescriptions": {
+                "Off": "The components within the chassis has no power, except some components may continue to have AUX power such as management controller.",
+                "On": "The components within the chassis has power on.",
+                "PoweringOff": "A temporary state between On and Off. The components within the chassis can take time to process the power off action.",
+                "PoweringOn": "A temporary state between Off and On. The components within the chassis can take time to process the power on action."
+            },
+            "type": "string"
+        },
+        "Reset": {
+            "additionalProperties": false,
+            "description": "This action is used to reset the chassis. This action resets the chassis, not Systems or other contained resources, although side effects may occur which affect those resources.",
+            "longDescription": "This action shall reset the chassis.  This action shall not reset Systems or other contained resource, although side effects may occur which affect those resources.",
+            "parameters": {
+                "ResetType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
+                    "description": "The type of reset to be performed.",
+                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Chassis.v1_7_0.Chassis"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Chassis/index.json b/static/redfish/v1/JsonSchemas/Chassis/index.json
index 9125783..2f6a89a 100644
--- a/static/redfish/v1/JsonSchemas/Chassis/index.json
+++ b/static/redfish/v1/JsonSchemas/Chassis/index.json
@@ -1,681 +1,21 @@
 {
-    "$ref": "#/definitions/Chassis",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Chassis.Reset": {
-                    "$ref": "#/definitions/Reset"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Chassis": {
-            "additionalProperties": false,
-            "description": "The Chassis schema represents the physical components of a system.  This resource represents the sheet-metal confined spaces and logical zones such as racks, enclosures, chassis and all other containers. Subsystems (like sensors) that operate outside of a system's data plane (meaning the resources are not accessible to software running on the system) are linked either directly or indirectly through this resource.",
-            "longDescription": "This resource shall be used to represent a chassis or other physical enclosure for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this chassis.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "AssetTag": {
-                    "description": "The user assigned asset tag of this chassis.",
-                    "longDescription": "The value of this property shall be an identifying string used to track the chassis for inventory purposes.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ChassisType": {
-                    "$ref": "#/definitions/ChassisType",
-                    "description": "The type of physical form factor of the chassis.",
-                    "longDescription": "ChassisType shall indicate the physical form factor for the type of chassis.",
-                    "readonly": true
-                },
-                "DepthMm": {
-                    "description": "The depth of the chassis.",
-                    "longDescription": "The value of this property shall represent the depth (length) of the chassis (in millimeters) as specified by the manufacturer.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mm"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "HeightMm": {
-                    "description": "The height of the chassis.",
-                    "longDescription": "The value of this property shall represent the height of the chassis (in millimeters) as specified by the manufacturer.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mm"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify the chassis.",
-                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this system.",
-                    "readonly": false
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "LogServices": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
-                    "description": "A reference to the logs for this chassis.",
-                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
-                    "readonly": true
-                },
-                "Manufacturer": {
-                    "description": "The manufacturer of this chassis.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the chassis. This organization might be the entity from whom the chassis is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The model number of the chassis.",
-                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the chassis.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkAdapters": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapterCollection.json#/definitions/NetworkAdapterCollection",
-                    "description": "A reference to the collection of Network Adapters associated with this chassis.",
-                    "longDescription": "The value of this property shall be a link to a collection of type NetworkAdapterCollection.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number of the chassis.",
-                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the chassis.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PhysicalSecurity": {
-                    "$ref": "#/definitions/PhysicalSecurity",
-                    "description": "The state of the physical security sensor.",
-                    "longDescription": "This value of this property shall contain the sensor state of the physical security."
-                },
-                "Power": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Power.json#/definitions/Power",
-                    "description": "A reference to the power properties (power supplies, power policies, sensors) of this chassis.",
-                    "longDescription": "The value of this property shall be a reference to the resource that represents the power characteristics of this chassis and shall be of type Power.",
-                    "readonly": true
-                },
-                "PowerState": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PowerState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The current power state of the chassis.",
-                    "longDescription": "The value of this property shall contain the power state of the chassis.",
-                    "readonly": true
-                },
-                "SKU": {
-                    "description": "The SKU of the chassis.",
-                    "longDescription": "The value of this property shall be the stock-keeping unit number for this chassis.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number of the chassis.",
-                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the chassis.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Thermal": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Thermal.json#/definitions/Thermal",
-                    "description": "A reference to the thermal properties (fans, cooling, sensors) of this chassis.",
-                    "longDescription": "The value of this property shall be a reference to the resource that represents the thermal characteristics of this chassis and shall be of type Thermal.",
-                    "readonly": true
-                },
-                "UUID": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Universal Unique Identifier (UUID) for this Chassis.",
-                    "longDescription": "The value of this property shall contain the universal unique identifier number for the chassis.",
-                    "readonly": true
-                },
-                "WeightKg": {
-                    "description": "The weight of the chassis.",
-                    "longDescription": "The value of this property shall represent the published mass (commonly referred to as weight) of the chassis (in kilograms).",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "kg"
-                },
-                "WidthMm": {
-                    "description": "The width of the chassis.",
-                    "longDescription": "The value of this property shall represent the width of the chassis (in millimeters) as specified by the manufacturer.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mm"
-                }
-            },
-            "required": [
-                "ChassisType",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ChassisType": {
-            "enum": [
-                "Rack",
-                "Blade",
-                "Enclosure",
-                "StandAlone",
-                "RackMount",
-                "Card",
-                "Cartridge",
-                "Row",
-                "Pod",
-                "Expansion",
-                "Sidecar",
-                "Zone",
-                "Sled",
-                "Shelf",
-                "Drawer",
-                "Module",
-                "Component",
-                "IPBasedDrive",
-                "RackGroup",
-                "StorageEnclosure",
-                "Other"
-            ],
-            "enumDescriptions": {
-                "Blade": "An enclosed or semi-enclosed, typically vertically-oriented, system chassis which must be plugged into a multi-system chassis to function normally.",
-                "Card": "A loose device or circuit board intended to be installed in a system or other enclosure.",
-                "Cartridge": "A small self-contained system intended to be plugged into a multi-system chassis.",
-                "Component": "A small chassis, card, or device which contains devices for a particular subsystem or function.",
-                "Drawer": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which may be slid into a multi-system chassis.",
-                "Enclosure": "A generic term for a chassis that does not fit any other description.",
-                "Expansion": "A chassis which expands the capabilities or capacity of another chassis.",
-                "IPBasedDrive": "A chassis in a drive form factor with IP-based network connections.",
-                "Module": "A small, typically removable, chassis or card which contains devices for a particular subsystem or function.",
-                "Other": "A chassis that does not fit any of these definitions.",
-                "Pod": "A collection of equipment racks in a large, likely transportable, container.",
-                "Rack": "An equipment rack, typically a 19-inch wide freestanding unit.",
-                "RackGroup": "A group of racks which form a single entity or share infrastructure.",
-                "RackMount": "A single system chassis designed specifically for mounting in an equipment rack.",
-                "Row": "A collection of equipment racks.",
-                "Shelf": "An enclosed or semi-enclosed, typically horizontally-oriented, system chassis which must be plugged into a multi-system chassis to function normally.",
-                "Sidecar": "A chassis that mates mechanically with another chassis to expand its capabilities or capacity.",
-                "Sled": "An enclosed or semi-enclosed, system chassis which must be plugged into a multi-system chassis to function normally similar to a blade type chassis.",
-                "StandAlone": "A single, free-standing system, commonly called a tower or desktop chassis.",
-                "StorageEnclosure": "A chassis which encloses storage.",
-                "Zone": "A logical division or portion of a physical chassis that contains multiple devices or systems that cannot be physically separated."
-            },
-            "type": "string"
-        },
-        "IndicatorLED": {
-            "enum": [
-                "Unknown",
-                "Lit",
-                "Blinking",
-                "Off"
-            ],
-            "enumDeprecated": {
-                "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown."
-            },
-            "enumDescriptions": {
-                "Blinking": "The Indicator LED is blinking.",
-                "Lit": "The Indicator LED is lit.",
-                "Off": "The Indicator LED is off.",
-                "Unknown": "The state of the Indicator LED cannot be determined."
-            },
-            "enumLongDescriptions": {
-                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Unknown": "This value shall represent the Indicator LED is in an unknown state.  The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
-            },
-            "type": "string"
-        },
-        "IntrusionSensor": {
-            "enum": [
-                "Normal",
-                "HardwareIntrusion",
-                "TamperingDetected"
-            ],
-            "enumDescriptions": {
-                "HardwareIntrusion": "A door, lock, or other mechanism protecting the internal system hardware from being accessed is detected as being in an insecure state.",
-                "Normal": "No abnormal physical security conditions are detected at this time.",
-                "TamperingDetected": "Physical tampering of the monitored entity is detected."
-            },
-            "type": "string"
-        },
-        "IntrusionSensorReArm": {
-            "enum": [
-                "Manual",
-                "Automatic"
-            ],
-            "enumDescriptions": {
-                "Automatic": "This sensor would be restored to the Normal state automatically as no abnormal physical security conditions are detected.",
-                "Manual": "This sensor would be restored to the Normal state by a manual re-arm."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ComputerSystems": {
-                    "description": "An array of references to the computer systems contained in this chassis.  This will only reference ComputerSystems that are directly and wholly contained in this chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resource that this physical container is associated with and shall reference a resource of type ComputerSystem.  If a ComputerSystem is also referenced in a Chassis that is referenced in a Contains link from this resource, that ComputerSystem shall not be referenced in this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ContainedBy": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the chassis that this chassis is contained by.",
-                    "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that contains this chassis and shall be of type Chassis.",
-                    "readonly": true
-                },
-                "Contains": {
-                    "description": "An array of references to any other chassis that this chassis has in it.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resource that represents the chassis that this chassis contains and shall be of type Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Contains@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "CooledBy": {
-                    "description": "An array of ID[s] of resources that cool this chassis. Normally the ID will be a chassis or a specific set of fans.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that cools this chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "CooledBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Drives": {
-                    "description": "An array of references to the disk drives located in this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
-                    },
-                    "longDescription": "The value of this property shall reference one or more resources of type Drive that are in this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Drives@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ManagedBy": {
-                    "description": "An array of references to the Managers responsible for managing this chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resource that manages this chassis and shall reference a resource of type Manager.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagedBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ManagersInChassis": {
-                    "description": "An array of references to the managers located in this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "The value of this property shall reference one or more resources of type Manager that are in this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagersInChassis@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "PCIeDevices": {
-                    "description": "An array of references to the PCIe Devices located in this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
-                    },
-                    "longDescription": "The value of this property shall reference one or more resources of type PCIeDevices.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PCIeDevices@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "PoweredBy": {
-                    "description": "An array of ID[s] of resources that power this chassis. Normally the ID will be a chassis or a specific set of Power Supplies.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PoweredBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ResourceBlocks": {
-                    "description": "An array of references to the Resource Blocks located in this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are contained in this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ResourceBlocks@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Storage": {
-                    "description": "An array of references to the storage subsystems connected to or inside this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
-                    },
-                    "longDescription": "The value of this property shall reference one or more resources of type Storage that are connected to or contained inside this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Storage@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Switches": {
-                    "description": "An array of references to the Switches located in this Chassis.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Switch that are contained in this Chassis.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Switches@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PhysicalSecurity": {
-            "additionalProperties": false,
-            "description": "The state of the physical security sensor.",
-            "longDescription": "This type shall describe the sensor state of the physical security.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "IntrusionSensor": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IntrusionSensor"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates the known state of the physical security sensor, such as if it is hardware intrusion detected.",
-                    "longDescription": "This property shall represent the state of this physical security sensor.  Hardware intrusion indicates the internal hardware is detected as being accessed in an insecure state. Tampering detected indicates the physical tampering of the monitored entity is detected.",
-                    "readonly": false
-                },
-                "IntrusionSensorNumber": {
-                    "description": "A numerical identifier to represent the physical security sensor.",
-                    "longDescription": "The value of this property shall be a numerical identifier for this physical security sensor that is unique within this resource.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "IntrusionSensorReArm": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IntrusionSensorReArm"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates how the Normal state to be restored.",
-                    "longDescription": "This property shall represent the method to set back to the Normal statue of this physical security sensor.  Manual indicates manual re-arm is needed.  Automatic indicates the state is restored automatically as no abnormal physical security conditions are detected.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "PowerState": {
-            "enum": [
-                "On",
-                "Off",
-                "PoweringOn",
-                "PoweringOff"
-            ],
-            "enumDescriptions": {
-                "Off": "The components within the chassis has no power, except some components may continue to have AUX power such as management controller.",
-                "On": "The components within the chassis has power on.",
-                "PoweringOff": "A temporary state between On and Off. The components within the chassis can take time to process the power off action.",
-                "PoweringOn": "A temporary state between Off and On. The components within the chassis can take time to process the power on action."
-            },
-            "type": "string"
-        },
-        "Reset": {
-            "additionalProperties": false,
-            "description": "This action is used to reset the chassis. This action resets the chassis, not Systems or other contained resources, although side effects may occur which affect those resources.",
-            "longDescription": "This action shall reset the chassis.  This action shall not reset Systems or other contained resource, although side effects may occur which affect those resources.",
-            "parameters": {
-                "ResetType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
-                    "description": "The type of reset to be performed.",
-                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Chassis",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Chassis Schema File",
+    "Schema": "#Chassis.Chassis",
+    "Description": "Chassis Schema File Location",
+    "Id": "Chassis",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Chassis.json",
+            "Uri": "/redfish/v1/JSONSchemas/Chassis/Chassis.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Chassis.v1_7_0.Chassis"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json b/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json
new file mode 100644
index 0000000..77a3bef
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/CollectionCapabilities/CollectionCapabilities.json
@@ -0,0 +1,136 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#CollectionCapabilities.v1_0_0",
+    "definitions": {
+        "Capability": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "UseCase": {
+                    "$ref": "#/definitions/UseCase",
+                    "readonly": true,
+                    "description": "This property represents the use case in which a client may issue a POST request to the collection.",
+                    "longDescription": "The value of this property shall be an enumerated value describing the use case for this capability instance."
+                },
+                "Links": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                            "description": "Oem extension object.",
+                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                        },
+                        "TargetCollection": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResourceCollection",
+                            "readonly": true,
+                            "description": "Reference to the collection that this capabilities structure is describing.",
+                            "longDescription": "The value of this property shall be a reference to a Resource Collection that this structure is describing.  This structure may be used by a client in order to understand how to form the POST request for the given collection."
+                        },
+                        "RelatedItem@odata.count": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
+                        },
+                        "RelatedItem@odata.navigationLink": {
+                            "type": "string",
+                            "format": "uri"
+                        },
+                        "RelatedItem": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/idRef"
+                            },
+                            "readonly": true,
+                            "description": "The ID(s) of the resources associated with this capability.",
+                            "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is related to this capability."
+                        }
+                    },
+                    "required": [
+                        "TargetCollection"
+                    ],
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "CapabilitiesObject": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/idRef",
+                    "readonly": true,
+                    "description": "Reference to the resource the client may GET to in order to understand how to form a POST request for a given collection.",
+                    "longDescription": "The value of this property shall be a reference to a Resource that matches the type for the given collection and shall contain annotations that describe the properties allowed in the POST request."
+                }
+            },
+            "required": [
+                "UseCase",
+                "Links",
+                "CapabilitiesObject"
+            ],
+            "description": "This type describes a specific capability of a collection for a given use case.",
+            "longDescription": "This type shall describe a specific capability of a collection in terms of how a client is able to create new resources within the collection for the specified use case."
+        },
+        "CollectionCapabilities": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "Capabilities": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/Capability"
+                    },
+                    "description": "This property contains the list of capabilities supported by this resource.",
+                    "longDescription": "The value of this property shall be an array of Capability structures."
+                }
+            },
+            "description": "This type describes the capabilities of a collection.",
+            "longDescription": "This type shall describe any capabilities of a collection in terms of how a client is able to create new resources within the collection."
+        },
+        "UseCase": {
+            "type": "string",
+            "enum": [
+                "ComputerSystemComposition",
+                "VolumeCreation"
+            ],
+            "enumDescriptions": {
+                "ComputerSystemComposition": "This capability describes a client creating a new ComputerSystem instance from a set of disaggregated hardware.",
+                "VolumeCreation": "This capability describes a client creating a new Volume instance as part of an existing storage subsystem."
+            }
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/CollectionCapabilities/index.json b/static/redfish/v1/JsonSchemas/CollectionCapabilities/index.json
index 77a3bef..ce63318 100644
--- a/static/redfish/v1/JsonSchemas/CollectionCapabilities/index.json
+++ b/static/redfish/v1/JsonSchemas/CollectionCapabilities/index.json
@@ -1,136 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#CollectionCapabilities.v1_0_0",
-    "definitions": {
-        "Capability": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "UseCase": {
-                    "$ref": "#/definitions/UseCase",
-                    "readonly": true,
-                    "description": "This property represents the use case in which a client may issue a POST request to the collection.",
-                    "longDescription": "The value of this property shall be an enumerated value describing the use case for this capability instance."
-                },
-                "Links": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                            "description": "Oem extension object.",
-                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                        },
-                        "TargetCollection": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResourceCollection",
-                            "readonly": true,
-                            "description": "Reference to the collection that this capabilities structure is describing.",
-                            "longDescription": "The value of this property shall be a reference to a Resource Collection that this structure is describing.  This structure may be used by a client in order to understand how to form the POST request for the given collection."
-                        },
-                        "RelatedItem@odata.count": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
-                        },
-                        "RelatedItem@odata.navigationLink": {
-                            "type": "string",
-                            "format": "uri"
-                        },
-                        "RelatedItem": {
-                            "type": "array",
-                            "items": {
-                                "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/idRef"
-                            },
-                            "readonly": true,
-                            "description": "The ID(s) of the resources associated with this capability.",
-                            "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is related to this capability."
-                        }
-                    },
-                    "required": [
-                        "TargetCollection"
-                    ],
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "CapabilitiesObject": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/idRef",
-                    "readonly": true,
-                    "description": "Reference to the resource the client may GET to in order to understand how to form a POST request for a given collection.",
-                    "longDescription": "The value of this property shall be a reference to a Resource that matches the type for the given collection and shall contain annotations that describe the properties allowed in the POST request."
-                }
-            },
-            "required": [
-                "UseCase",
-                "Links",
-                "CapabilitiesObject"
-            ],
-            "description": "This type describes a specific capability of a collection for a given use case.",
-            "longDescription": "This type shall describe a specific capability of a collection in terms of how a client is able to create new resources within the collection for the specified use case."
-        },
-        "CollectionCapabilities": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "Capabilities": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/Capability"
-                    },
-                    "description": "This property contains the list of capabilities supported by this resource.",
-                    "longDescription": "The value of this property shall be an array of Capability structures."
-                }
-            },
-            "description": "This type describes the capabilities of a collection.",
-            "longDescription": "This type shall describe any capabilities of a collection in terms of how a client is able to create new resources within the collection."
-        },
-        "UseCase": {
-            "type": "string",
-            "enum": [
-                "ComputerSystemComposition",
-                "VolumeCreation"
-            ],
-            "enumDescriptions": {
-                "ComputerSystemComposition": "This capability describes a client creating a new ComputerSystem instance from a set of disaggregated hardware.",
-                "VolumeCreation": "This capability describes a client creating a new Volume instance as part of an existing storage subsystem."
-            }
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/CollectionCapabilities",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "CollectionCapabilities Schema File",
+    "Schema": "#CollectionCapabilities.CollectionCapabilities",
+    "Description": "CollectionCapabilities Schema File Location",
+    "Id": "CollectionCapabilities",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/CollectionCapabilities.json",
+            "Uri": "/redfish/v1/JSONSchemas/CollectionCapabilities/CollectionCapabilities.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json b/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json
new file mode 100644
index 0000000..b0d3031
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/CompositionService/CompositionService.json
@@ -0,0 +1,139 @@
+{
+    "$ref": "#/definitions/CompositionService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "CompositionService": {
+            "additionalProperties": false,
+            "description": "The CompositionService schema defines a Composition Service which represents the properties for the service and links to the resources available for composition.",
+            "longDescription": "This resource shall be used to represent the Composition Service Properties for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "ResourceBlocks": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlockCollection.json#/definitions/ResourceBlockCollection",
+                    "description": "The resource blocks available on the service.",
+                    "longDescription": "This property shall contain the link to a collection of type ResourceBlockCollection.",
+                    "readonly": true
+                },
+                "ResourceZones": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection",
+                    "description": "The resource zones available on the service.",
+                    "longDescription": "This property shall contain the link to a collection of type ZoneCollection.",
+                    "readonly": true
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#CompositionService.v1_0_1.CompositionService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/CompositionService/index.json b/static/redfish/v1/JsonSchemas/CompositionService/index.json
index b0d3031..6d6bc4a 100644
--- a/static/redfish/v1/JsonSchemas/CompositionService/index.json
+++ b/static/redfish/v1/JsonSchemas/CompositionService/index.json
@@ -1,139 +1,21 @@
 {
-    "$ref": "#/definitions/CompositionService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "CompositionService": {
-            "additionalProperties": false,
-            "description": "The CompositionService schema defines a Composition Service which represents the properties for the service and links to the resources available for composition.",
-            "longDescription": "This resource shall be used to represent the Composition Service Properties for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "ResourceBlocks": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlockCollection.json#/definitions/ResourceBlockCollection",
-                    "description": "The resource blocks available on the service.",
-                    "longDescription": "This property shall contain the link to a collection of type ResourceBlockCollection.",
-                    "readonly": true
-                },
-                "ResourceZones": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection",
-                    "description": "The resource zones available on the service.",
-                    "longDescription": "This property shall contain the link to a collection of type ZoneCollection.",
-                    "readonly": true
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/CompositionService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "CompositionService Schema File",
+    "Schema": "#CompositionService.CompositionService",
+    "Description": "CompositionService Schema File Location",
+    "Id": "CompositionService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/CompositionService.json",
+            "Uri": "/redfish/v1/JSONSchemas/CompositionService/CompositionService.json"
         }
-    },
-    "title": "#CompositionService.v1_0_1.CompositionService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json b/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json
new file mode 100644
index 0000000..e505fb9
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json
@@ -0,0 +1,1187 @@
+{
+    "$ref": "#/definitions/ComputerSystem",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#ComputerSystem.Reset": {
+                    "$ref": "#/definitions/Reset"
+                },
+                "#ComputerSystem.SetDefaultBootOrder": {
+                    "$ref": "#/definitions/SetDefaultBootOrder"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Boot": {
+            "additionalProperties": false,
+            "description": "This object contains the boot information for the current resource.",
+            "longDescription": "This type shall contain properties which describe boot information for a system.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BootNext": {
+                    "description": "This property is the BootOptionReference of the Boot Option to perform a one time boot from when BootSourceOverrideTarget is UefiBootNext.",
+                    "longDescription": "The value of this property shall be the BootOptionReference of the UEFI Boot Option for one time boot, as defined by the UEFI Specification. The valid values for this property are specified in the values of the BootOrder array. BootSourceOverrideEnabled = Continuous is not supported for UEFI BootNext as this setting is defined in UEFI as a one-time boot only.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "BootOptions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/BootOptionCollection.json#/definitions/BootOptionCollection",
+                    "description": "A reference to the collection of the UEFI Boot Options associated with this Computer System.",
+                    "longDescription": "The value of this property shall be a link to a collection of type BootOptionCollection.",
+                    "readonly": true
+                },
+                "BootOrder": {
+                    "description": "Ordered array of BootOptionReference strings representing the persistent Boot Order associated with this computer system.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be an ordered array of BootOptionReference strings representing the persistent Boot Order of this computer system. For UEFI systems, this is the UEFI BootOrder as defined by the UEFI Specification.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "BootSourceOverrideEnabled": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/BootSourceOverrideEnabled"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Describes the state of the Boot Source Override feature.",
+                    "longDescription": "The value of this property shall be Once if this is a one time boot override and Continuous if this selection should remain active until cancelled. If the property value is set to Once, the value will be reset back to Disabled after the BootSourceOverrideTarget actions have been completed.",
+                    "readonly": false
+                },
+                "BootSourceOverrideMode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/BootSourceOverrideMode"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The BIOS Boot Mode (either Legacy or UEFI) to be used when BootSourceOverrideTarget boot source is booted from.",
+                    "longDescription": "The value of this property shall be Legacy for non-UEFI BIOS boot or UEFI for UEFI boot from boot source specified in BootSourceOverrideTarget property.",
+                    "readonly": false
+                },
+                "BootSourceOverrideTarget": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/BootSource"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The current boot source to be used at next boot instead of the normal boot device, if BootSourceOverrideEnabled is true.",
+                    "longDescription": "The value of this property shall contain the source to boot the system from, overriding the normal boot order. The valid values for this property are specified through the Redfish.AllowableValues annotation. Pxe indicates to PXE boot from the primary NIC; Floppy, Cd, Usb, Hdd indicates to boot from their devices respectively. BiosSetup indicates to boot into the native BIOS screen setup. Utilities and Diags indicate to boot from the local utilities or diags partitions. UefiTarget indicates to boot from the UEFI device path found in UefiTargetBootSourceOverride. UefiBootNext indicates to boot from the UEFI BootOptionReference found in BootNext.",
+                    "readonly": false
+                },
+                "UefiTargetBootSourceOverride": {
+                    "description": "This property is the UEFI Device Path of the device to boot from when BootSourceOverrideTarget is UefiTarget.",
+                    "longDescription": "The value of this property shall be the UEFI device path of the override boot target. The valid values for this property are specified through the Redfish.AllowableValues annotation. BootSourceOverrideEnabled = Continuous is not supported for UEFI Boot Source Override as this setting is defined in UEFI as a one time boot only.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "BootSource": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "None",
+                "Pxe",
+                "Floppy",
+                "Cd",
+                "Usb",
+                "Hdd",
+                "BiosSetup",
+                "Utilities",
+                "Diags",
+                "UefiShell",
+                "UefiTarget",
+                "SDCard",
+                "UefiHttp",
+                "RemoteDrive",
+                "UefiBootNext"
+            ],
+            "enumDescriptions": {
+                "BiosSetup": "Boot to the BIOS Setup Utility.",
+                "Cd": "Boot from the CD/DVD disc.",
+                "Diags": "Boot the manufacturer's Diagnostics program.",
+                "Floppy": "Boot from the floppy disk drive.",
+                "Hdd": "Boot from a hard drive.",
+                "None": "Boot from the normal boot device.",
+                "Pxe": "Boot from the Pre-Boot EXecution (PXE) environment.",
+                "RemoteDrive": "Boot from a remote drive (e.g. iSCSI).",
+                "SDCard": "Boot from an SD Card.",
+                "UefiBootNext": "Boot to the UEFI Device specified in the BootNext property.",
+                "UefiHttp": "Boot from a UEFI HTTP network location.",
+                "UefiShell": "Boot to the UEFI Shell.",
+                "UefiTarget": "Boot to the UEFI Device specified in the UefiTargetBootSourceOverride property.",
+                "Usb": "Boot from a USB device as specified by the system BIOS.",
+                "Utilities": "Boot the manufacturer's Utilities program(s)."
+            },
+            "type": "string"
+        },
+        "BootSourceOverrideEnabled": {
+            "enum": [
+                "Disabled",
+                "Once",
+                "Continuous"
+            ],
+            "enumDescriptions": {
+                "Continuous": "The system will boot to the target specified in the BootSourceOverrideTarget until this property is set to Disabled.",
+                "Disabled": "The system will boot normally.",
+                "Once": "On its next boot cycle, the system will boot (one time) to the Boot Source Override Target. The value of BootSourceOverrideEnabled is then reset back to Disabled."
+            },
+            "type": "string"
+        },
+        "BootSourceOverrideMode": {
+            "enum": [
+                "Legacy",
+                "UEFI"
+            ],
+            "enumDescriptions": {
+                "Legacy": "The system will boot in non-UEFI boot mode to the Boot Source Override Target.",
+                "UEFI": "The system will boot in UEFI boot mode to the Boot Source Override Target."
+            },
+            "type": "string"
+        },
+        "ComputerSystem": {
+            "additionalProperties": false,
+            "description": "This schema defines a computer system and its respective properties.  A computer system represents a machine (physical or virtual) and the local resources such as memory, cpu and other devices that can be accessed from that machine.",
+            "longDescription": "This resource shall be used to represent resources that represent a computing system in the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AssetTag": {
+                    "description": "The user definable tag that can be used to track this computer system for inventory or other client purposes.",
+                    "longDescription": "The value of this property shall contain the value of the asset tag of the system.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Bios": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Bios.json#/definitions/Bios",
+                    "description": "A reference to the BIOS settings associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Bios that lists the BIOS settings for this system.",
+                    "readonly": true
+                },
+                "BiosVersion": {
+                    "description": "The version of the system BIOS or primary system firmware.",
+                    "longDescription": "The value of this property shall be the version string of the currently installed and running BIOS (for x86 systems).  For other systems, the value may contain a version string representing the primary system firmware.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Boot": {
+                    "$ref": "#/definitions/Boot",
+                    "description": "Information about the boot settings for this system.",
+                    "longDescription": "This object shall contain properties which describe boot information for the current resource. Changes to this object do not alter the BIOS persistent boot order configuration."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EthernetInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
+                    "description": "A reference to the collection of Ethernet interfaces associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.",
+                    "readonly": true
+                },
+                "HostName": {
+                    "description": "The DNS Host Name, without any domain information.",
+                    "longDescription": "The value of this property shall be the host name for this system, as reported by the operating system or hypervisor.  This value is typically provided to the Manager by a service running in the host operating system.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "HostWatchdogTimer": {
+                    "$ref": "#/definitions/WatchdogTimer",
+                    "description": "This object describes the Host Watchdog Timer functionality for this system.",
+                    "longDescription": "This object shall contain properties which describe the host watchdog timer functionality for this ComputerSystem."
+                },
+                "HostedServices": {
+                    "$ref": "#/definitions/HostedServices",
+                    "description": "The services that this computer system supports.",
+                    "longDescription": "The values of this collection shall describe services supported by this computer system."
+                },
+                "HostingRoles": {
+                    "description": "The hosing roles that this computer system supports.",
+                    "items": {
+                        "$ref": "#/definitions/HostingRole"
+                    },
+                    "longDescription": "The values of this collection shall be the hosting roles supported by this computer system.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify the system.",
+                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this system.",
+                    "readonly": false
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "LogServices": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
+                    "description": "A reference to the collection of Log Services associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
+                    "readonly": true
+                },
+                "Manufacturer": {
+                    "description": "The manufacturer or OEM of this system.",
+                    "longDescription": "The value of this property shall contain a value that represents the manufacturer of the system.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Memory": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryCollection.json#/definitions/MemoryCollection",
+                    "description": "A reference to the collection of Memory associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type MemoryCollection.",
+                    "readonly": true
+                },
+                "MemoryDomains": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomainCollection.json#/definitions/MemoryDomainCollection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "A reference to the collection of Memory Domains associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type MemoryDomainCollection.",
+                    "readonly": true
+                },
+                "MemorySummary": {
+                    "$ref": "#/definitions/MemorySummary",
+                    "description": "This object describes the central memory of the system in general detail.",
+                    "longDescription": "This object shall contain properties which describe the central memory for the current resource."
+                },
+                "Model": {
+                    "description": "The product name for this system, without the manufacturer name.",
+                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this system. This is typically the product name, without the manufacturer name.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterfaceCollection.json#/definitions/NetworkInterfaceCollection",
+                    "description": "A reference to the collection of Network Interfaces associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type NetworkInterfaceCollection.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PCIeDevices": {
+                    "description": "A reference to a collection of PCIe Devices used by this computer system.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type PCIeDevice.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PCIeDevices@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "PCIeFunctions": {
+                    "description": "A reference to a collection of PCIe Functions used by this computer system.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type PCIeFunction.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PCIeFunctions@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "PartNumber": {
+                    "description": "The part number for this system.",
+                    "longDescription": "The value of this property shall contain the part number for the system as defined by the manufacturer.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PowerState": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PowerState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the current power state of the system.",
+                    "longDescription": "The value of this property shall contain the power state of the system.",
+                    "readonly": true
+                },
+                "ProcessorSummary": {
+                    "$ref": "#/definitions/ProcessorSummary",
+                    "description": "This object describes the central processors of the system in general detail.",
+                    "longDescription": "This object shall contain properties which describe the central processors for the current resource."
+                },
+                "Processors": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection",
+                    "description": "A reference to the collection of Processors associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.",
+                    "readonly": true
+                },
+                "Redundancy": {
+                    "description": "A reference to a collection of Redundancy entities that each name a set of computer systems that provide redundancy for this ComputerSystem.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "longDescription": "If present, each entry shall reference a redundancy entity that specifies a kind and level of redundancy and a collection (RedundancySet) of other ComputerSystems that provide the specified redundancy to this ComputerSystem.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SKU": {
+                    "description": "The manufacturer SKU for this system.",
+                    "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the system.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SecureBoot": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SecureBoot.json#/definitions/SecureBoot",
+                    "description": "A reference to the UEFI SecureBoot resource associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a resource of type SecureBoot.",
+                    "readonly": true
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this system.",
+                    "longDescription": "The value of this property shall contain the serial number for the system.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SimpleStorage": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorageCollection.json#/definitions/SimpleStorageCollection",
+                    "description": "A reference to the collection of storage devices associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type SimpleStorageCollection.",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Storage": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/StorageCollection.json#/definitions/StorageCollection",
+                    "description": "A reference to the collection of storage devices associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type StorageCollection.",
+                    "readonly": true
+                },
+                "SubModel": {
+                    "description": "The sub-model for this system.",
+                    "longDescription": "The value of this property shall contain the information about the sub-model (or config) of the system. This shall not include the model/product name or the manufacturer name.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SystemType": {
+                    "$ref": "#/definitions/SystemType",
+                    "description": "The type of computer system represented by this resource.",
+                    "longDescription": "An enumeration that indicates the kind of system that this resource represents.",
+                    "readonly": true
+                },
+                "TrustedModules": {
+                    "description": "This object describes the array of Trusted Modules in the system.",
+                    "items": {
+                        "$ref": "#/definitions/TrustedModules"
+                    },
+                    "longDescription": "This object shall contain an array of objects with properties which describe the truted modules for the current resource.",
+                    "type": "array"
+                },
+                "UUID": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The universal unique identifier (UUID) for this system.",
+                    "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the system. RFC4122 describes methods that can be used to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID. If the system supports SMBIOS, the value of the property should be formed by following the SMBIOS 2.6+ recommendation for converting the SMBIOS 16-byte UUID structure into the redfish canonical xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx string format so that the property value matches the byte order presented by current OS APIs such as WMI and dmidecode.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "HostedServices": {
+            "additionalProperties": false,
+            "description": "This object describes services that may be running or installed on the system.",
+            "longDescription": "The values of this collection shall describe services supported by a computer system.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "StorageServices": {
+                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/HostedStorageServices.json#/definitions/HostedStorageServices",
+                    "description": "A reference to a collection of storage services supported by this computer system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type HostedStorageServices.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "HostingRole": {
+            "description": "The enumerations of HostingRoles specify different features that the hosting ComputerSystem supports.",
+            "enum": [
+                "ApplicationServer",
+                "StorageServer",
+                "Switch"
+            ],
+            "enumDescriptions": {
+                "ApplicationServer": "The system hosts functionality that supports general purpose applications.",
+                "StorageServer": "The system hosts functionality that supports the system acting as a storage server.",
+                "Switch": "The system hosts functionality that supports the system acting as a switch."
+            },
+            "type": "string"
+        },
+        "IndicatorLED": {
+            "enum": [
+                "Unknown",
+                "Lit",
+                "Blinking",
+                "Off"
+            ],
+            "enumDeprecated": {
+                "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown."
+            },
+            "enumDescriptions": {
+                "Blinking": "The Indicator LED is blinking.",
+                "Lit": "The Indicator LED is lit.",
+                "Off": "The Indicator LED is off.",
+                "Unknown": "The state of the Indicator LED cannot be determined."
+            },
+            "enumLongDescriptions": {
+                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Unknown": "This value shall represent the Indicator LED is in an unknown state.  The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
+            },
+            "type": "string"
+        },
+        "InterfaceType": {
+            "enum": [
+                "TPM1_2",
+                "TPM2_0",
+                "TCM1_0"
+            ],
+            "enumDescriptions": {
+                "TCM1_0": "Trusted Cryptography Module (TCM) 1.0.",
+                "TPM1_2": "Trusted Platform Module (TPM) 1.2.",
+                "TPM2_0": "Trusted Platform Module (TPM) 2.0."
+            },
+            "type": "string"
+        },
+        "InterfaceTypeSelection": {
+            "description": "The enumerations of InterfaceTypeSelection specify the method for switching the TrustedModule InterfaceType, for instance between TPM1_2 and TPM2_0, if supported.",
+            "enum": [
+                "None",
+                "FirmwareUpdate",
+                "BiosSetting",
+                "OemMethod"
+            ],
+            "enumDescriptions": {
+                "BiosSetting": "The TrustedModule supports switching InterfaceType via platform software, such as a BIOS configuration Attribute.",
+                "FirmwareUpdate": "The TrustedModule supports switching InterfaceType via a firmware update.",
+                "None": "The TrustedModule does not support switching the InterfaceType.",
+                "OemMethod": "The TrustedModule supports switching InterfaceType via an OEM proprietary mechanism."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "description": "An array of references to the chassis in which this system is contained.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Chassis@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "ConsumingComputerSystems": {
+                    "description": "An array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value shall be an array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ConsumingComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "CooledBy": {
+                    "description": "An array of ID[s] of resources that cool this computer system. Normally the ID will be a chassis or a specific set of fans.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "CooledBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Endpoints": {
+                    "description": "An array of references to the endpoints that connect to this system.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this system is associated with and shall reference a resource of type Endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "ManagedBy": {
+                    "description": "An array of references to the Managers responsible for this system.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type manager that represents the resource with management responsibility for this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagedBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "PoweredBy": {
+                    "description": "An array of ID[s] of resources that power this computer system. Normally the ID will be a chassis or a specific set of Power Supplies.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PoweredBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "ResourceBlocks": {
+                    "description": "An array of references to the Resource Blocks that are used in this Computer System.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that show the Resource Blocks that are used in this Computer System.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "ResourceBlocks@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SupplyingComputerSystems": {
+                    "description": "An array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value shall be an array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "SupplyingComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "MemoryMirroring": {
+            "enum": [
+                "System",
+                "DIMM",
+                "Hybrid",
+                "None"
+            ],
+            "enumDescriptions": {
+                "DIMM": "The system supports DIMM mirroring at the DIMM level.  Individual DIMMs can be mirrored.",
+                "Hybrid": "The system supports a hybrid mirroring at the system and DIMM levels.  Individual DIMMs can be mirrored.",
+                "None": "The system does not support DIMM mirroring.",
+                "System": "The system supports DIMM mirroring at the System level.  Individual DIMMs are not paired for mirroring in this mode."
+            },
+            "type": "string"
+        },
+        "MemorySummary": {
+            "additionalProperties": false,
+            "description": "This object describes the memory of the system in general detail.",
+            "longDescription": "This type shall contain properties which describe the central memory for a system.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MemoryMirroring": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MemoryMirroring"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The ability and type of memory mirroring supported by this system.",
+                    "longDescription": "This property shall contain the ability and type of memory mirring supported by this system.",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "TotalSystemMemoryGiB": {
+                    "description": "The total configured operating system-accessible memory (RAM), measured in GiB.",
+                    "longDescription": "This property shall contain the amount of configured system general purpose volatile (RAM) memory as measured in gibibytes.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "TotalSystemPersistentMemoryGiB": {
+                    "description": "The total configured, system-accessible persistent memory, measured in GiB.",
+                    "longDescription": "This property shall contain the total amount of configured persistent memory available to the system as measured in gibibytes.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PowerState": {
+            "enum": [
+                "On",
+                "Off",
+                "PoweringOn",
+                "PoweringOff"
+            ],
+            "enumDescriptions": {
+                "Off": "The system is powered off, although some components may continue to have AUX power such as management controller.",
+                "On": "The system is powered on.",
+                "PoweringOff": "A temporary state between On and Off. The power off action can take time while the OS is in the shutdown process.",
+                "PoweringOn": "A temporary state between Off and On. This temporary state can be very short."
+            },
+            "type": "string"
+        },
+        "ProcessorSummary": {
+            "additionalProperties": false,
+            "description": "This object describes the central processors of the system in general detail.",
+            "longDescription": "This type shall contain properties which describe the central processors for a system.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Count": {
+                    "description": "The number of physical processors in the system.",
+                    "longDescription": "This property shall contain the number of physical central processors in the system.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "LogicalProcessorCount": {
+                    "description": "The number of logical processors in the system.",
+                    "longDescription": "This property shall contain the number of logical central processors in the system.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The processor model for the primary or majority of processors in this system.",
+                    "longDescription": "This property shall contain the processor model for the central processors in the system, per the description in the Processor Information - Processor Family section of the SMBIOS Specification DSP0134 2.8 or later.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "type": "object"
+        },
+        "Reset": {
+            "additionalProperties": false,
+            "description": "This action is used to reset the system.",
+            "longDescription": "This action shall perform a reset of the ComputerSystem.  For systems which implement ACPI Power Button functionality, the PushPowerButton value shall perform or emulate an ACPI Power Button push.  The ForceOff value shall remove power from the system or perform an ACPI Power Button Override (commonly known as a 4-second hold of the Power Button).  The ForceRestart value shall perform a ForceOff action followed by a On action.",
+            "parameters": {
+                "ResetType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
+                    "description": "The type of reset to be performed.",
+                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "SetDefaultBootOrder": {
+            "additionalProperties": false,
+            "description": "This action is used to set the Boot Order to the default settings.",
+            "longDescription": "This action shall perform a set the BootOrder to the default values.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "SystemType": {
+            "enum": [
+                "Physical",
+                "Virtual",
+                "OS",
+                "PhysicallyPartitioned",
+                "VirtuallyPartitioned",
+                "Composed"
+            ],
+            "enumDescriptions": {
+                "Composed": "A computer system that has been created by binding resource blocks together.",
+                "OS": "An operating system instance.",
+                "Physical": "A computer system.",
+                "PhysicallyPartitioned": "A hardware-based partition of a computer system.",
+                "Virtual": "A virtual machine instance running on this system.",
+                "VirtuallyPartitioned": "A virtual or software-based partition of a computer system."
+            },
+            "enumLongDescriptions": {
+                "Composed": "A SystemType of Composed is typically used when representating a single system constructed from disaggregated resource via the Redfish Composition service.",
+                "OS": "A SystemType of OS is typically used when representating an OS or hypervisor view of the system.",
+                "Physical": "A SystemType of Physical is typically used when representating the hardware aspects of a system such as is done by a management controller.",
+                "PhysicallyPartitioned": "A SystemType of PhysicallyPartition is typically used when representating a single system constructed from one or more physical systems via a firmware or hardware-based service.",
+                "Virtual": "A SystemType of Virtual is typically used when representating a system that is actually a virtual machine instance.",
+                "VirtuallyPartitioned": "A SystemType of VirtuallyPartition is typically used when representating a single system constructed from one or more virtual systems via a software-based service."
+            },
+            "type": "string"
+        },
+        "TrustedModules": {
+            "additionalProperties": false,
+            "description": "This object describes the inventory of a Trusted Modules installed in the system.",
+            "longDescription": "This type shall describe a truted module for a system.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FirmwareVersion": {
+                    "description": "The firmware version of this Trusted Module.",
+                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the Trusted Module.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FirmwareVersion2": {
+                    "description": "The 2nd firmware version of this Trusted Module, if applicable.",
+                    "longDescription": "This property shall contain the 2nd firmware version, if applicable, as defined by the manufacturer for the Trusted Module.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "InterfaceType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/InterfaceType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property indicates the interface type of the Trusted Module.",
+                    "longDescription": "This property shall contain the interface type of the installed Trusted Module.",
+                    "readonly": true
+                },
+                "InterfaceTypeSelection": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/InterfaceTypeSelection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Interface Type selection supported by this Trusted Module.",
+                    "longDescription": "This property shall contain the Interface Type Selection method (for example to switch between TPM1_2 and TPM2_0) that is supported by this TrustedModule.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "type": "object"
+        },
+        "WatchdogTimeoutActions": {
+            "description": "The enumerations of WatchdogTimeoutActions specify the choice of action to take when the Host Watchdog Timer reaches its timeout value.",
+            "enum": [
+                "None",
+                "ResetSystem",
+                "PowerCycle",
+                "PowerDown",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "None": "No action taken.",
+                "OEM": "Perform an OEM-defined action.",
+                "PowerCycle": "Power cycle the system.",
+                "PowerDown": "Power down the system.",
+                "ResetSystem": "Reset the system."
+            },
+            "type": "string"
+        },
+        "WatchdogTimer": {
+            "additionalProperties": false,
+            "description": "This type describes the Host Watchdog Timer functionality for this system.",
+            "longDescription": "This type shall contain properties which describe the host watchdog timer functionality for this ComputerSystem.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "FunctionEnabled": {
+                    "description": "This indicates if the Host Watchdog Timer functionality has been enabled. Additional host-based software is necessary to activate the timer function.",
+                    "longDescription": "The value of this property shall indicate whether the host watchdog timer functionality has been enabled or not.  This property indicates only that the functionality is enabled or disabled by the user, and updates to this property shall not initiate a watchdog timer countdown.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "TimeoutAction": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/WatchdogTimeoutActions"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property indicates the action to perform when the Watchdog Timer reaches its timeout value.",
+                    "longDescription": "This property shall contain the action to perform upon the  expiration of the Watchdog Timer.",
+                    "readonly": false
+                },
+                "WarningAction": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/WatchdogWarningActions"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property indicates the action to perform when the Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.",
+                    "longDescription": "This property shall contain the action to perform prior to the expiration of the Watchdog Timer. This action typically occurs 3-10 seconds prior to the timeout value, but the exact timing is dependent on the implementation.",
+                    "readonly": false
+                }
+            },
+            "required": [
+                "FunctionEnabled",
+                "TimeoutAction"
+            ],
+            "type": "object"
+        },
+        "WatchdogWarningActions": {
+            "description": "The enumerations of WatchdogWarningActions specify the choice of action to take when the Host Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.",
+            "enum": [
+                "None",
+                "DiagnosticInterrupt",
+                "SMI",
+                "MessagingInterrupt",
+                "SCI",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "DiagnosticInterrupt": "Raise a (typically non-maskable) Diagnostic Interrupt.",
+                "MessagingInterrupt": "Raise a legacy IPMI messaging interrupt.",
+                "None": "No action taken.",
+                "OEM": "Perform an OEM-defined action.",
+                "SCI": "Raise an interrupt using the ACPI System Control Interrupt (SCI).",
+                "SMI": "Raise a Systems Management Interrupt (SMI)."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#ComputerSystem.v1_5_0.ComputerSystem"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ComputerSystem/index.json b/static/redfish/v1/JsonSchemas/ComputerSystem/index.json
index e505fb9..bb537e6 100644
--- a/static/redfish/v1/JsonSchemas/ComputerSystem/index.json
+++ b/static/redfish/v1/JsonSchemas/ComputerSystem/index.json
@@ -1,1187 +1,21 @@
 {
-    "$ref": "#/definitions/ComputerSystem",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#ComputerSystem.Reset": {
-                    "$ref": "#/definitions/Reset"
-                },
-                "#ComputerSystem.SetDefaultBootOrder": {
-                    "$ref": "#/definitions/SetDefaultBootOrder"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Boot": {
-            "additionalProperties": false,
-            "description": "This object contains the boot information for the current resource.",
-            "longDescription": "This type shall contain properties which describe boot information for a system.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BootNext": {
-                    "description": "This property is the BootOptionReference of the Boot Option to perform a one time boot from when BootSourceOverrideTarget is UefiBootNext.",
-                    "longDescription": "The value of this property shall be the BootOptionReference of the UEFI Boot Option for one time boot, as defined by the UEFI Specification. The valid values for this property are specified in the values of the BootOrder array. BootSourceOverrideEnabled = Continuous is not supported for UEFI BootNext as this setting is defined in UEFI as a one-time boot only.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "BootOptions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/BootOptionCollection.json#/definitions/BootOptionCollection",
-                    "description": "A reference to the collection of the UEFI Boot Options associated with this Computer System.",
-                    "longDescription": "The value of this property shall be a link to a collection of type BootOptionCollection.",
-                    "readonly": true
-                },
-                "BootOrder": {
-                    "description": "Ordered array of BootOptionReference strings representing the persistent Boot Order associated with this computer system.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be an ordered array of BootOptionReference strings representing the persistent Boot Order of this computer system. For UEFI systems, this is the UEFI BootOrder as defined by the UEFI Specification.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "BootSourceOverrideEnabled": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/BootSourceOverrideEnabled"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Describes the state of the Boot Source Override feature.",
-                    "longDescription": "The value of this property shall be Once if this is a one time boot override and Continuous if this selection should remain active until cancelled. If the property value is set to Once, the value will be reset back to Disabled after the BootSourceOverrideTarget actions have been completed.",
-                    "readonly": false
-                },
-                "BootSourceOverrideMode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/BootSourceOverrideMode"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The BIOS Boot Mode (either Legacy or UEFI) to be used when BootSourceOverrideTarget boot source is booted from.",
-                    "longDescription": "The value of this property shall be Legacy for non-UEFI BIOS boot or UEFI for UEFI boot from boot source specified in BootSourceOverrideTarget property.",
-                    "readonly": false
-                },
-                "BootSourceOverrideTarget": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/BootSource"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The current boot source to be used at next boot instead of the normal boot device, if BootSourceOverrideEnabled is true.",
-                    "longDescription": "The value of this property shall contain the source to boot the system from, overriding the normal boot order. The valid values for this property are specified through the Redfish.AllowableValues annotation. Pxe indicates to PXE boot from the primary NIC; Floppy, Cd, Usb, Hdd indicates to boot from their devices respectively. BiosSetup indicates to boot into the native BIOS screen setup. Utilities and Diags indicate to boot from the local utilities or diags partitions. UefiTarget indicates to boot from the UEFI device path found in UefiTargetBootSourceOverride. UefiBootNext indicates to boot from the UEFI BootOptionReference found in BootNext.",
-                    "readonly": false
-                },
-                "UefiTargetBootSourceOverride": {
-                    "description": "This property is the UEFI Device Path of the device to boot from when BootSourceOverrideTarget is UefiTarget.",
-                    "longDescription": "The value of this property shall be the UEFI device path of the override boot target. The valid values for this property are specified through the Redfish.AllowableValues annotation. BootSourceOverrideEnabled = Continuous is not supported for UEFI Boot Source Override as this setting is defined in UEFI as a one time boot only.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "BootSource": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "None",
-                "Pxe",
-                "Floppy",
-                "Cd",
-                "Usb",
-                "Hdd",
-                "BiosSetup",
-                "Utilities",
-                "Diags",
-                "UefiShell",
-                "UefiTarget",
-                "SDCard",
-                "UefiHttp",
-                "RemoteDrive",
-                "UefiBootNext"
-            ],
-            "enumDescriptions": {
-                "BiosSetup": "Boot to the BIOS Setup Utility.",
-                "Cd": "Boot from the CD/DVD disc.",
-                "Diags": "Boot the manufacturer's Diagnostics program.",
-                "Floppy": "Boot from the floppy disk drive.",
-                "Hdd": "Boot from a hard drive.",
-                "None": "Boot from the normal boot device.",
-                "Pxe": "Boot from the Pre-Boot EXecution (PXE) environment.",
-                "RemoteDrive": "Boot from a remote drive (e.g. iSCSI).",
-                "SDCard": "Boot from an SD Card.",
-                "UefiBootNext": "Boot to the UEFI Device specified in the BootNext property.",
-                "UefiHttp": "Boot from a UEFI HTTP network location.",
-                "UefiShell": "Boot to the UEFI Shell.",
-                "UefiTarget": "Boot to the UEFI Device specified in the UefiTargetBootSourceOverride property.",
-                "Usb": "Boot from a USB device as specified by the system BIOS.",
-                "Utilities": "Boot the manufacturer's Utilities program(s)."
-            },
-            "type": "string"
-        },
-        "BootSourceOverrideEnabled": {
-            "enum": [
-                "Disabled",
-                "Once",
-                "Continuous"
-            ],
-            "enumDescriptions": {
-                "Continuous": "The system will boot to the target specified in the BootSourceOverrideTarget until this property is set to Disabled.",
-                "Disabled": "The system will boot normally.",
-                "Once": "On its next boot cycle, the system will boot (one time) to the Boot Source Override Target. The value of BootSourceOverrideEnabled is then reset back to Disabled."
-            },
-            "type": "string"
-        },
-        "BootSourceOverrideMode": {
-            "enum": [
-                "Legacy",
-                "UEFI"
-            ],
-            "enumDescriptions": {
-                "Legacy": "The system will boot in non-UEFI boot mode to the Boot Source Override Target.",
-                "UEFI": "The system will boot in UEFI boot mode to the Boot Source Override Target."
-            },
-            "type": "string"
-        },
-        "ComputerSystem": {
-            "additionalProperties": false,
-            "description": "This schema defines a computer system and its respective properties.  A computer system represents a machine (physical or virtual) and the local resources such as memory, cpu and other devices that can be accessed from that machine.",
-            "longDescription": "This resource shall be used to represent resources that represent a computing system in the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AssetTag": {
-                    "description": "The user definable tag that can be used to track this computer system for inventory or other client purposes.",
-                    "longDescription": "The value of this property shall contain the value of the asset tag of the system.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Bios": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Bios.json#/definitions/Bios",
-                    "description": "A reference to the BIOS settings associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Bios that lists the BIOS settings for this system.",
-                    "readonly": true
-                },
-                "BiosVersion": {
-                    "description": "The version of the system BIOS or primary system firmware.",
-                    "longDescription": "The value of this property shall be the version string of the currently installed and running BIOS (for x86 systems).  For other systems, the value may contain a version string representing the primary system firmware.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Boot": {
-                    "$ref": "#/definitions/Boot",
-                    "description": "Information about the boot settings for this system.",
-                    "longDescription": "This object shall contain properties which describe boot information for the current resource. Changes to this object do not alter the BIOS persistent boot order configuration."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EthernetInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
-                    "description": "A reference to the collection of Ethernet interfaces associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.",
-                    "readonly": true
-                },
-                "HostName": {
-                    "description": "The DNS Host Name, without any domain information.",
-                    "longDescription": "The value of this property shall be the host name for this system, as reported by the operating system or hypervisor.  This value is typically provided to the Manager by a service running in the host operating system.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "HostWatchdogTimer": {
-                    "$ref": "#/definitions/WatchdogTimer",
-                    "description": "This object describes the Host Watchdog Timer functionality for this system.",
-                    "longDescription": "This object shall contain properties which describe the host watchdog timer functionality for this ComputerSystem."
-                },
-                "HostedServices": {
-                    "$ref": "#/definitions/HostedServices",
-                    "description": "The services that this computer system supports.",
-                    "longDescription": "The values of this collection shall describe services supported by this computer system."
-                },
-                "HostingRoles": {
-                    "description": "The hosing roles that this computer system supports.",
-                    "items": {
-                        "$ref": "#/definitions/HostingRole"
-                    },
-                    "longDescription": "The values of this collection shall be the hosting roles supported by this computer system.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify the system.",
-                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this system.",
-                    "readonly": false
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "LogServices": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
-                    "description": "A reference to the collection of Log Services associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
-                    "readonly": true
-                },
-                "Manufacturer": {
-                    "description": "The manufacturer or OEM of this system.",
-                    "longDescription": "The value of this property shall contain a value that represents the manufacturer of the system.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Memory": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryCollection.json#/definitions/MemoryCollection",
-                    "description": "A reference to the collection of Memory associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type MemoryCollection.",
-                    "readonly": true
-                },
-                "MemoryDomains": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomainCollection.json#/definitions/MemoryDomainCollection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "A reference to the collection of Memory Domains associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type MemoryDomainCollection.",
-                    "readonly": true
-                },
-                "MemorySummary": {
-                    "$ref": "#/definitions/MemorySummary",
-                    "description": "This object describes the central memory of the system in general detail.",
-                    "longDescription": "This object shall contain properties which describe the central memory for the current resource."
-                },
-                "Model": {
-                    "description": "The product name for this system, without the manufacturer name.",
-                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this system. This is typically the product name, without the manufacturer name.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterfaceCollection.json#/definitions/NetworkInterfaceCollection",
-                    "description": "A reference to the collection of Network Interfaces associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type NetworkInterfaceCollection.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PCIeDevices": {
-                    "description": "A reference to a collection of PCIe Devices used by this computer system.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type PCIeDevice.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PCIeDevices@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "PCIeFunctions": {
-                    "description": "A reference to a collection of PCIe Functions used by this computer system.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type PCIeFunction.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PCIeFunctions@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "PartNumber": {
-                    "description": "The part number for this system.",
-                    "longDescription": "The value of this property shall contain the part number for the system as defined by the manufacturer.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PowerState": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PowerState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the current power state of the system.",
-                    "longDescription": "The value of this property shall contain the power state of the system.",
-                    "readonly": true
-                },
-                "ProcessorSummary": {
-                    "$ref": "#/definitions/ProcessorSummary",
-                    "description": "This object describes the central processors of the system in general detail.",
-                    "longDescription": "This object shall contain properties which describe the central processors for the current resource."
-                },
-                "Processors": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection",
-                    "description": "A reference to the collection of Processors associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.",
-                    "readonly": true
-                },
-                "Redundancy": {
-                    "description": "A reference to a collection of Redundancy entities that each name a set of computer systems that provide redundancy for this ComputerSystem.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "longDescription": "If present, each entry shall reference a redundancy entity that specifies a kind and level of redundancy and a collection (RedundancySet) of other ComputerSystems that provide the specified redundancy to this ComputerSystem.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SKU": {
-                    "description": "The manufacturer SKU for this system.",
-                    "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the system.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SecureBoot": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SecureBoot.json#/definitions/SecureBoot",
-                    "description": "A reference to the UEFI SecureBoot resource associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a resource of type SecureBoot.",
-                    "readonly": true
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this system.",
-                    "longDescription": "The value of this property shall contain the serial number for the system.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SimpleStorage": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorageCollection.json#/definitions/SimpleStorageCollection",
-                    "description": "A reference to the collection of storage devices associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type SimpleStorageCollection.",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Storage": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/StorageCollection.json#/definitions/StorageCollection",
-                    "description": "A reference to the collection of storage devices associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type StorageCollection.",
-                    "readonly": true
-                },
-                "SubModel": {
-                    "description": "The sub-model for this system.",
-                    "longDescription": "The value of this property shall contain the information about the sub-model (or config) of the system. This shall not include the model/product name or the manufacturer name.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SystemType": {
-                    "$ref": "#/definitions/SystemType",
-                    "description": "The type of computer system represented by this resource.",
-                    "longDescription": "An enumeration that indicates the kind of system that this resource represents.",
-                    "readonly": true
-                },
-                "TrustedModules": {
-                    "description": "This object describes the array of Trusted Modules in the system.",
-                    "items": {
-                        "$ref": "#/definitions/TrustedModules"
-                    },
-                    "longDescription": "This object shall contain an array of objects with properties which describe the truted modules for the current resource.",
-                    "type": "array"
-                },
-                "UUID": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The universal unique identifier (UUID) for this system.",
-                    "longDescription": "The value of this property shall be used to contain a universal unique identifier number for the system. RFC4122 describes methods that can be used to create the value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID. If the system supports SMBIOS, the value of the property should be formed by following the SMBIOS 2.6+ recommendation for converting the SMBIOS 16-byte UUID structure into the redfish canonical xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx string format so that the property value matches the byte order presented by current OS APIs such as WMI and dmidecode.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "HostedServices": {
-            "additionalProperties": false,
-            "description": "This object describes services that may be running or installed on the system.",
-            "longDescription": "The values of this collection shall describe services supported by a computer system.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "StorageServices": {
-                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/HostedStorageServices.json#/definitions/HostedStorageServices",
-                    "description": "A reference to a collection of storage services supported by this computer system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type HostedStorageServices.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "HostingRole": {
-            "description": "The enumerations of HostingRoles specify different features that the hosting ComputerSystem supports.",
-            "enum": [
-                "ApplicationServer",
-                "StorageServer",
-                "Switch"
-            ],
-            "enumDescriptions": {
-                "ApplicationServer": "The system hosts functionality that supports general purpose applications.",
-                "StorageServer": "The system hosts functionality that supports the system acting as a storage server.",
-                "Switch": "The system hosts functionality that supports the system acting as a switch."
-            },
-            "type": "string"
-        },
-        "IndicatorLED": {
-            "enum": [
-                "Unknown",
-                "Lit",
-                "Blinking",
-                "Off"
-            ],
-            "enumDeprecated": {
-                "Unknown": "This value has been Deprecated in favor of returning null if the state is unknown."
-            },
-            "enumDescriptions": {
-                "Blinking": "The Indicator LED is blinking.",
-                "Lit": "The Indicator LED is lit.",
-                "Off": "The Indicator LED is off.",
-                "Unknown": "The state of the Indicator LED cannot be determined."
-            },
-            "enumLongDescriptions": {
-                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Unknown": "This value shall represent the Indicator LED is in an unknown state.  The service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
-            },
-            "type": "string"
-        },
-        "InterfaceType": {
-            "enum": [
-                "TPM1_2",
-                "TPM2_0",
-                "TCM1_0"
-            ],
-            "enumDescriptions": {
-                "TCM1_0": "Trusted Cryptography Module (TCM) 1.0.",
-                "TPM1_2": "Trusted Platform Module (TPM) 1.2.",
-                "TPM2_0": "Trusted Platform Module (TPM) 2.0."
-            },
-            "type": "string"
-        },
-        "InterfaceTypeSelection": {
-            "description": "The enumerations of InterfaceTypeSelection specify the method for switching the TrustedModule InterfaceType, for instance between TPM1_2 and TPM2_0, if supported.",
-            "enum": [
-                "None",
-                "FirmwareUpdate",
-                "BiosSetting",
-                "OemMethod"
-            ],
-            "enumDescriptions": {
-                "BiosSetting": "The TrustedModule supports switching InterfaceType via platform software, such as a BIOS configuration Attribute.",
-                "FirmwareUpdate": "The TrustedModule supports switching InterfaceType via a firmware update.",
-                "None": "The TrustedModule does not support switching the InterfaceType.",
-                "OemMethod": "The TrustedModule supports switching InterfaceType via an OEM proprietary mechanism."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "description": "An array of references to the chassis in which this system is contained.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Chassis@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "ConsumingComputerSystems": {
-                    "description": "An array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value shall be an array of references to ComputerSystems that are realized, in whole or in part, from this ComputerSystem.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ConsumingComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "CooledBy": {
-                    "description": "An array of ID[s] of resources that cool this computer system. Normally the ID will be a chassis or a specific set of fans.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "CooledBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Endpoints": {
-                    "description": "An array of references to the endpoints that connect to this system.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this system is associated with and shall reference a resource of type Endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "ManagedBy": {
-                    "description": "An array of references to the Managers responsible for this system.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type manager that represents the resource with management responsibility for this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagedBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "PoweredBy": {
-                    "description": "An array of ID[s] of resources that power this computer system. Normally the ID will be a chassis or a specific set of Power Supplies.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that powers this computer system.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PoweredBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "ResourceBlocks": {
-                    "description": "An array of references to the Resource Blocks that are used in this Computer System.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that show the Resource Blocks that are used in this Computer System.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "ResourceBlocks@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SupplyingComputerSystems": {
-                    "description": "An array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value shall be an array of references to ComputerSystems that contribute, in whole or in part, to the implementation of this ComputerSystem.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "SupplyingComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "MemoryMirroring": {
-            "enum": [
-                "System",
-                "DIMM",
-                "Hybrid",
-                "None"
-            ],
-            "enumDescriptions": {
-                "DIMM": "The system supports DIMM mirroring at the DIMM level.  Individual DIMMs can be mirrored.",
-                "Hybrid": "The system supports a hybrid mirroring at the system and DIMM levels.  Individual DIMMs can be mirrored.",
-                "None": "The system does not support DIMM mirroring.",
-                "System": "The system supports DIMM mirroring at the System level.  Individual DIMMs are not paired for mirroring in this mode."
-            },
-            "type": "string"
-        },
-        "MemorySummary": {
-            "additionalProperties": false,
-            "description": "This object describes the memory of the system in general detail.",
-            "longDescription": "This type shall contain properties which describe the central memory for a system.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MemoryMirroring": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MemoryMirroring"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The ability and type of memory mirroring supported by this system.",
-                    "longDescription": "This property shall contain the ability and type of memory mirring supported by this system.",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "TotalSystemMemoryGiB": {
-                    "description": "The total configured operating system-accessible memory (RAM), measured in GiB.",
-                    "longDescription": "This property shall contain the amount of configured system general purpose volatile (RAM) memory as measured in gibibytes.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "TotalSystemPersistentMemoryGiB": {
-                    "description": "The total configured, system-accessible persistent memory, measured in GiB.",
-                    "longDescription": "This property shall contain the total amount of configured persistent memory available to the system as measured in gibibytes.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PowerState": {
-            "enum": [
-                "On",
-                "Off",
-                "PoweringOn",
-                "PoweringOff"
-            ],
-            "enumDescriptions": {
-                "Off": "The system is powered off, although some components may continue to have AUX power such as management controller.",
-                "On": "The system is powered on.",
-                "PoweringOff": "A temporary state between On and Off. The power off action can take time while the OS is in the shutdown process.",
-                "PoweringOn": "A temporary state between Off and On. This temporary state can be very short."
-            },
-            "type": "string"
-        },
-        "ProcessorSummary": {
-            "additionalProperties": false,
-            "description": "This object describes the central processors of the system in general detail.",
-            "longDescription": "This type shall contain properties which describe the central processors for a system.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Count": {
-                    "description": "The number of physical processors in the system.",
-                    "longDescription": "This property shall contain the number of physical central processors in the system.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "LogicalProcessorCount": {
-                    "description": "The number of logical processors in the system.",
-                    "longDescription": "This property shall contain the number of logical central processors in the system.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The processor model for the primary or majority of processors in this system.",
-                    "longDescription": "This property shall contain the processor model for the central processors in the system, per the description in the Processor Information - Processor Family section of the SMBIOS Specification DSP0134 2.8 or later.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "type": "object"
-        },
-        "Reset": {
-            "additionalProperties": false,
-            "description": "This action is used to reset the system.",
-            "longDescription": "This action shall perform a reset of the ComputerSystem.  For systems which implement ACPI Power Button functionality, the PushPowerButton value shall perform or emulate an ACPI Power Button push.  The ForceOff value shall remove power from the system or perform an ACPI Power Button Override (commonly known as a 4-second hold of the Power Button).  The ForceRestart value shall perform a ForceOff action followed by a On action.",
-            "parameters": {
-                "ResetType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
-                    "description": "The type of reset to be performed.",
-                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "SetDefaultBootOrder": {
-            "additionalProperties": false,
-            "description": "This action is used to set the Boot Order to the default settings.",
-            "longDescription": "This action shall perform a set the BootOrder to the default values.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "SystemType": {
-            "enum": [
-                "Physical",
-                "Virtual",
-                "OS",
-                "PhysicallyPartitioned",
-                "VirtuallyPartitioned",
-                "Composed"
-            ],
-            "enumDescriptions": {
-                "Composed": "A computer system that has been created by binding resource blocks together.",
-                "OS": "An operating system instance.",
-                "Physical": "A computer system.",
-                "PhysicallyPartitioned": "A hardware-based partition of a computer system.",
-                "Virtual": "A virtual machine instance running on this system.",
-                "VirtuallyPartitioned": "A virtual or software-based partition of a computer system."
-            },
-            "enumLongDescriptions": {
-                "Composed": "A SystemType of Composed is typically used when representating a single system constructed from disaggregated resource via the Redfish Composition service.",
-                "OS": "A SystemType of OS is typically used when representating an OS or hypervisor view of the system.",
-                "Physical": "A SystemType of Physical is typically used when representating the hardware aspects of a system such as is done by a management controller.",
-                "PhysicallyPartitioned": "A SystemType of PhysicallyPartition is typically used when representating a single system constructed from one or more physical systems via a firmware or hardware-based service.",
-                "Virtual": "A SystemType of Virtual is typically used when representating a system that is actually a virtual machine instance.",
-                "VirtuallyPartitioned": "A SystemType of VirtuallyPartition is typically used when representating a single system constructed from one or more virtual systems via a software-based service."
-            },
-            "type": "string"
-        },
-        "TrustedModules": {
-            "additionalProperties": false,
-            "description": "This object describes the inventory of a Trusted Modules installed in the system.",
-            "longDescription": "This type shall describe a truted module for a system.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "FirmwareVersion": {
-                    "description": "The firmware version of this Trusted Module.",
-                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the Trusted Module.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FirmwareVersion2": {
-                    "description": "The 2nd firmware version of this Trusted Module, if applicable.",
-                    "longDescription": "This property shall contain the 2nd firmware version, if applicable, as defined by the manufacturer for the Trusted Module.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "InterfaceType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/InterfaceType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property indicates the interface type of the Trusted Module.",
-                    "longDescription": "This property shall contain the interface type of the installed Trusted Module.",
-                    "readonly": true
-                },
-                "InterfaceTypeSelection": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/InterfaceTypeSelection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Interface Type selection supported by this Trusted Module.",
-                    "longDescription": "This property shall contain the Interface Type Selection method (for example to switch between TPM1_2 and TPM2_0) that is supported by this TrustedModule.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "type": "object"
-        },
-        "WatchdogTimeoutActions": {
-            "description": "The enumerations of WatchdogTimeoutActions specify the choice of action to take when the Host Watchdog Timer reaches its timeout value.",
-            "enum": [
-                "None",
-                "ResetSystem",
-                "PowerCycle",
-                "PowerDown",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "None": "No action taken.",
-                "OEM": "Perform an OEM-defined action.",
-                "PowerCycle": "Power cycle the system.",
-                "PowerDown": "Power down the system.",
-                "ResetSystem": "Reset the system."
-            },
-            "type": "string"
-        },
-        "WatchdogTimer": {
-            "additionalProperties": false,
-            "description": "This type describes the Host Watchdog Timer functionality for this system.",
-            "longDescription": "This type shall contain properties which describe the host watchdog timer functionality for this ComputerSystem.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "FunctionEnabled": {
-                    "description": "This indicates if the Host Watchdog Timer functionality has been enabled. Additional host-based software is necessary to activate the timer function.",
-                    "longDescription": "The value of this property shall indicate whether the host watchdog timer functionality has been enabled or not.  This property indicates only that the functionality is enabled or disabled by the user, and updates to this property shall not initiate a watchdog timer countdown.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "TimeoutAction": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/WatchdogTimeoutActions"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property indicates the action to perform when the Watchdog Timer reaches its timeout value.",
-                    "longDescription": "This property shall contain the action to perform upon the  expiration of the Watchdog Timer.",
-                    "readonly": false
-                },
-                "WarningAction": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/WatchdogWarningActions"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property indicates the action to perform when the Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.",
-                    "longDescription": "This property shall contain the action to perform prior to the expiration of the Watchdog Timer. This action typically occurs 3-10 seconds prior to the timeout value, but the exact timing is dependent on the implementation.",
-                    "readonly": false
-                }
-            },
-            "required": [
-                "FunctionEnabled",
-                "TimeoutAction"
-            ],
-            "type": "object"
-        },
-        "WatchdogWarningActions": {
-            "description": "The enumerations of WatchdogWarningActions specify the choice of action to take when the Host Watchdog Timer is close (typically 3-10 seconds) to reaching its timeout value.",
-            "enum": [
-                "None",
-                "DiagnosticInterrupt",
-                "SMI",
-                "MessagingInterrupt",
-                "SCI",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "DiagnosticInterrupt": "Raise a (typically non-maskable) Diagnostic Interrupt.",
-                "MessagingInterrupt": "Raise a legacy IPMI messaging interrupt.",
-                "None": "No action taken.",
-                "OEM": "Perform an OEM-defined action.",
-                "SCI": "Raise an interrupt using the ACPI System Control Interrupt (SCI).",
-                "SMI": "Raise a Systems Management Interrupt (SMI)."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ComputerSystem",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ComputerSystem Schema File",
+    "Schema": "#ComputerSystem.ComputerSystem",
+    "Description": "ComputerSystem Schema File Location",
+    "Id": "ComputerSystem",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json",
+            "Uri": "/redfish/v1/JSONSchemas/ComputerSystem/ComputerSystem.json"
         }
-    },
-    "title": "#ComputerSystem.v1_5_0.ComputerSystem"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Drive/Drive.json b/static/redfish/v1/JsonSchemas/Drive/Drive.json
new file mode 100644
index 0000000..b2b2ccd
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Drive/Drive.json
@@ -0,0 +1,599 @@
+{
+    "$ref": "#/definitions/Drive",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Drive.SecureErase": {
+                    "$ref": "#/definitions/SecureErase"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Drive": {
+            "additionalProperties": false,
+            "description": "The Drive schema represents a single physical disk drive for a system, including links to associated Volumes.",
+            "longDescription": "This resource shall be used to represent a disk drive or other physical storage medium for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this drive.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "AssetTag": {
+                    "description": "The user assigned asset tag for this drive.",
+                    "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "BlockSizeBytes": {
+                    "description": "The size of the smallest addressible unit (Block) of this drive in bytes.",
+                    "longDescription": "This property shall contain size of the smallest addressible unit of the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By"
+                },
+                "CapableSpeedGbs": {
+                    "description": "The speed which this drive can communicate to a storage controller in ideal conditions in Gigabits per second.",
+                    "longDescription": "This property shall contain fastest capable bus speed of the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Gbit/s"
+                },
+                "CapacityBytes": {
+                    "description": "The size in bytes of this Drive.",
+                    "longDescription": "This property shall contain the raw size in bytes of the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EncryptionAbility": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/EncryptionAbility"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The encryption abilities of this drive.",
+                    "longDescription": "This property shall contain the encryption ability for the associated drive.",
+                    "readonly": true
+                },
+                "EncryptionStatus": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/EncryptionStatus"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The status of the encrytion of this drive.",
+                    "longDescription": "This property shall contain the encrytion status for the associated drive.",
+                    "readonly": true
+                },
+                "FailurePredicted": {
+                    "description": "Is this drive currently predicting a failure in the near future.",
+                    "longDescription": "This property shall contain failure information as defined by the manufacturer for the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "HotspareType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/HotspareType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of hotspare this drive is currently serving as.",
+                    "longDescription": "This property shall contain the hot spare type for the associated drive. If the drive is currently serving as a hot spare its Status.State field shall be 'StandbySpare' and 'Enabled' when it is being used as part of a Volume.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Identifiers": {
+                    "description": "The Durable names for the drive.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
+                    },
+                    "longDescription": "This property shall contain a list of all known durable names for the associated drive.",
+                    "type": "array"
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify the drive.",
+                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this drive.",
+                    "readonly": false
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "deprecated": "This property has been Deprecated in favor of the singular property PhysicalLocation found in Drive.v1_4_0.",
+                    "description": "The Location of the drive.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                    },
+                    "longDescription": "This property shall contain location information of the associated drive.",
+                    "type": "array"
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this drive.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the drive. This organization might be the entity from whom the drive is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MediaType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MediaType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of media contained in this drive.",
+                    "longDescription": "This property shall contain the type of media contained in the associated drive.",
+                    "readonly": true
+                },
+                "Model": {
+                    "description": "This is the model number for the drive.",
+                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the drive.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NegotiatedSpeedGbs": {
+                    "description": "The speed which this drive is currently communicating to the storage controller in Gigabits per second.",
+                    "longDescription": "This property shall contain current bus speed of the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Gbit/s"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Operations": {
+                    "description": "The operations currently running on the Drive.",
+                    "items": {
+                        "$ref": "#/definitions/Operations"
+                    },
+                    "longDescription": "This property shall contain a list of all operations currently running on the Drive.",
+                    "type": "array"
+                },
+                "PartNumber": {
+                    "description": "The part number for this drive.",
+                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the drive.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PhysicalLocation": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
+                    "description": "The Location of the drive.",
+                    "longDescription": "This property shall contain location information of the associated drive."
+                },
+                "PredictedMediaLifeLeftPercent": {
+                    "description": "The percentage of reads and writes that are predicted to still be available for the media.",
+                    "longDescription": "This property shall contain an indicator of the percentage of life remaining in the Drive's media.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Protocol": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The protocol this drive is using to communicate to the storage controller.",
+                    "longDescription": "This property shall contain the protocol the associated drive is using to communicate to the storage controller for this system.",
+                    "readonly": true
+                },
+                "Revision": {
+                    "description": "The revision of this Drive. This is typically the firmware/hardware version of the drive.",
+                    "longDescription": "This property shall contain the revision as defined by the manufacturer for the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RotationSpeedRPM": {
+                    "description": "The rotation speed of this Drive in Revolutions per Minute (RPM).",
+                    "longDescription": "This property shall contain rotation speed of the associated drive.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "RPM"
+                },
+                "SKU": {
+                    "description": "This is the SKU for this drive.",
+                    "longDescription": "The value of this property shall be the stock-keeping unit number for this drive.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this drive.",
+                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the drive.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "StatusIndicator": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/StatusIndicator"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the status indicator, used to communicate status information about this drive.",
+                    "longDescription": "The value of this property shall contain the status indicator state for the status indicator associated with this drive. The valid values for this property are specified through the Redfish.AllowableValues annotation.",
+                    "readonly": false
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "EncryptionAbility": {
+            "enum": [
+                "None",
+                "SelfEncryptingDrive",
+                "Other"
+            ],
+            "enumDescriptions": {
+                "None": "The drive is not capable of self encryption.",
+                "Other": "The drive is capable of self encryption through some other means.",
+                "SelfEncryptingDrive": "The drive is capable of self encryption per the Trusted Computing Group's Self Encrypting Drive Standard."
+            },
+            "type": "string"
+        },
+        "EncryptionStatus": {
+            "enum": [
+                "Unecrypted",
+                "Unlocked",
+                "Locked",
+                "Foreign",
+                "Unencrypted"
+            ],
+            "enumDeprecated": {
+                "Unecrypted": "This value has been Deprecated in favor of Unencrypted."
+            },
+            "enumDescriptions": {
+                "Foreign": "The drive is currently encrypted, the data is not accessible to the user, and the system requires user intervention to expose the data.",
+                "Locked": "The drive is currently encrypted and the data is not accessible to the user, however the system has the ability to unlock the drive automatically.",
+                "Unecrypted": "The drive is not currently encrypted.",
+                "Unencrypted": "The drive is not currently encrypted.",
+                "Unlocked": "The drive is currently encrypted but the data is accessible to the user unencrypted."
+            },
+            "type": "string"
+        },
+        "HotspareType": {
+            "enum": [
+                "None",
+                "Global",
+                "Chassis",
+                "Dedicated"
+            ],
+            "enumDescriptions": {
+                "Chassis": "The drive is currently serving as a hotspare for all other drives in the chassis.",
+                "Dedicated": "The drive is currently serving as a hotspare for a user defined set of drives.",
+                "Global": "The drive is currently serving as a hotspare for all other drives in the storage system.",
+                "None": "The drive is not currently a hotspare."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the Chassis which contains this Drive.",
+                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Drive.",
+                    "readonly": true
+                },
+                "Endpoints": {
+                    "description": "An array of references to the endpoints that connect to this drive.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "Volumes": {
+                    "description": "An array of references to the volumes contained in this drive. This will reference Volumes that are either wholly or only partly contained by this drive.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Volume.json#/definitions/Volume"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Volume. This shall include all Volume resources of which this Drive is a member and all Volumes for which this Drive is acting as a spare if the HotspareType is Dedicated.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Volumes@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "MediaType": {
+            "enum": [
+                "HDD",
+                "SSD",
+                "SMR"
+            ],
+            "enumDescriptions": {
+                "HDD": "The drive media type is traditional magnetic platters.",
+                "SMR": "The drive media type is shingled magnetic recording.",
+                "SSD": "The drive media type is solid state or flash memory."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Operations": {
+            "additionalProperties": false,
+            "description": "An operation currently running on this resource.",
+            "longDescription": "This type shall describe a currently running operation on the resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AssociatedTask": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task",
+                    "description": "A reference to the task associated with the operation if any.",
+                    "readonly": true
+                },
+                "OperationName": {
+                    "description": "The name of the operation.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PercentageComplete": {
+                    "description": "The percentage of the operation that has been completed.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "SecureErase": {
+            "additionalProperties": false,
+            "description": "This action is used to securely erase the contents of the drive.",
+            "longDescription": "This action shall perform a secure erase of the drive.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "StatusIndicator": {
+            "enum": [
+                "OK",
+                "Fail",
+                "Rebuild",
+                "PredictiveFailureAnalysis",
+                "Hotspare",
+                "InACriticalArray",
+                "InAFailedArray"
+            ],
+            "enumDescriptions": {
+                "Fail": "The drive has failed.",
+                "Hotspare": "The drive is marked to be automatically rebuilt and used as a replacement for a failed drive.",
+                "InACriticalArray": "The array that this drive is a part of is degraded.",
+                "InAFailedArray": "The array that this drive is a part of is failed.",
+                "OK": "The drive is OK.",
+                "PredictiveFailureAnalysis": "The drive is still working but predicted to fail soon.",
+                "Rebuild": "The drive is being rebuilt."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Drive.v1_4_0.Drive"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Drive/index.json b/static/redfish/v1/JsonSchemas/Drive/index.json
index b2b2ccd..9597a44 100644
--- a/static/redfish/v1/JsonSchemas/Drive/index.json
+++ b/static/redfish/v1/JsonSchemas/Drive/index.json
@@ -1,599 +1,21 @@
 {
-    "$ref": "#/definitions/Drive",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Drive.SecureErase": {
-                    "$ref": "#/definitions/SecureErase"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Drive": {
-            "additionalProperties": false,
-            "description": "The Drive schema represents a single physical disk drive for a system, including links to associated Volumes.",
-            "longDescription": "This resource shall be used to represent a disk drive or other physical storage medium for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this drive.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "AssetTag": {
-                    "description": "The user assigned asset tag for this drive.",
-                    "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "BlockSizeBytes": {
-                    "description": "The size of the smallest addressible unit (Block) of this drive in bytes.",
-                    "longDescription": "This property shall contain size of the smallest addressible unit of the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By"
-                },
-                "CapableSpeedGbs": {
-                    "description": "The speed which this drive can communicate to a storage controller in ideal conditions in Gigabits per second.",
-                    "longDescription": "This property shall contain fastest capable bus speed of the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Gbit/s"
-                },
-                "CapacityBytes": {
-                    "description": "The size in bytes of this Drive.",
-                    "longDescription": "This property shall contain the raw size in bytes of the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EncryptionAbility": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/EncryptionAbility"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The encryption abilities of this drive.",
-                    "longDescription": "This property shall contain the encryption ability for the associated drive.",
-                    "readonly": true
-                },
-                "EncryptionStatus": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/EncryptionStatus"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The status of the encrytion of this drive.",
-                    "longDescription": "This property shall contain the encrytion status for the associated drive.",
-                    "readonly": true
-                },
-                "FailurePredicted": {
-                    "description": "Is this drive currently predicting a failure in the near future.",
-                    "longDescription": "This property shall contain failure information as defined by the manufacturer for the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "HotspareType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/HotspareType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of hotspare this drive is currently serving as.",
-                    "longDescription": "This property shall contain the hot spare type for the associated drive. If the drive is currently serving as a hot spare its Status.State field shall be 'StandbySpare' and 'Enabled' when it is being used as part of a Volume.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Identifiers": {
-                    "description": "The Durable names for the drive.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
-                    },
-                    "longDescription": "This property shall contain a list of all known durable names for the associated drive.",
-                    "type": "array"
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify the drive.",
-                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this drive.",
-                    "readonly": false
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "deprecated": "This property has been Deprecated in favor of the singular property PhysicalLocation found in Drive.v1_4_0.",
-                    "description": "The Location of the drive.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                    },
-                    "longDescription": "This property shall contain location information of the associated drive.",
-                    "type": "array"
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this drive.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the drive. This organization might be the entity from whom the drive is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MediaType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MediaType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of media contained in this drive.",
-                    "longDescription": "This property shall contain the type of media contained in the associated drive.",
-                    "readonly": true
-                },
-                "Model": {
-                    "description": "This is the model number for the drive.",
-                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the drive.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NegotiatedSpeedGbs": {
-                    "description": "The speed which this drive is currently communicating to the storage controller in Gigabits per second.",
-                    "longDescription": "This property shall contain current bus speed of the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Gbit/s"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Operations": {
-                    "description": "The operations currently running on the Drive.",
-                    "items": {
-                        "$ref": "#/definitions/Operations"
-                    },
-                    "longDescription": "This property shall contain a list of all operations currently running on the Drive.",
-                    "type": "array"
-                },
-                "PartNumber": {
-                    "description": "The part number for this drive.",
-                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the drive.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PhysicalLocation": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
-                    "description": "The Location of the drive.",
-                    "longDescription": "This property shall contain location information of the associated drive."
-                },
-                "PredictedMediaLifeLeftPercent": {
-                    "description": "The percentage of reads and writes that are predicted to still be available for the media.",
-                    "longDescription": "This property shall contain an indicator of the percentage of life remaining in the Drive's media.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Protocol": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The protocol this drive is using to communicate to the storage controller.",
-                    "longDescription": "This property shall contain the protocol the associated drive is using to communicate to the storage controller for this system.",
-                    "readonly": true
-                },
-                "Revision": {
-                    "description": "The revision of this Drive. This is typically the firmware/hardware version of the drive.",
-                    "longDescription": "This property shall contain the revision as defined by the manufacturer for the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RotationSpeedRPM": {
-                    "description": "The rotation speed of this Drive in Revolutions per Minute (RPM).",
-                    "longDescription": "This property shall contain rotation speed of the associated drive.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "RPM"
-                },
-                "SKU": {
-                    "description": "This is the SKU for this drive.",
-                    "longDescription": "The value of this property shall be the stock-keeping unit number for this drive.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this drive.",
-                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the drive.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "StatusIndicator": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/StatusIndicator"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the status indicator, used to communicate status information about this drive.",
-                    "longDescription": "The value of this property shall contain the status indicator state for the status indicator associated with this drive. The valid values for this property are specified through the Redfish.AllowableValues annotation.",
-                    "readonly": false
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "EncryptionAbility": {
-            "enum": [
-                "None",
-                "SelfEncryptingDrive",
-                "Other"
-            ],
-            "enumDescriptions": {
-                "None": "The drive is not capable of self encryption.",
-                "Other": "The drive is capable of self encryption through some other means.",
-                "SelfEncryptingDrive": "The drive is capable of self encryption per the Trusted Computing Group's Self Encrypting Drive Standard."
-            },
-            "type": "string"
-        },
-        "EncryptionStatus": {
-            "enum": [
-                "Unecrypted",
-                "Unlocked",
-                "Locked",
-                "Foreign",
-                "Unencrypted"
-            ],
-            "enumDeprecated": {
-                "Unecrypted": "This value has been Deprecated in favor of Unencrypted."
-            },
-            "enumDescriptions": {
-                "Foreign": "The drive is currently encrypted, the data is not accessible to the user, and the system requires user intervention to expose the data.",
-                "Locked": "The drive is currently encrypted and the data is not accessible to the user, however the system has the ability to unlock the drive automatically.",
-                "Unecrypted": "The drive is not currently encrypted.",
-                "Unencrypted": "The drive is not currently encrypted.",
-                "Unlocked": "The drive is currently encrypted but the data is accessible to the user unencrypted."
-            },
-            "type": "string"
-        },
-        "HotspareType": {
-            "enum": [
-                "None",
-                "Global",
-                "Chassis",
-                "Dedicated"
-            ],
-            "enumDescriptions": {
-                "Chassis": "The drive is currently serving as a hotspare for all other drives in the chassis.",
-                "Dedicated": "The drive is currently serving as a hotspare for a user defined set of drives.",
-                "Global": "The drive is currently serving as a hotspare for all other drives in the storage system.",
-                "None": "The drive is not currently a hotspare."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the Chassis which contains this Drive.",
-                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Drive.",
-                    "readonly": true
-                },
-                "Endpoints": {
-                    "description": "An array of references to the endpoints that connect to this drive.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "Volumes": {
-                    "description": "An array of references to the volumes contained in this drive. This will reference Volumes that are either wholly or only partly contained by this drive.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Volume.json#/definitions/Volume"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this drive is associated with and shall reference a resource of type Volume. This shall include all Volume resources of which this Drive is a member and all Volumes for which this Drive is acting as a spare if the HotspareType is Dedicated.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Volumes@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "MediaType": {
-            "enum": [
-                "HDD",
-                "SSD",
-                "SMR"
-            ],
-            "enumDescriptions": {
-                "HDD": "The drive media type is traditional magnetic platters.",
-                "SMR": "The drive media type is shingled magnetic recording.",
-                "SSD": "The drive media type is solid state or flash memory."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Operations": {
-            "additionalProperties": false,
-            "description": "An operation currently running on this resource.",
-            "longDescription": "This type shall describe a currently running operation on the resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AssociatedTask": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task",
-                    "description": "A reference to the task associated with the operation if any.",
-                    "readonly": true
-                },
-                "OperationName": {
-                    "description": "The name of the operation.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PercentageComplete": {
-                    "description": "The percentage of the operation that has been completed.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "SecureErase": {
-            "additionalProperties": false,
-            "description": "This action is used to securely erase the contents of the drive.",
-            "longDescription": "This action shall perform a secure erase of the drive.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "StatusIndicator": {
-            "enum": [
-                "OK",
-                "Fail",
-                "Rebuild",
-                "PredictiveFailureAnalysis",
-                "Hotspare",
-                "InACriticalArray",
-                "InAFailedArray"
-            ],
-            "enumDescriptions": {
-                "Fail": "The drive has failed.",
-                "Hotspare": "The drive is marked to be automatically rebuilt and used as a replacement for a failed drive.",
-                "InACriticalArray": "The array that this drive is a part of is degraded.",
-                "InAFailedArray": "The array that this drive is a part of is failed.",
-                "OK": "The drive is OK.",
-                "PredictiveFailureAnalysis": "The drive is still working but predicted to fail soon.",
-                "Rebuild": "The drive is being rebuilt."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Drive",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Drive Schema File",
+    "Schema": "#Drive.Drive",
+    "Description": "Drive Schema File Location",
+    "Id": "Drive",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Drive.json",
+            "Uri": "/redfish/v1/JSONSchemas/Drive/Drive.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Drive.v1_4_0.Drive"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json b/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json
new file mode 100644
index 0000000..eb5bb3b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Endpoint/Endpoint.json
@@ -0,0 +1,547 @@
+{
+    "$ref": "#/definitions/Endpoint",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/OemActions"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "ConnectedEntity": {
+            "additionalProperties": false,
+            "description": "Represents a remote resource that is connected to the network accessible to this endpoint.",
+            "longDescription": "This type shall represent a remote resource that is connected to a network accessible to an endpoint.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "EntityLink": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "A link to the associated entity.",
+                    "longDescription": "This property shall be a reference to an entity of the type specified by the description of the value of the EntityType property.",
+                    "readonly": true
+                },
+                "EntityPciId": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PciId"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The PCI ID of the connected entity.",
+                    "longDescription": "The value of this property shall be the PCI ID of the connected PCIe entity."
+                },
+                "EntityRole": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/EntityRole"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The role of the connected entity.",
+                    "longDescription": "The value of this property shall indicate if the specified entity is an initiator, target, or both.",
+                    "readonly": true
+                },
+                "EntityType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/EntityType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of the connected entity.",
+                    "longDescription": "The value of this property shall indicate if type of connected entity.",
+                    "readonly": true
+                },
+                "Identifiers": {
+                    "description": "Identifiers for the remote entity.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Identifiers for the remote entity shall be unique in the context of other resources that can reached over the connected network.",
+                    "type": "array"
+                },
+                "Oem": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "PciClassCode": {
+                    "description": "The Class Code, Subclass code, and Programming Interface code of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Class Code, Subclass code, and Programming Interface code of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PciFunctionNumber": {
+                    "description": "The PCI ID of the connected entity.",
+                    "longDescription": "The value of this property shall be the PCI Function Number of the connected PCIe entity.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "Endpoint": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Endpoint resource. It represents the properties of an entity that sends or receives protocol defined messages over a transport.",
+            "longDescription": "This resource shall be used to represent a fabric endpoint for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The Actions object contains the available custom actions on this resource."
+                },
+                "ConnectedEntities": {
+                    "description": "All the entities connected to this endpoint.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/ConnectedEntity"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "This value of this property shall contain all the entities which this endpoint allows access to.",
+                    "type": "array"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EndpointProtocol": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The protocol supported by this endpoint.",
+                    "longDescription": "The value of this property shall contain the protocol this endpoint uses to communicate with other endpoints on this fabric.",
+                    "readonly": true
+                },
+                "HostReservationMemoryBytes": {
+                    "description": "The amount of memory in Bytes that the Host should allocate to connect to this endpoint.",
+                    "longDescription": "The value of this property shall be the amount of memory in Bytes that the Host should allocate to connect to this endpoint.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By"
+                },
+                "IPTransportDetails": {
+                    "description": "This array contains details for each IP transport supported by this endpoint. The array structure can be used to model multiple IP addresses for this endpoint.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/IPTransportDetails"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "This array shall contain the details for each IP transport supported by this endpoint.",
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Identifiers": {
+                    "description": "Identifiers for this endpoint.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Identifiers for this endpoint shall be unique in the context of other endpoints that can reached over the connected network.",
+                    "type": "array"
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "The links object contains the links to other resources that are related to this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PciId": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PciId"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The PCI ID of the endpoint.",
+                    "longDescription": "The value of this property shall be the PCI ID of the endpoint."
+                },
+                "Redundancy": {
+                    "description": "Redundancy information for the lower level endpoints supporting this endpoint.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "EntityRole": {
+            "enum": [
+                "Initiator",
+                "Target",
+                "Both"
+            ],
+            "enumDescriptions": {
+                "Both": "The entity is acting as both an initiator and a target.",
+                "Initiator": "The entity is acting as an initiator.",
+                "Target": "The entity is acting as a target."
+            },
+            "type": "string"
+        },
+        "EntityType": {
+            "enum": [
+                "StorageInitiator",
+                "RootComplex",
+                "NetworkController",
+                "Drive",
+                "StorageExpander",
+                "DisplayController",
+                "Bridge",
+                "Processor",
+                "Volume"
+            ],
+            "enumDescriptions": {
+                "Bridge": "The entity is a PCI(e) bridge.",
+                "DisplayController": "The entity is a display controller.",
+                "Drive": "The entity is a disk drive. The EntityLink property (if present) should be a Drive.Drive entity.",
+                "NetworkController": "The entity is a network controller. The EntityLink property (if present) should be an EthernetInterface.EthernetInterface entity.",
+                "Processor": "The entity is a processor device.",
+                "RootComplex": "The entity is a PCI(e) root complex. The EntityLink property (if present) should be a ComputerSystem.ComputerSystem entity.",
+                "StorageExpander": "The entity is a storage expander. The EntityLink property (if present) should be a Chassis.Chassis entity.",
+                "StorageInitiator": "The entity is a storage initator. The EntityLink property (if present) should be a Storage.StorageController entity.",
+                "Volume": "The entity is a volume. The EntityLink property (if present) should be a Volume.Volume entity."
+            },
+            "type": "string"
+        },
+        "IPTransportDetails": {
+            "additionalProperties": false,
+            "description": "This object contains properties which specify the details of the transport supported by the endpoint. The properties which are present, is dependemt on the type of transport supported by the endpoint.",
+            "longDescription": "The type shall contain properties which specify the details of the transport supported by the endpoint.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "IPv4Address": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address",
+                    "description": "The IPv4 addresses assigned to the Endpoint.",
+                    "longDescription": "The value of this property shall specify the IPv4Address."
+                },
+                "IPv6Address": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address",
+                    "description": "The IPv6 addresses assigned to the Endpoint.",
+                    "longDescription": "The value of this property shall specify the IPv6Address."
+                },
+                "Port": {
+                    "description": "The UDP or TCP port number used by the Endpoint.",
+                    "longDescription": "The value of this property shall be an specify UDP or TCP port number used for communication with the Endpoint.",
+                    "maximum": 65535,
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "TransportProtocol": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol",
+                    "description": "The protocol used by the connection entity.",
+                    "longDescription": "The value shall be the protocol used by the connection entity.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MutuallyExclusiveEndpoints": {
+                    "description": "An array of references to the endpoints that may not be used in zones if this endpoint is used in a zone.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Endpoint that cannot be used in a zone if this endpoint is used in a zone.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MutuallyExclusiveEndpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "NetworkDeviceFunction": {
+                    "description": "When NetworkDeviceFunction resources are present, this array contains references to the network device function that connect to this endpoint.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
+                    },
+                    "longDescription": "The value of this property shall be a reference to a NetworkDeviceFunction resource, with which this endpoint is associated.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetworkDeviceFunction@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "Ports": {
+                    "description": "An array of references to the the physical ports associated with this endpoint.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Port that are utilized by this endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Ports@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PciId": {
+            "additionalProperties": false,
+            "description": "A PCI ID.",
+            "longDescription": "This type shall describe a PCI ID.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DeviceId": {
+                    "description": "The Device ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SubsystemId": {
+                    "description": "The Subsystem ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SubsystemVendorId": {
+                    "description": "The Subsystem Vendor ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VendorId": {
+                    "description": "The Vendor ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#Endpoint.v1_1_0.Endpoint"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Endpoint/index.json b/static/redfish/v1/JsonSchemas/Endpoint/index.json
index eb5bb3b..442770b 100644
--- a/static/redfish/v1/JsonSchemas/Endpoint/index.json
+++ b/static/redfish/v1/JsonSchemas/Endpoint/index.json
@@ -1,547 +1,21 @@
 {
-    "$ref": "#/definitions/Endpoint",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/OemActions"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "ConnectedEntity": {
-            "additionalProperties": false,
-            "description": "Represents a remote resource that is connected to the network accessible to this endpoint.",
-            "longDescription": "This type shall represent a remote resource that is connected to a network accessible to an endpoint.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "EntityLink": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "A link to the associated entity.",
-                    "longDescription": "This property shall be a reference to an entity of the type specified by the description of the value of the EntityType property.",
-                    "readonly": true
-                },
-                "EntityPciId": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PciId"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The PCI ID of the connected entity.",
-                    "longDescription": "The value of this property shall be the PCI ID of the connected PCIe entity."
-                },
-                "EntityRole": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/EntityRole"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The role of the connected entity.",
-                    "longDescription": "The value of this property shall indicate if the specified entity is an initiator, target, or both.",
-                    "readonly": true
-                },
-                "EntityType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/EntityType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of the connected entity.",
-                    "longDescription": "The value of this property shall indicate if type of connected entity.",
-                    "readonly": true
-                },
-                "Identifiers": {
-                    "description": "Identifiers for the remote entity.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Identifiers for the remote entity shall be unique in the context of other resources that can reached over the connected network.",
-                    "type": "array"
-                },
-                "Oem": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                },
-                "PciClassCode": {
-                    "description": "The Class Code, Subclass code, and Programming Interface code of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Class Code, Subclass code, and Programming Interface code of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PciFunctionNumber": {
-                    "description": "The PCI ID of the connected entity.",
-                    "longDescription": "The value of this property shall be the PCI Function Number of the connected PCIe entity.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "Endpoint": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Endpoint resource. It represents the properties of an entity that sends or receives protocol defined messages over a transport.",
-            "longDescription": "This resource shall be used to represent a fabric endpoint for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The Actions object contains the available custom actions on this resource."
-                },
-                "ConnectedEntities": {
-                    "description": "All the entities connected to this endpoint.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/ConnectedEntity"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "This value of this property shall contain all the entities which this endpoint allows access to.",
-                    "type": "array"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EndpointProtocol": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The protocol supported by this endpoint.",
-                    "longDescription": "The value of this property shall contain the protocol this endpoint uses to communicate with other endpoints on this fabric.",
-                    "readonly": true
-                },
-                "HostReservationMemoryBytes": {
-                    "description": "The amount of memory in Bytes that the Host should allocate to connect to this endpoint.",
-                    "longDescription": "The value of this property shall be the amount of memory in Bytes that the Host should allocate to connect to this endpoint.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By"
-                },
-                "IPTransportDetails": {
-                    "description": "This array contains details for each IP transport supported by this endpoint. The array structure can be used to model multiple IP addresses for this endpoint.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/IPTransportDetails"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "This array shall contain the details for each IP transport supported by this endpoint.",
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Identifiers": {
-                    "description": "Identifiers for this endpoint.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Identifiers for this endpoint shall be unique in the context of other endpoints that can reached over the connected network.",
-                    "type": "array"
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "The links object contains the links to other resources that are related to this resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PciId": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PciId"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The PCI ID of the endpoint.",
-                    "longDescription": "The value of this property shall be the PCI ID of the endpoint."
-                },
-                "Redundancy": {
-                    "description": "Redundancy information for the lower level endpoints supporting this endpoint.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "EntityRole": {
-            "enum": [
-                "Initiator",
-                "Target",
-                "Both"
-            ],
-            "enumDescriptions": {
-                "Both": "The entity is acting as both an initiator and a target.",
-                "Initiator": "The entity is acting as an initiator.",
-                "Target": "The entity is acting as a target."
-            },
-            "type": "string"
-        },
-        "EntityType": {
-            "enum": [
-                "StorageInitiator",
-                "RootComplex",
-                "NetworkController",
-                "Drive",
-                "StorageExpander",
-                "DisplayController",
-                "Bridge",
-                "Processor",
-                "Volume"
-            ],
-            "enumDescriptions": {
-                "Bridge": "The entity is a PCI(e) bridge.",
-                "DisplayController": "The entity is a display controller.",
-                "Drive": "The entity is a disk drive. The EntityLink property (if present) should be a Drive.Drive entity.",
-                "NetworkController": "The entity is a network controller. The EntityLink property (if present) should be an EthernetInterface.EthernetInterface entity.",
-                "Processor": "The entity is a processor device.",
-                "RootComplex": "The entity is a PCI(e) root complex. The EntityLink property (if present) should be a ComputerSystem.ComputerSystem entity.",
-                "StorageExpander": "The entity is a storage expander. The EntityLink property (if present) should be a Chassis.Chassis entity.",
-                "StorageInitiator": "The entity is a storage initator. The EntityLink property (if present) should be a Storage.StorageController entity.",
-                "Volume": "The entity is a volume. The EntityLink property (if present) should be a Volume.Volume entity."
-            },
-            "type": "string"
-        },
-        "IPTransportDetails": {
-            "additionalProperties": false,
-            "description": "This object contains properties which specify the details of the transport supported by the endpoint. The properties which are present, is dependemt on the type of transport supported by the endpoint.",
-            "longDescription": "The type shall contain properties which specify the details of the transport supported by the endpoint.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "IPv4Address": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address",
-                    "description": "The IPv4 addresses assigned to the Endpoint.",
-                    "longDescription": "The value of this property shall specify the IPv4Address."
-                },
-                "IPv6Address": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address",
-                    "description": "The IPv6 addresses assigned to the Endpoint.",
-                    "longDescription": "The value of this property shall specify the IPv6Address."
-                },
-                "Port": {
-                    "description": "The UDP or TCP port number used by the Endpoint.",
-                    "longDescription": "The value of this property shall be an specify UDP or TCP port number used for communication with the Endpoint.",
-                    "maximum": 65535,
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "TransportProtocol": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol",
-                    "description": "The protocol used by the connection entity.",
-                    "longDescription": "The value shall be the protocol used by the connection entity.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MutuallyExclusiveEndpoints": {
-                    "description": "An array of references to the endpoints that may not be used in zones if this endpoint is used in a zone.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Endpoint that cannot be used in a zone if this endpoint is used in a zone.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MutuallyExclusiveEndpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "NetworkDeviceFunction": {
-                    "description": "When NetworkDeviceFunction resources are present, this array contains references to the network device function that connect to this endpoint.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
-                    },
-                    "longDescription": "The value of this property shall be a reference to a NetworkDeviceFunction resource, with which this endpoint is associated.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetworkDeviceFunction@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "Ports": {
-                    "description": "An array of references to the the physical ports associated with this endpoint.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Port that are utilized by this endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Ports@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PciId": {
-            "additionalProperties": false,
-            "description": "A PCI ID.",
-            "longDescription": "This type shall describe a PCI ID.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DeviceId": {
-                    "description": "The Device ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SubsystemId": {
-                    "description": "The Subsystem ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SubsystemVendorId": {
-                    "description": "The Subsystem Vendor ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VendorId": {
-                    "description": "The Vendor ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Endpoint",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Endpoint Schema File",
+    "Schema": "#Endpoint.Endpoint",
+    "Description": "Endpoint Schema File Location",
+    "Id": "Endpoint",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Endpoint.json",
+            "Uri": "/redfish/v1/JSONSchemas/Endpoint/Endpoint.json"
         }
-    },
-    "title": "#Endpoint.v1_1_0.Endpoint"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json b/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json
new file mode 100644
index 0000000..ce73c55
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json
@@ -0,0 +1,701 @@
+{
+    "$ref": "#/definitions/EthernetInterface",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "DHCPv4Configuration": {
+            "additionalProperties": false,
+            "description": "DHCPv4 configuration for this interface.",
+            "longDescription": "This type shall describe the configuration of DHCP v4.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DHCPEnabled": {
+                    "description": "Determines whether DHCPv4 is enabled on this interface.",
+                    "longDescription": "This property shall indicate whether DHCP v4 is enabled for this EthernetInterface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseDNSServers": {
+                    "description": "Determines whether to use DHCPv4-supplied DNS servers.",
+                    "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied DNS servers.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseDomainName": {
+                    "description": "Determines whether to use a DHCPv4-supplied domain name.",
+                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied domain name.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseGateway": {
+                    "description": "Determines whether to use a DHCPv4-supplied gateway.",
+                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied gateway.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseNTPServers": {
+                    "description": "Determines whether to use DHCPv4-supplied NTP servers.",
+                    "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied NTP servers.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseStaticRoutes": {
+                    "description": "Determines whether to use DHCPv4-supplied static routes.",
+                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied static routes.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "DHCPv6Configuration": {
+            "additionalProperties": false,
+            "description": "DHCPv6 configuration for this interface.",
+            "longDescription": "This type shall describe the configuration of DHCP v6.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "OperatingMode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/DHCPv6OperatingMode"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Determines the DHCPv6 operating mode for this interface.",
+                    "longDescription": "This property shall control the operating mode of DHCPv6 on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.",
+                    "readonly": false
+                },
+                "UseDNSServers": {
+                    "description": "When enabled, DNS server addresses supplied through DHCPv6 stateless mode will be used.",
+                    "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied DNS servers.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseDomainName": {
+                    "description": "When enabled, the domain name supplied through DHCPv6 stateless mode will be used.",
+                    "longDescription": "This property shall indicate whether the interface will use a domain name supplied through  DHCPv6 stateless mode.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseNTPServers": {
+                    "description": "When enabled, NTP server addresses supplied through DHCPv6 stateless mode will be used.",
+                    "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied NTP servers.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UseRapidCommit": {
+                    "description": "Determines whether to use DHCPv6 rapid commit mode for stateful mode address assignments. Do not enable in networks where more than one DHCPv6 server is configured to provide address assignments.",
+                    "longDescription": "This property shall indicate whether the interface will use DHCPv6 rapid commit mode for stateful mode address assignments.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "DHCPv6OperatingMode": {
+            "enum": [
+                "Stateful",
+                "Stateless",
+                "Disabled"
+            ],
+            "enumDescriptions": {
+                "Disabled": "DHCPv6 is disabled.",
+                "Stateful": "DHCPv6 stateful mode.",
+                "Stateless": "DHCPv6 stateless mode."
+            },
+            "enumLongDescriptions": {
+                "Disabled": "DHCPv6 shall be disabled for this interface.",
+                "Stateful": "DHCPv6 shall operate in stateful mode on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.",
+                "Stateless": "DHCPv6 shall operate in  stateless mode on this interface.  DHCPv6 stateless mode allows configuring the interface using DHCP options but does not configure addresses. It is always enabled by default whenever DHCPv6 Stateful mode is also enabled."
+            },
+            "type": "string"
+        },
+        "EthernetInterface": {
+            "additionalProperties": false,
+            "description": "The EthernetInterface schema represents a single, logical ethernet interface or network interface controller (NIC).",
+            "longDescription": "This resource shall be used to represent NIC resources as part of the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AutoNeg": {
+                    "description": "This indicates if the speed and duplex are automatically negotiated and configured on this interface.",
+                    "longDescription": "The value of this property shall be true if auto negotiation of speed and duplex is enabled on this interface and false if it is disabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "DHCPv4": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/DHCPv4Configuration"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "DHCPv4 configuration for this interface.",
+                    "longDescription": "This property shall contain the configuration of DHCP v4."
+                },
+                "DHCPv6": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/DHCPv6Configuration"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "DHCPv6 configuration for this interface.",
+                    "longDescription": "This property shall contain the configuration of DHCP v6."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "FQDN": {
+                    "description": "This is the complete, fully qualified domain name obtained by DNS for this interface.",
+                    "longDescription": "The value of this property shall be the fully qualified domain name for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FullDuplex": {
+                    "description": "This indicates if the interface is in Full Duplex mode or not.",
+                    "longDescription": "The value of this property shall represent the duplex status of the Ethernet connection on this interface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "HostName": {
+                    "description": "The DNS Host Name, without any domain information.",
+                    "longDescription": "The value of this property shall be host name for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "IPv4Addresses": {
+                    "description": "The IPv4 addresses currently assigned to this interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
+                    },
+                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv4 connection characteristics for this interface. It is recommended that this propety be regarded as read-only, with configuration of static addresses performed by updating the values within IPv4StaticAddessses. Services may reject updates to this array for this reason.",
+                    "type": "array"
+                },
+                "IPv4StaticAddresses": {
+                    "description": "The IPv4 static addresses assigned to this interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
+                    },
+                    "longDescription": "The value of this property shall be an array of objects used to represent all IPv4 static addresses assigned (but not necessarily in use) to this interface. Addresses in use by this interface shall also appear in the IPv4Addresses property.",
+                    "type": "array"
+                },
+                "IPv6AddressPolicyTable": {
+                    "description": "An array representing the RFC 6724 Address Selection Policy Table.",
+                    "items": {
+                        "$ref": "#/definitions/IPv6AddressPolicyEntry"
+                    },
+                    "longDescription": "The value of this property shall be an array of objects used to represent the Address Selection Policy Table as defined in RFC 6724.",
+                    "type": "array"
+                },
+                "IPv6Addresses": {
+                    "description": "Enumerates in an array all of the currently assigned IPv6 addresses on this interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address"
+                    },
+                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 connection characteristics for this interface.",
+                    "type": "array"
+                },
+                "IPv6DefaultGateway": {
+                    "description": "This is the IPv6 default gateway address that is currently in use on this interface.",
+                    "longDescription": "The value of this property shall be the current IPv6 default gateway address that is in use on this interface.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "IPv6StaticAddresses": {
+                    "description": "Represents in an array all of the IPv6 static addresses to be assigned on this interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
+                    },
+                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 static connection characteristics for this interface.",
+                    "type": "array"
+                },
+                "IPv6StaticDefaultGateways": {
+                    "description": "The IPv6 static default gateways for this interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
+                    },
+                    "longDescription": "The values in this array shall represent the IPv6 static default gateway addresses for this interface.",
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "InterfaceEnabled": {
+                    "description": "This indicates whether this interface is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "LinkStatus": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LinkStatus"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The link status of this interface (port).",
+                    "longDescription": "The value of this property shall be the link status of this interface (port).",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "MACAddress": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MACAddress"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the currently configured MAC address of the (logical port) interface.",
+                    "longDescription": "The value of this property shall be the effective current MAC Address of this interface. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.",
+                    "readonly": false
+                },
+                "MTUSize": {
+                    "description": "This is the currently configured Maximum Transmission Unit (MTU) in bytes on this interface.",
+                    "longDescription": "The value of this property shall be the size in bytes of largest Protocol Data Unit (PDU) that can be passed in an Ethernet (MAC) frame on this interface.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MaxIPv6StaticAddresses": {
+                    "description": "This indicates the maximum number of Static IPv6 addresses that can be configured on this interface.",
+                    "longDescription": "The value of this property shall indicate the number of array items supported by IPv6StaticAddresses.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NameServers": {
+                    "description": "This represents DNS name servers that are currently in use on this interface.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "The value of this property shall be the DNS name servers used on this interface.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PermanentMACAddress": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MACAddress"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the permanent MAC address assigned to this interface (port).",
+                    "longDescription": "The value of this property shall be the Permanent MAC Address of this interface (port). This value is typically programmed during the manufacturing time. This address is not assignable.",
+                    "readonly": true
+                },
+                "SpeedMbps": {
+                    "description": "This is the current speed in Mbps of this interface.",
+                    "longDescription": "The value of this property shall be the link speed of the interface in Mbps.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Mbit/s"
+                },
+                "StatelessAddressAutoConfig": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/StatelessAddressAutoConfiguration"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.",
+                    "longDescription": "This object shall contain the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) properties for this interface."
+                },
+                "StaticNameServers": {
+                    "description": "A statically defined set of DNS server IP addresses (both IPv4 and IPv6).",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "A statically defined set of DNS server IP addresses to be used when DHCP provisioning is not in enabled for name server configuration. As an implementation option they may also be used in addition to DHCP provided addresses, or in cases where the DHCP server provides no DNS assigments.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "UefiDevicePath": {
+                    "description": "The UEFI device path for this interface.",
+                    "longDescription": "The value of this property shall be the UEFI device path to the device which implements this interface (port).",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VLAN": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "If this Network Interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this resource.",
+                    "longDescription": "The value of this property shall be the VLAN for this interface.  If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead."
+                },
+                "VLANs": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection",
+                    "description": "This is a reference to a collection of VLANs and is only used if the interface supports more than one VLANs.",
+                    "longDescription": "The value of this property shall reference a collection of VLAN resources. If this property is used, the VLANEnabled and VLANId property shall not be used.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "IPv6AddressPolicyEntry": {
+            "additionalProperties": false,
+            "description": "A entry in the RFC 6724 Address Selection Policy Table.",
+            "longDescription": "This type shall describe and entry in the Address Selection Policy Table as defined in RFC 6724.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Label": {
+                    "description": "The IPv6 Label (as defined in RFC 6724 section 2.1).",
+                    "longDescription": "This property shall contain the IPv6 Label value for this table entry as defined in RFC 6724 section 2.1.",
+                    "maximum": 100,
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Precedence": {
+                    "description": "The IPv6 Precedence (as defined in RFC 6724 section 2.1.",
+                    "longDescription": "This property shall contain the IPv6 Precedence value for this table entry as defined in RFC 6724 section 2.1.",
+                    "maximum": 100,
+                    "minimum": 1,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Prefix": {
+                    "description": "The IPv6 Address Prefix (as defined in RFC 6724 section 2.1).",
+                    "longDescription": "This property shall contain the IPv6 Address Prefix for this table entry as defined in RFC 6724 section 2.1.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "LinkStatus": {
+            "enum": [
+                "LinkUp",
+                "NoLink",
+                "LinkDown"
+            ],
+            "enumDescriptions": {
+                "LinkDown": "There is no link on this interface, but the interface is connected.",
+                "LinkUp": "The link is available for communication on this interface.",
+                "NoLink": "There is no link or connection detected on this interface."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the Chassis which contains this Ethernet Interface.",
+                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Ethernet Interface.",
+                    "readonly": true
+                },
+                "Endpoints": {
+                    "description": "An array of references to the endpoints that connect to this ethernet interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this ethernet interface is associated with and shall reference a resource of type Endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "HostInterface": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterface.json#/definitions/HostInterface",
+                    "description": "This is a reference to a Host Interface that is associated with this Ethernet Interface.",
+                    "longDescription": "The value of this property shall be a reference to a resource of type HostInterface which represents the interface used by a host to communicate with a Manager.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "MACAddress": {
+            "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "StatelessAddressAutoConfiguration": {
+            "additionalProperties": false,
+            "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.",
+            "longDescription": "This type shall describe the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) for this interface.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "IPv4AutoConfigEnabled": {
+                    "description": "Indicates whether IPv4 SLAAC is enabled for this interface.",
+                    "longDescription": "This property shall indicate whether IPv4 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IPv6AutoConfigEnabled": {
+                    "description": "Indicates whether IPv6 SLAAC is enabled for this interface.",
+                    "longDescription": "This property shall indicate whether IPv6 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#EthernetInterface.v1_4_0.EthernetInterface"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EthernetInterface/index.json b/static/redfish/v1/JsonSchemas/EthernetInterface/index.json
index ce73c55..9f70612 100644
--- a/static/redfish/v1/JsonSchemas/EthernetInterface/index.json
+++ b/static/redfish/v1/JsonSchemas/EthernetInterface/index.json
@@ -1,701 +1,21 @@
 {
-    "$ref": "#/definitions/EthernetInterface",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "DHCPv4Configuration": {
-            "additionalProperties": false,
-            "description": "DHCPv4 configuration for this interface.",
-            "longDescription": "This type shall describe the configuration of DHCP v4.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DHCPEnabled": {
-                    "description": "Determines whether DHCPv4 is enabled on this interface.",
-                    "longDescription": "This property shall indicate whether DHCP v4 is enabled for this EthernetInterface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseDNSServers": {
-                    "description": "Determines whether to use DHCPv4-supplied DNS servers.",
-                    "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied DNS servers.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseDomainName": {
-                    "description": "Determines whether to use a DHCPv4-supplied domain name.",
-                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied domain name.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseGateway": {
-                    "description": "Determines whether to use a DHCPv4-supplied gateway.",
-                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied gateway.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseNTPServers": {
-                    "description": "Determines whether to use DHCPv4-supplied NTP servers.",
-                    "longDescription": "This property shall indicate whether the interface will use DHCPv4-supplied NTP servers.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseStaticRoutes": {
-                    "description": "Determines whether to use DHCPv4-supplied static routes.",
-                    "longDescription": "This property shall indicate whether the interface will use a DHCPv4-supplied static routes.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "DHCPv6Configuration": {
-            "additionalProperties": false,
-            "description": "DHCPv6 configuration for this interface.",
-            "longDescription": "This type shall describe the configuration of DHCP v6.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "OperatingMode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/DHCPv6OperatingMode"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Determines the DHCPv6 operating mode for this interface.",
-                    "longDescription": "This property shall control the operating mode of DHCPv6 on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.",
-                    "readonly": false
-                },
-                "UseDNSServers": {
-                    "description": "When enabled, DNS server addresses supplied through DHCPv6 stateless mode will be used.",
-                    "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied DNS servers.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseDomainName": {
-                    "description": "When enabled, the domain name supplied through DHCPv6 stateless mode will be used.",
-                    "longDescription": "This property shall indicate whether the interface will use a domain name supplied through  DHCPv6 stateless mode.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseNTPServers": {
-                    "description": "When enabled, NTP server addresses supplied through DHCPv6 stateless mode will be used.",
-                    "longDescription": "This property shall indicate whether the interface will use DHCPv6-supplied NTP servers.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UseRapidCommit": {
-                    "description": "Determines whether to use DHCPv6 rapid commit mode for stateful mode address assignments. Do not enable in networks where more than one DHCPv6 server is configured to provide address assignments.",
-                    "longDescription": "This property shall indicate whether the interface will use DHCPv6 rapid commit mode for stateful mode address assignments.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "DHCPv6OperatingMode": {
-            "enum": [
-                "Stateful",
-                "Stateless",
-                "Disabled"
-            ],
-            "enumDescriptions": {
-                "Disabled": "DHCPv6 is disabled.",
-                "Stateful": "DHCPv6 stateful mode.",
-                "Stateless": "DHCPv6 stateless mode."
-            },
-            "enumLongDescriptions": {
-                "Disabled": "DHCPv6 shall be disabled for this interface.",
-                "Stateful": "DHCPv6 shall operate in stateful mode on this interface. DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.",
-                "Stateless": "DHCPv6 shall operate in  stateless mode on this interface.  DHCPv6 stateless mode allows configuring the interface using DHCP options but does not configure addresses. It is always enabled by default whenever DHCPv6 Stateful mode is also enabled."
-            },
-            "type": "string"
-        },
-        "EthernetInterface": {
-            "additionalProperties": false,
-            "description": "The EthernetInterface schema represents a single, logical ethernet interface or network interface controller (NIC).",
-            "longDescription": "This resource shall be used to represent NIC resources as part of the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AutoNeg": {
-                    "description": "This indicates if the speed and duplex are automatically negotiated and configured on this interface.",
-                    "longDescription": "The value of this property shall be true if auto negotiation of speed and duplex is enabled on this interface and false if it is disabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "DHCPv4": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/DHCPv4Configuration"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "DHCPv4 configuration for this interface.",
-                    "longDescription": "This property shall contain the configuration of DHCP v4."
-                },
-                "DHCPv6": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/DHCPv6Configuration"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "DHCPv6 configuration for this interface.",
-                    "longDescription": "This property shall contain the configuration of DHCP v6."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "FQDN": {
-                    "description": "This is the complete, fully qualified domain name obtained by DNS for this interface.",
-                    "longDescription": "The value of this property shall be the fully qualified domain name for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FullDuplex": {
-                    "description": "This indicates if the interface is in Full Duplex mode or not.",
-                    "longDescription": "The value of this property shall represent the duplex status of the Ethernet connection on this interface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "HostName": {
-                    "description": "The DNS Host Name, without any domain information.",
-                    "longDescription": "The value of this property shall be host name for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "IPv4Addresses": {
-                    "description": "The IPv4 addresses currently assigned to this interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
-                    },
-                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv4 connection characteristics for this interface. It is recommended that this propety be regarded as read-only, with configuration of static addresses performed by updating the values within IPv4StaticAddessses. Services may reject updates to this array for this reason.",
-                    "type": "array"
-                },
-                "IPv4StaticAddresses": {
-                    "description": "The IPv4 static addresses assigned to this interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
-                    },
-                    "longDescription": "The value of this property shall be an array of objects used to represent all IPv4 static addresses assigned (but not necessarily in use) to this interface. Addresses in use by this interface shall also appear in the IPv4Addresses property.",
-                    "type": "array"
-                },
-                "IPv6AddressPolicyTable": {
-                    "description": "An array representing the RFC 6724 Address Selection Policy Table.",
-                    "items": {
-                        "$ref": "#/definitions/IPv6AddressPolicyEntry"
-                    },
-                    "longDescription": "The value of this property shall be an array of objects used to represent the Address Selection Policy Table as defined in RFC 6724.",
-                    "type": "array"
-                },
-                "IPv6Addresses": {
-                    "description": "Enumerates in an array all of the currently assigned IPv6 addresses on this interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address"
-                    },
-                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 connection characteristics for this interface.",
-                    "type": "array"
-                },
-                "IPv6DefaultGateway": {
-                    "description": "This is the IPv6 default gateway address that is currently in use on this interface.",
-                    "longDescription": "The value of this property shall be the current IPv6 default gateway address that is in use on this interface.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "IPv6StaticAddresses": {
-                    "description": "Represents in an array all of the IPv6 static addresses to be assigned on this interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
-                    },
-                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 static connection characteristics for this interface.",
-                    "type": "array"
-                },
-                "IPv6StaticDefaultGateways": {
-                    "description": "The IPv6 static default gateways for this interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
-                    },
-                    "longDescription": "The values in this array shall represent the IPv6 static default gateway addresses for this interface.",
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "InterfaceEnabled": {
-                    "description": "This indicates whether this interface is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "LinkStatus": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LinkStatus"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The link status of this interface (port).",
-                    "longDescription": "The value of this property shall be the link status of this interface (port).",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "MACAddress": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MACAddress"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the currently configured MAC address of the (logical port) interface.",
-                    "longDescription": "The value of this property shall be the effective current MAC Address of this interface. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.",
-                    "readonly": false
-                },
-                "MTUSize": {
-                    "description": "This is the currently configured Maximum Transmission Unit (MTU) in bytes on this interface.",
-                    "longDescription": "The value of this property shall be the size in bytes of largest Protocol Data Unit (PDU) that can be passed in an Ethernet (MAC) frame on this interface.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MaxIPv6StaticAddresses": {
-                    "description": "This indicates the maximum number of Static IPv6 addresses that can be configured on this interface.",
-                    "longDescription": "The value of this property shall indicate the number of array items supported by IPv6StaticAddresses.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NameServers": {
-                    "description": "This represents DNS name servers that are currently in use on this interface.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "The value of this property shall be the DNS name servers used on this interface.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PermanentMACAddress": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MACAddress"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the permanent MAC address assigned to this interface (port).",
-                    "longDescription": "The value of this property shall be the Permanent MAC Address of this interface (port). This value is typically programmed during the manufacturing time. This address is not assignable.",
-                    "readonly": true
-                },
-                "SpeedMbps": {
-                    "description": "This is the current speed in Mbps of this interface.",
-                    "longDescription": "The value of this property shall be the link speed of the interface in Mbps.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Mbit/s"
-                },
-                "StatelessAddressAutoConfig": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/StatelessAddressAutoConfiguration"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.",
-                    "longDescription": "This object shall contain the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) properties for this interface."
-                },
-                "StaticNameServers": {
-                    "description": "A statically defined set of DNS server IP addresses (both IPv4 and IPv6).",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "A statically defined set of DNS server IP addresses to be used when DHCP provisioning is not in enabled for name server configuration. As an implementation option they may also be used in addition to DHCP provided addresses, or in cases where the DHCP server provides no DNS assigments.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                },
-                "UefiDevicePath": {
-                    "description": "The UEFI device path for this interface.",
-                    "longDescription": "The value of this property shall be the UEFI device path to the device which implements this interface (port).",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VLAN": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "If this Network Interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this resource.",
-                    "longDescription": "The value of this property shall be the VLAN for this interface.  If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead."
-                },
-                "VLANs": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection",
-                    "description": "This is a reference to a collection of VLANs and is only used if the interface supports more than one VLANs.",
-                    "longDescription": "The value of this property shall reference a collection of VLAN resources. If this property is used, the VLANEnabled and VLANId property shall not be used.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "IPv6AddressPolicyEntry": {
-            "additionalProperties": false,
-            "description": "A entry in the RFC 6724 Address Selection Policy Table.",
-            "longDescription": "This type shall describe and entry in the Address Selection Policy Table as defined in RFC 6724.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Label": {
-                    "description": "The IPv6 Label (as defined in RFC 6724 section 2.1).",
-                    "longDescription": "This property shall contain the IPv6 Label value for this table entry as defined in RFC 6724 section 2.1.",
-                    "maximum": 100,
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Precedence": {
-                    "description": "The IPv6 Precedence (as defined in RFC 6724 section 2.1.",
-                    "longDescription": "This property shall contain the IPv6 Precedence value for this table entry as defined in RFC 6724 section 2.1.",
-                    "maximum": 100,
-                    "minimum": 1,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Prefix": {
-                    "description": "The IPv6 Address Prefix (as defined in RFC 6724 section 2.1).",
-                    "longDescription": "This property shall contain the IPv6 Address Prefix for this table entry as defined in RFC 6724 section 2.1.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "LinkStatus": {
-            "enum": [
-                "LinkUp",
-                "NoLink",
-                "LinkDown"
-            ],
-            "enumDescriptions": {
-                "LinkDown": "There is no link on this interface, but the interface is connected.",
-                "LinkUp": "The link is available for communication on this interface.",
-                "NoLink": "There is no link or connection detected on this interface."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the Chassis which contains this Ethernet Interface.",
-                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Ethernet Interface.",
-                    "readonly": true
-                },
-                "Endpoints": {
-                    "description": "An array of references to the endpoints that connect to this ethernet interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this ethernet interface is associated with and shall reference a resource of type Endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "HostInterface": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterface.json#/definitions/HostInterface",
-                    "description": "This is a reference to a Host Interface that is associated with this Ethernet Interface.",
-                    "longDescription": "The value of this property shall be a reference to a resource of type HostInterface which represents the interface used by a host to communicate with a Manager.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "MACAddress": {
-            "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "StatelessAddressAutoConfiguration": {
-            "additionalProperties": false,
-            "description": "Stateless Address Automatic Configuration (SLAAC) parameters for this interface.",
-            "longDescription": "This type shall describe the IPv4 and IPv6 Stateless Address Automatic Configuration (SLAAC) for this interface.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "IPv4AutoConfigEnabled": {
-                    "description": "Indicates whether IPv4 SLAAC is enabled for this interface.",
-                    "longDescription": "This property shall indicate whether IPv4 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IPv6AutoConfigEnabled": {
-                    "description": "Indicates whether IPv6 SLAAC is enabled for this interface.",
-                    "longDescription": "This property shall indicate whether IPv6 Stateless Address Auto-Configuration (SLAAC) is enabled for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/EthernetInterface",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "EthernetInterface Schema File",
+    "Schema": "#EthernetInterface.EthernetInterface",
+    "Description": "EthernetInterface Schema File Location",
+    "Id": "EthernetInterface",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json",
+            "Uri": "/redfish/v1/JSONSchemas/EthernetInterface/EthernetInterface.json"
         }
-    },
-    "title": "#EthernetInterface.v1_4_0.EthernetInterface"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Event/Event.json b/static/redfish/v1/JsonSchemas/Event/Event.json
new file mode 100644
index 0000000..344cfb0
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Event/Event.json
@@ -0,0 +1,294 @@
+{
+    "$ref": "#/definitions/Event",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Event": {
+            "additionalProperties": false,
+            "description": "The Event schema describes the JSON payload received by an Event Destination (which has subscribed to event notification) when events occurs.  This resource contains data about event(s), including descriptions, severity and MessageId reference to a Message Registry that can be accessed for further information.",
+            "longDescription": "This resource shall be used to represent an event for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Context": {
+                    "description": "A context can be supplied at subscription time.  This property is the context value supplied by the subscriber.",
+                    "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Events": {
+                    "description": "Each event in this array has a set of properties that describe the event.  Since this is an array, more than one event can be sent simultaneously.",
+                    "items": {
+                        "$ref": "#/definitions/EventRecord"
+                    },
+                    "longDescription": "The value of this resource shall be an array of Event objects used to represent the occurrence of one or more events.",
+                    "type": "array"
+                },
+                "Events@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "required": [
+                "Events",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "EventRecord": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/EventRecordActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Context": {
+                    "deprecated": "Events are triggered independently from subscriptions to those events.  This property has been Deprecated in favor of Event.v1_0_2.Event.Context",
+                    "description": "A context can be supplied at subscription time.  This property is the context value supplied by the subscriber.",
+                    "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventId": {
+                    "description": "This is a unique instance identifier of an event.",
+                    "longDescription": "The value of this property shall indicate a unique identifier for the event, the format of which is implementation dependent.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventTimestamp": {
+                    "description": "This is time the event occurred.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time the event occurred where the value shall be consistent with the Redfish service time that is also used for the values of the Modified property.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
+                    "description": "This indicates the type of event sent, according to the definitions in the EventService.",
+                    "longDescription": "The value of this property shall indicate the type of event as defined in the EventService schema.",
+                    "readonly": true
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Message": {
+                    "description": "This is the human readable message, if provided.",
+                    "longDescription": "This property shall contain an optional human readable message.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MessageArgs": {
+                    "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "This property has the same semantics as the MessageArgs property in the Event schema for Redfish.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MessageId": {
+                    "description": "This is the key for this message which can be used to look up the message in a message registry.",
+                    "longDescription": "This property shall be a key into message registry as described in the Redfish specification.",
+                    "pattern": "^[A-Za-z0-9]+\\.\\d+\\.\\d+\\.[A-Za-z0-9.]+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OriginOfCondition": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef",
+                    "description": "This indicates the resource that originated the condition that caused the event to be generated.",
+                    "longDescription": "The value of this property shall contain a pointer consistent with JSON pointer syntax to the resource that caused the event to be generated.",
+                    "readonly": true
+                },
+                "Severity": {
+                    "description": "This is the severity of the event.",
+                    "longDescription": "The value of this property shall be the severity of the event, as defined in the Status section of the Redfish specification.",
+                    "readonly": true,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "EventType",
+                "MessageId"
+            ],
+            "type": "object"
+        },
+        "EventRecordActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/EventRecordOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "EventRecordOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "EventType": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "StatusChange",
+                "ResourceUpdated",
+                "ResourceAdded",
+                "ResourceRemoved",
+                "Alert"
+            ],
+            "enumDescriptions": {
+                "Alert": "A condition exists which requires attention.",
+                "ResourceAdded": "A resource has been added.",
+                "ResourceRemoved": "A resource has been removed.",
+                "ResourceUpdated": "The value of this resource has been updated.",
+                "StatusChange": "The status of this resource has changed."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#Event.v1_2_1.Event"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Event/index.json b/static/redfish/v1/JsonSchemas/Event/index.json
index 344cfb0..e6bf8c0 100644
--- a/static/redfish/v1/JsonSchemas/Event/index.json
+++ b/static/redfish/v1/JsonSchemas/Event/index.json
@@ -1,294 +1,21 @@
 {
-    "$ref": "#/definitions/Event",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Event": {
-            "additionalProperties": false,
-            "description": "The Event schema describes the JSON payload received by an Event Destination (which has subscribed to event notification) when events occurs.  This resource contains data about event(s), including descriptions, severity and MessageId reference to a Message Registry that can be accessed for further information.",
-            "longDescription": "This resource shall be used to represent an event for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Context": {
-                    "description": "A context can be supplied at subscription time.  This property is the context value supplied by the subscriber.",
-                    "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Events": {
-                    "description": "Each event in this array has a set of properties that describe the event.  Since this is an array, more than one event can be sent simultaneously.",
-                    "items": {
-                        "$ref": "#/definitions/EventRecord"
-                    },
-                    "longDescription": "The value of this resource shall be an array of Event objects used to represent the occurrence of one or more events.",
-                    "type": "array"
-                },
-                "Events@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "required": [
-                "Events",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "EventRecord": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/EventRecordActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Context": {
-                    "deprecated": "Events are triggered independently from subscriptions to those events.  This property has been Deprecated in favor of Event.v1_0_2.Event.Context",
-                    "description": "A context can be supplied at subscription time.  This property is the context value supplied by the subscriber.",
-                    "longDescription": "This property shall contain a client supplied context for the Event Destination to which this event is being sent.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventId": {
-                    "description": "This is a unique instance identifier of an event.",
-                    "longDescription": "The value of this property shall indicate a unique identifier for the event, the format of which is implementation dependent.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventTimestamp": {
-                    "description": "This is time the event occurred.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time the event occurred where the value shall be consistent with the Redfish service time that is also used for the values of the Modified property.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
-                    "description": "This indicates the type of event sent, according to the definitions in the EventService.",
-                    "longDescription": "The value of this property shall indicate the type of event as defined in the EventService schema.",
-                    "readonly": true
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Message": {
-                    "description": "This is the human readable message, if provided.",
-                    "longDescription": "This property shall contain an optional human readable message.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MessageArgs": {
-                    "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "This property has the same semantics as the MessageArgs property in the Event schema for Redfish.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MessageId": {
-                    "description": "This is the key for this message which can be used to look up the message in a message registry.",
-                    "longDescription": "This property shall be a key into message registry as described in the Redfish specification.",
-                    "pattern": "^[A-Za-z0-9]+\\.\\d+\\.\\d+\\.[A-Za-z0-9.]+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OriginOfCondition": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef",
-                    "description": "This indicates the resource that originated the condition that caused the event to be generated.",
-                    "longDescription": "The value of this property shall contain a pointer consistent with JSON pointer syntax to the resource that caused the event to be generated.",
-                    "readonly": true
-                },
-                "Severity": {
-                    "description": "This is the severity of the event.",
-                    "longDescription": "The value of this property shall be the severity of the event, as defined in the Status section of the Redfish specification.",
-                    "readonly": true,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "EventType",
-                "MessageId"
-            ],
-            "type": "object"
-        },
-        "EventRecordActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/EventRecordOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "EventRecordOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "EventType": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "StatusChange",
-                "ResourceUpdated",
-                "ResourceAdded",
-                "ResourceRemoved",
-                "Alert"
-            ],
-            "enumDescriptions": {
-                "Alert": "A condition exists which requires attention.",
-                "ResourceAdded": "A resource has been added.",
-                "ResourceRemoved": "A resource has been removed.",
-                "ResourceUpdated": "The value of this resource has been updated.",
-                "StatusChange": "The status of this resource has changed."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Event",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Event Schema File",
+    "Schema": "#Event.Event",
+    "Description": "Event Schema File Location",
+    "Id": "Event",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Event.json",
+            "Uri": "/redfish/v1/JSONSchemas/Event/Event.json"
         }
-    },
-    "title": "#Event.v1_2_1.Event"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json b/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json
new file mode 100644
index 0000000..5de8a7b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json
@@ -0,0 +1,243 @@
+{
+    "$ref": "#/definitions/EventDestination",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "EventDestination": {
+            "additionalProperties": false,
+            "description": "An Event Destination desribes the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Context": {
+                    "description": "A client-supplied string that is stored with the event destination subscription.",
+                    "longDescription": "This property shall contain a client supplied context that will remain with the connection through the connections lifetime.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Destination": {
+                    "description": "The URI of the destination Event Service.",
+                    "format": "uri",
+                    "longDescription": "This property shall contain a URI to the destination where the events will be sent.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventTypes": {
+                    "description": "This property shall contain the types of events that shall be sent to the desination.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "HttpHeaders": {
+                    "description": "This is for setting HTTP headers, such as authorization information.  This object will be null on a GET.",
+                    "items": {
+                        "$ref": "#/definitions/HttpHeaderProperty"
+                    },
+                    "longDescription": "This property shall contain an object consisting of the names and values of of HTTP header to be included with every event POST to the Event Destination.  This property shall be null on a GET.",
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "MessageIds": {
+                    "description": "A list of MessageIds that the service will only send.  If this property is absent or the array is empty, then Events with any MessageId will be sent to the subscriber.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall specify an array of MessageIds that are the only allowable values for the MessageId property within an EventRecord sent to the subscriber.  Events with MessageIds not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events with any MessageId to the subscriber.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OriginResources": {
+                    "description": "A list of resources for which the service will only send related events.  If this property is absent or the array is empty, then Events originating from any resource will be sent to the subscriber.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall specify an array of Resources, Resource Collections, or Referenceable Members that are the only allowable values for the OriginOfCondition property within an EventRecord sent to the subscriber.  Events originating from Resources, Resource Collections, or Referenceable Members not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events originating from any Resource, Resource Collection, or Referenceable Member to the subscriber.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "OriginResources@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Protocol": {
+                    "$ref": "#/definitions/EventDestinationProtocol",
+                    "description": "The protocol type of the event connection.",
+                    "longDescription": "This property shall contain the protocol type that the event will use for sending the event to the destination.  A value of Redfish shall be used to indicate that the event type shall adhere to that defined in the Redfish specification.",
+                    "readonly": true
+                },
+                "SubscriptionType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SubscriptionType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Indicates the subscription type for events.",
+                    "longDescription": "The value of this property shall indicate the type of subscription for events.  If this property is not present, the SubscriptionType shall be assumed to be RedfishEvent.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Context",
+                "Id",
+                "Name",
+                "SubscriptionType"
+            ],
+            "requiredOnCreate": [
+                "Destination",
+                "EventTypes",
+                "Protocol"
+            ],
+            "type": "object"
+        },
+        "EventDestinationProtocol": {
+            "enum": [
+                "Redfish"
+            ],
+            "enumDescriptions": {
+                "Redfish": "The destination follows the Redfish specification for event notifications."
+            },
+            "type": "string"
+        },
+        "HttpHeaderProperty": {
+            "additionalProperties": false,
+            "description": "The value of the HTTP header is the property value.  The header name is the property name.",
+            "longDescription": "This type shall a names and value of an HTTP header to be included with every event POST to the Event Destination.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                },
+                "^[^:\\\\s]+$": {
+                    "type": "string"
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "SubscriptionType": {
+            "enum": [
+                "RedfishEvent",
+                "SSE"
+            ],
+            "enumDescriptions": {
+                "RedfishEvent": "The subscription follows the Redfish specification for event notifications, which is done by a service sending an HTTP POST to the subscriber's destination URI.",
+                "SSE": "The subscription follows the HTML5 Server-Sent Event definition for event notifications."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#EventDestination.v1_3_0.EventDestination"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EventDestination/index.json b/static/redfish/v1/JsonSchemas/EventDestination/index.json
index 5de8a7b..45efe10 100644
--- a/static/redfish/v1/JsonSchemas/EventDestination/index.json
+++ b/static/redfish/v1/JsonSchemas/EventDestination/index.json
@@ -1,243 +1,21 @@
 {
-    "$ref": "#/definitions/EventDestination",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "EventDestination": {
-            "additionalProperties": false,
-            "description": "An Event Destination desribes the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Context": {
-                    "description": "A client-supplied string that is stored with the event destination subscription.",
-                    "longDescription": "This property shall contain a client supplied context that will remain with the connection through the connections lifetime.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Destination": {
-                    "description": "The URI of the destination Event Service.",
-                    "format": "uri",
-                    "longDescription": "This property shall contain a URI to the destination where the events will be sent.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventTypes": {
-                    "description": "This property shall contain the types of events that shall be sent to the desination.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                },
-                "HttpHeaders": {
-                    "description": "This is for setting HTTP headers, such as authorization information.  This object will be null on a GET.",
-                    "items": {
-                        "$ref": "#/definitions/HttpHeaderProperty"
-                    },
-                    "longDescription": "This property shall contain an object consisting of the names and values of of HTTP header to be included with every event POST to the Event Destination.  This property shall be null on a GET.",
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "MessageIds": {
-                    "description": "A list of MessageIds that the service will only send.  If this property is absent or the array is empty, then Events with any MessageId will be sent to the subscriber.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall specify an array of MessageIds that are the only allowable values for the MessageId property within an EventRecord sent to the subscriber.  Events with MessageIds not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events with any MessageId to the subscriber.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OriginResources": {
-                    "description": "A list of resources for which the service will only send related events.  If this property is absent or the array is empty, then Events originating from any resource will be sent to the subscriber.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall specify an array of Resources, Resource Collections, or Referenceable Members that are the only allowable values for the OriginOfCondition property within an EventRecord sent to the subscriber.  Events originating from Resources, Resource Collections, or Referenceable Members not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events originating from any Resource, Resource Collection, or Referenceable Member to the subscriber.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "OriginResources@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Protocol": {
-                    "$ref": "#/definitions/EventDestinationProtocol",
-                    "description": "The protocol type of the event connection.",
-                    "longDescription": "This property shall contain the protocol type that the event will use for sending the event to the destination.  A value of Redfish shall be used to indicate that the event type shall adhere to that defined in the Redfish specification.",
-                    "readonly": true
-                },
-                "SubscriptionType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SubscriptionType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Indicates the subscription type for events.",
-                    "longDescription": "The value of this property shall indicate the type of subscription for events.  If this property is not present, the SubscriptionType shall be assumed to be RedfishEvent.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Context",
-                "Id",
-                "Name",
-                "SubscriptionType"
-            ],
-            "requiredOnCreate": [
-                "Destination",
-                "EventTypes",
-                "Protocol"
-            ],
-            "type": "object"
-        },
-        "EventDestinationProtocol": {
-            "enum": [
-                "Redfish"
-            ],
-            "enumDescriptions": {
-                "Redfish": "The destination follows the Redfish specification for event notifications."
-            },
-            "type": "string"
-        },
-        "HttpHeaderProperty": {
-            "additionalProperties": false,
-            "description": "The value of the HTTP header is the property value.  The header name is the property name.",
-            "longDescription": "This type shall a names and value of an HTTP header to be included with every event POST to the Event Destination.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                },
-                "^[^:\\\\s]+$": {
-                    "type": "string"
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "SubscriptionType": {
-            "enum": [
-                "RedfishEvent",
-                "SSE"
-            ],
-            "enumDescriptions": {
-                "RedfishEvent": "The subscription follows the Redfish specification for event notifications, which is done by a service sending an HTTP POST to the subscriber's destination URI.",
-                "SSE": "The subscription follows the HTML5 Server-Sent Event definition for event notifications."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/EventDestination",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "EventDestination Schema File",
+    "Schema": "#EventDestination.EventDestination",
+    "Description": "EventDestination Schema File Location",
+    "Id": "EventDestination",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/EventDestination.json",
+            "Uri": "/redfish/v1/JSONSchemas/EventDestination/EventDestination.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#EventDestination.v1_3_0.EventDestination"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EventService/EventService.json b/static/redfish/v1/JsonSchemas/EventService/EventService.json
new file mode 100644
index 0000000..d3131db
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/EventService/EventService.json
@@ -0,0 +1,252 @@
+{
+    "$ref": "#/definitions/EventService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#EventService.SubmitTestEvent": {
+                    "$ref": "#/definitions/SubmitTestEvent"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "EventService": {
+            "additionalProperties": false,
+            "description": "The Event Service resource contains properties for managing event subcriptions and generates the events sent to subscribers.  The resource has links to the actual collection of subscriptions (called Event Destinations).",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "DeliveryRetryAttempts": {
+                    "description": "This is the number of attempts an event posting is retried before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.",
+                    "longDescription": "The value of this property shall be the number of retrys attempted for any given event to the subscription destination before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.",
+                    "readonly": false,
+                    "type": "number"
+                },
+                "DeliveryRetryIntervalSeconds": {
+                    "description": "This represents the number of seconds between retry attempts for sending any given Event.",
+                    "longDescription": "The value of this property shall be the interval in seconds between the retry attempts for any given event to the subscription destination.",
+                    "readonly": false,
+                    "type": "number",
+                    "units": "s"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EventTypesForSubscription": {
+                    "description": "This is the types of Events that can be subscribed to.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType"
+                    },
+                    "longDescription": "The value of this property shall be the types of events that subscriptions can subscribe to.  The semantics associated with the enumerations values are defined in the Redfish specification.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "ServerSentEventUri": {
+                    "description": "Link to a URI for receiving Sever Sent Event representations of the events generated by this service.",
+                    "format": "uri",
+                    "longDescription": "The value of this property shall be a URI that specifies an HTML5 Server-Sent Event conformant endpoint.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Subscriptions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EventDestinationCollection.json#/definitions/EventDestinationCollection",
+                    "description": "This is a reference to a collection of Event Destination resources.",
+                    "longDescription": "The value of this property shall contain the link to a collection of type EventDestinationCollection.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "SubmitTestEvent": {
+            "additionalProperties": false,
+            "description": "This action is used to generate a test event.",
+            "longDescription": "This action shall add a test event to the event service with the event data specified in the action parameters. This message should then be sent to any appropriate ListenerDestination targets.",
+            "parameters": {
+                "EventId": {
+                    "description": "This is the ID of event to be added.",
+                    "longDescription": "This parameter shall have the same semantics as the EventId property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "EventTimestamp": {
+                    "description": "This is the time stamp of event to be added.",
+                    "format": "date-time",
+                    "longDescription": "This parameter shall have the same semantics as the EventTimestamp property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "EventType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
+                    "description": "This is the type of event to be added.",
+                    "longDescription": "This parameter shall define the property name for which the following allowable values apply.",
+                    "requiredParameter": true
+                },
+                "Message": {
+                    "description": "This is the human readable message of event to be added.",
+                    "longDescription": "This parameter shall have the same semantics as the Message property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "MessageArgs": {
+                    "description": "This is the array of message arguments of the event to be added.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "This parameter shall have the same semantics as the MessageArgs property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "array"
+                },
+                "MessageId": {
+                    "description": "This is the message ID of event to be added.",
+                    "longDescription": "This parameter shall have the same semantics as the MessageId property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "OriginOfCondition": {
+                    "description": "This is the OriginOfCondition property of event to be added.",
+                    "longDescription": "This parameter shall have the same semantics as the OriginOfCondition property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "Severity": {
+                    "description": "This is the Severity of event to be added.",
+                    "longDescription": "This parameter shall have the same semantics as the Severity property in the Event schema for Redfish.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#EventService.v1_1_0.EventService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/EventService/index.json b/static/redfish/v1/JsonSchemas/EventService/index.json
index d3131db..bb1e119 100644
--- a/static/redfish/v1/JsonSchemas/EventService/index.json
+++ b/static/redfish/v1/JsonSchemas/EventService/index.json
@@ -1,252 +1,21 @@
 {
-    "$ref": "#/definitions/EventService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#EventService.SubmitTestEvent": {
-                    "$ref": "#/definitions/SubmitTestEvent"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "EventService": {
-            "additionalProperties": false,
-            "description": "The Event Service resource contains properties for managing event subcriptions and generates the events sent to subscribers.  The resource has links to the actual collection of subscriptions (called Event Destinations).",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "DeliveryRetryAttempts": {
-                    "description": "This is the number of attempts an event posting is retried before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.",
-                    "longDescription": "The value of this property shall be the number of retrys attempted for any given event to the subscription destination before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated.",
-                    "readonly": false,
-                    "type": "number"
-                },
-                "DeliveryRetryIntervalSeconds": {
-                    "description": "This represents the number of seconds between retry attempts for sending any given Event.",
-                    "longDescription": "The value of this property shall be the interval in seconds between the retry attempts for any given event to the subscription destination.",
-                    "readonly": false,
-                    "type": "number",
-                    "units": "s"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EventTypesForSubscription": {
-                    "description": "This is the types of Events that can be subscribed to.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType"
-                    },
-                    "longDescription": "The value of this property shall be the types of events that subscriptions can subscribe to.  The semantics associated with the enumerations values are defined in the Redfish specification.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "ServerSentEventUri": {
-                    "description": "Link to a URI for receiving Sever Sent Event representations of the events generated by this service.",
-                    "format": "uri",
-                    "longDescription": "The value of this property shall be a URI that specifies an HTML5 Server-Sent Event conformant endpoint.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Subscriptions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EventDestinationCollection.json#/definitions/EventDestinationCollection",
-                    "description": "This is a reference to a collection of Event Destination resources.",
-                    "longDescription": "The value of this property shall contain the link to a collection of type EventDestinationCollection.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "SubmitTestEvent": {
-            "additionalProperties": false,
-            "description": "This action is used to generate a test event.",
-            "longDescription": "This action shall add a test event to the event service with the event data specified in the action parameters. This message should then be sent to any appropriate ListenerDestination targets.",
-            "parameters": {
-                "EventId": {
-                    "description": "This is the ID of event to be added.",
-                    "longDescription": "This parameter shall have the same semantics as the EventId property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "EventTimestamp": {
-                    "description": "This is the time stamp of event to be added.",
-                    "format": "date-time",
-                    "longDescription": "This parameter shall have the same semantics as the EventTimestamp property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "EventType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
-                    "description": "This is the type of event to be added.",
-                    "longDescription": "This parameter shall define the property name for which the following allowable values apply.",
-                    "requiredParameter": true
-                },
-                "Message": {
-                    "description": "This is the human readable message of event to be added.",
-                    "longDescription": "This parameter shall have the same semantics as the Message property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "MessageArgs": {
-                    "description": "This is the array of message arguments of the event to be added.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "This parameter shall have the same semantics as the MessageArgs property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "array"
-                },
-                "MessageId": {
-                    "description": "This is the message ID of event to be added.",
-                    "longDescription": "This parameter shall have the same semantics as the MessageId property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "OriginOfCondition": {
-                    "description": "This is the OriginOfCondition property of event to be added.",
-                    "longDescription": "This parameter shall have the same semantics as the OriginOfCondition property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "Severity": {
-                    "description": "This is the Severity of event to be added.",
-                    "longDescription": "This parameter shall have the same semantics as the Severity property in the Event schema for Redfish.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/EventService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "EventService Schema File",
+    "Schema": "#EventService.EventService",
+    "Description": "EventService Schema File Location",
+    "Id": "EventService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/EventService.json",
+            "Uri": "/redfish/v1/JSONSchemas/EventService/EventService.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#EventService.v1_1_0.EventService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json b/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json
new file mode 100644
index 0000000..b85c8a1
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ExternalAccountProvider/ExternalAccountProvider.json
@@ -0,0 +1,478 @@
+{
+    "$ref": "#/definitions/ExternalAccountProvider",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "AccountProviderTypes": {
+            "enum": [
+                "RedfishService",
+                "ActiveDirectoryService",
+                "LDAPService",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "ActiveDirectoryService": "An external Active Directory Service.",
+                "LDAPService": "A generic external LDAP Service.",
+                "OEM": "An OEM specific external authentication or directory service.",
+                "RedfishService": "An external Redfish Service."
+            },
+            "enumLongDescriptions": {
+                "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.",
+                "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.",
+                "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity."
+            },
+            "type": "string"
+        },
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Authentication": {
+            "additionalProperties": false,
+            "description": "Contains the authentication information for the external service.",
+            "longDescription": "This type shall contain all the required information to authenticate to the external service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AuthenticationType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AuthenticationTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the type of authentication used to connect to the external account provider.",
+                    "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.",
+                    "readonly": false
+                },
+                "KerberosKeytab": {
+                    "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "Password": {
+                    "description": "This property is used with a PATCH or PUT to write the password for the account service.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the password for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Token": {
+                    "description": "This property is used with a PATCH or PUT to write the token for the account.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the token for this account service.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Username": {
+                    "description": "This property contains the user name for the account service.",
+                    "longDescription": "The value of this property shall be the user name for this account service.",
+                    "readonly": false,
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "AuthenticationTypes": {
+            "enum": [
+                "Token",
+                "KerberosKeytab",
+                "UsernameAndPassword",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "KerberosKeytab": "A kerberos keytab.",
+                "OEM": "An OEM specific authentication mechanism.",
+                "Token": "An opaque authentication token.",
+                "UsernameAndPassword": "Username and password combination."
+            },
+            "type": "string"
+        },
+        "ExternalAccountProvider": {
+            "additionalProperties": false,
+            "description": "A remote service that can provide accounts for this manager to utilize for authentication.",
+            "longDescription": "This resource shall be used to represent resources that represent external user account services for this manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "AccountProviderType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AccountProviderTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the type of external account provider this resource references.",
+                    "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.",
+                    "readonly": true
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Authentication": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Authentication"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the authentication information for the external account provider.",
+                    "longDescription": "The value of this property shall contain the authentication information for the external account provider."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LDAPService": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LDAPService"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains additional mapping information needed to parse a generic LDAP service.",
+                    "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service."
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "RemoteRoleMapping": {
+                    "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/RoleMapping"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "This property shall contain a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
+                    "type": "array"
+                },
+                "ServiceAddresses": {
+                    "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "AccountProviderType"
+            ],
+            "type": "object"
+        },
+        "LDAPSearchSettings": {
+            "additionalProperties": false,
+            "description": "Contains settings for searching a generic LDAP service.",
+            "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BaseDistinguishedNames": {
+                    "description": "The base distinguished names to use when searching the LDAP service.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "GroupNameAttribute": {
+                    "description": "The attribute name that contains the name of the Group.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "GroupsAttribute": {
+                    "description": "The attribute name that contains the Groups for a user.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "UsernameAttribute": {
+                    "description": "The attribute name that contains the Username.",
+                    "longDescription": "The value of this property shall be the attribute name that contains the Username.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "LDAPService": {
+            "additionalProperties": false,
+            "description": "Contains settings for parsing a generic LDAP service.",
+            "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "SearchSettings": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LDAPSearchSettings"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property contains the settings needed to search an external LDAP service.",
+                    "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service."
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "RoleMapping": {
+            "additionalProperties": false,
+            "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.",
+            "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "LocalRole": {
+                    "description": "The name of the local role in which to map the remote user or group.",
+                    "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "RemoteGroup": {
+                    "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
+                    "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RemoteUser": {
+                    "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.",
+                    "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#ExternalAccountProvider.v1_0_0.ExternalAccountProvider"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ExternalAccountProvider/index.json b/static/redfish/v1/JsonSchemas/ExternalAccountProvider/index.json
index b85c8a1..4a25f46 100644
--- a/static/redfish/v1/JsonSchemas/ExternalAccountProvider/index.json
+++ b/static/redfish/v1/JsonSchemas/ExternalAccountProvider/index.json
@@ -1,478 +1,21 @@
 {
-    "$ref": "#/definitions/ExternalAccountProvider",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "AccountProviderTypes": {
-            "enum": [
-                "RedfishService",
-                "ActiveDirectoryService",
-                "LDAPService",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "ActiveDirectoryService": "An external Active Directory Service.",
-                "LDAPService": "A generic external LDAP Service.",
-                "OEM": "An OEM specific external authentication or directory service.",
-                "RedfishService": "An external Redfish Service."
-            },
-            "enumLongDescriptions": {
-                "ActiveDirectoryService": "The external account provider shall be a service conforming to the Microsoft Active Directory Technical specification. The format of ServiceAddresses shall be a collection of FQDNs or Netbios names that references the set of domain servers for the Active Directory service.",
-                "LDAPService": "The external account provider shall be a service conforming to RFC4511. The format of ServiceAddresses shall be a collection of FQDNs that references the set of LDAP servers for the service.",
-                "RedfishService": "The external account provider shall be a service conforming to the DMTF Redfish specification. The format of ServiceAddresses shall be a collection of URIs which corresponds to a Redfish AccountService entity."
-            },
-            "type": "string"
-        },
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Authentication": {
-            "additionalProperties": false,
-            "description": "Contains the authentication information for the external service.",
-            "longDescription": "This type shall contain all the required information to authenticate to the external service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AuthenticationType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AuthenticationTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the type of authentication used to connect to the external account provider.",
-                    "longDescription": "The value of this property shall be the type of authentication used to connect to the external account provider.",
-                    "readonly": false
-                },
-                "KerberosKeytab": {
-                    "description": "This property is used with a PATCH or PUT to write a base64 encoded version of the kerberos keytab for the account.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be a base64 encoded version of the kerberos keytab for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "Password": {
-                    "description": "This property is used with a PATCH or PUT to write the password for the account service.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the password for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Token": {
-                    "description": "This property is used with a PATCH or PUT to write the token for the account.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the token for this account service.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Username": {
-                    "description": "This property contains the user name for the account service.",
-                    "longDescription": "The value of this property shall be the user name for this account service.",
-                    "readonly": false,
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "AuthenticationTypes": {
-            "enum": [
-                "Token",
-                "KerberosKeytab",
-                "UsernameAndPassword",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "KerberosKeytab": "A kerberos keytab.",
-                "OEM": "An OEM specific authentication mechanism.",
-                "Token": "An opaque authentication token.",
-                "UsernameAndPassword": "Username and password combination."
-            },
-            "type": "string"
-        },
-        "ExternalAccountProvider": {
-            "additionalProperties": false,
-            "description": "A remote service that can provide accounts for this manager to utilize for authentication.",
-            "longDescription": "This resource shall be used to represent resources that represent external user account services for this manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "AccountProviderType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AccountProviderTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the type of external account provider this resource references.",
-                    "longDescription": "The value of this property shall be the type of external account provider referenced by this resource.",
-                    "readonly": true
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Authentication": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Authentication"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the authentication information for the external account provider.",
-                    "longDescription": "The value of this property shall contain the authentication information for the external account provider."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LDAPService": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LDAPService"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains additional mapping information needed to parse a generic LDAP service.",
-                    "longDescription": "The value of this property shall contain any additional mapping information needed to parse a generic LDAP service."
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "RemoteRoleMapping": {
-                    "description": "This property contains a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/RoleMapping"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "This property shall contain a collection of the mapping rules to convert the external account providers account information to the local Redfish Role.",
-                    "type": "array"
-                },
-                "ServiceAddresses": {
-                    "description": "This property contains the addresses of the user account providers this resource references. The format of this field depends on the Type.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be the addresses of the account providers this resource references. The format of this field depends on the Type of the ExternalAccountProvider. Each item in the array shall contain a single address. Services may define their own behavior for managing multiple addresses.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "AccountProviderType"
-            ],
-            "type": "object"
-        },
-        "LDAPSearchSettings": {
-            "additionalProperties": false,
-            "description": "Contains settings for searching a generic LDAP service.",
-            "longDescription": "This type shall contain all the required settings for searching a generic LDAP service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BaseDistinguishedNames": {
-                    "description": "The base distinguished names to use when searching the LDAP service.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be a collection of base distinguished names to use when searching the LDAP service.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "GroupNameAttribute": {
-                    "description": "The attribute name that contains the name of the Group.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the name of the Group.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "GroupsAttribute": {
-                    "description": "The attribute name that contains the Groups for a user.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the Groups for a user.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "UsernameAttribute": {
-                    "description": "The attribute name that contains the Username.",
-                    "longDescription": "The value of this property shall be the attribute name that contains the Username.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "LDAPService": {
-            "additionalProperties": false,
-            "description": "Contains settings for parsing a generic LDAP service.",
-            "longDescription": "This type shall contain all the required settings for parsing a generic LDAP service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "SearchSettings": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LDAPSearchSettings"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property contains the settings needed to search an external LDAP service.",
-                    "longDescription": "The value of this property shall contain the settings needed to search an external LDAP service."
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "RoleMapping": {
-            "additionalProperties": false,
-            "description": "Contains mapping rules to convert the external account providers account information to the local Redfish Role.",
-            "longDescription": "This type shall contain mapping rules to convert the external account providers account information to the local Redfish Role.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "LocalRole": {
-                    "description": "The name of the local role in which to map the remote user or group.",
-                    "longDescription": "The value of this property shall contain the value of the RoleId property within a Role resource on this Redfish service in which to map the remote user or group.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "RemoteGroup": {
-                    "description": "This property is the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
-                    "longDescription": "The value of this property shall contain the name of the remote group (or in the case of a Redfish Service, remote role) that will be mapped to the local role referenced by this entity.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RemoteUser": {
-                    "description": "This property is the name of the remote user that will be mapped to the local role referenced by this entity.",
-                    "longDescription": "The value of this property shall contain the name of the remote user that will be mapped to the local role referenced by this entity.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ExternalAccountProvider",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ExternalAccountProvider Schema File",
+    "Schema": "#ExternalAccountProvider.ExternalAccountProvider",
+    "Description": "ExternalAccountProvider Schema File Location",
+    "Id": "ExternalAccountProvider",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ExternalAccountProvider.json",
+            "Uri": "/redfish/v1/JSONSchemas/ExternalAccountProvider/ExternalAccountProvider.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#ExternalAccountProvider.v1_0_0.ExternalAccountProvider"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Fabric/Fabric.json b/static/redfish/v1/JsonSchemas/Fabric/Fabric.json
new file mode 100644
index 0000000..8ef086c
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Fabric/Fabric.json
@@ -0,0 +1,189 @@
+{
+    "$ref": "#/definitions/Fabric",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Fabric": {
+            "additionalProperties": false,
+            "description": "The Fabric schema represents a simple fabric consisting of one or more switches, zero or more endpoints, and zero or more zones.",
+            "longDescription": "This resource shall be used to represent a simple switchable fabric for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Endpoints": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EndpointCollection.json#/definitions/EndpointCollection",
+                    "description": "A collection of references to the endpoints contained in this fabric.",
+                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Endpoint.",
+                    "readonly": true
+                },
+                "FabricType": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The protocol being sent over this fabric.",
+                    "longDescription": "The value of this property shall contain the type of fabric being represented by this simple fabric.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "MaxZones": {
+                    "description": "The value of this property shall contain the maximum number of zones the switch can currently configure.",
+                    "longDescription": "The value of this property shall contain the maximum number of zones the switch can currently configure. This value can change based on changes in the logical or physical configuration of the system.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Switches": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SwitchCollection.json#/definitions/SwitchCollection",
+                    "description": "A collection of references to the switches contained in this fabric.",
+                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Switch.",
+                    "readonly": true
+                },
+                "Zones": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection",
+                    "description": "A collection of references to the zones contained in this fabric.",
+                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Zone.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#Fabric.v1_0_3.Fabric"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Fabric/index.json b/static/redfish/v1/JsonSchemas/Fabric/index.json
index 8ef086c..ebda4d0 100644
--- a/static/redfish/v1/JsonSchemas/Fabric/index.json
+++ b/static/redfish/v1/JsonSchemas/Fabric/index.json
@@ -1,189 +1,21 @@
 {
-    "$ref": "#/definitions/Fabric",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Fabric": {
-            "additionalProperties": false,
-            "description": "The Fabric schema represents a simple fabric consisting of one or more switches, zero or more endpoints, and zero or more zones.",
-            "longDescription": "This resource shall be used to represent a simple switchable fabric for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Endpoints": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EndpointCollection.json#/definitions/EndpointCollection",
-                    "description": "A collection of references to the endpoints contained in this fabric.",
-                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Endpoint.",
-                    "readonly": true
-                },
-                "FabricType": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The protocol being sent over this fabric.",
-                    "longDescription": "The value of this property shall contain the type of fabric being represented by this simple fabric.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "MaxZones": {
-                    "description": "The value of this property shall contain the maximum number of zones the switch can currently configure.",
-                    "longDescription": "The value of this property shall contain the maximum number of zones the switch can currently configure. This value can change based on changes in the logical or physical configuration of the system.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Switches": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SwitchCollection.json#/definitions/SwitchCollection",
-                    "description": "A collection of references to the switches contained in this fabric.",
-                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Switch.",
-                    "readonly": true
-                },
-                "Zones": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ZoneCollection.json#/definitions/ZoneCollection",
-                    "description": "A collection of references to the zones contained in this fabric.",
-                    "longDescription": "The value of this property shall be a reference to the resources that this fabric uses and shall reference a resource of type Zone.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Fabric",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Fabric Schema File",
+    "Schema": "#Fabric.Fabric",
+    "Description": "Fabric Schema File Location",
+    "Id": "Fabric",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Fabric.json",
+            "Uri": "/redfish/v1/JSONSchemas/Fabric/Fabric.json"
         }
-    },
-    "title": "#Fabric.v1_0_3.Fabric"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json b/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json
new file mode 100644
index 0000000..93ebeed
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/HostInterface/HostInterface.json
@@ -0,0 +1,296 @@
+{
+    "$ref": "#/definitions/HostInterface",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AuthenticationMode": {
+            "enum": [
+                "AuthNone",
+                "BasicAuth",
+                "RedfishSessionAuth",
+                "OemAuth"
+            ],
+            "enumDescriptions": {
+                "AuthNone": "Requests without any sort of authentication are allowed.",
+                "BasicAuth": "Requests using HTTP Basic Authentication are allowed.",
+                "OemAuth": "Requests using OEM authentication mechanisms are allowed.",
+                "RedfishSessionAuth": "Requests using Redfish Session Authentication are allowed."
+            },
+            "type": "string"
+        },
+        "HostInterface": {
+            "additionalProperties": false,
+            "description": "This schema defines a single Host Interface resource.",
+            "longDescription": "This resource shall be used to represent Host Interface resources as part of the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AuthenticationModes": {
+                    "description": "Indicates the authentication modes available on this interface.",
+                    "items": {
+                        "$ref": "#/definitions/AuthenticationMode"
+                    },
+                    "longDescription": "The value of this property shall be an array consisting of the authentication modes allowed on this interface.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "ExternallyAccessible": {
+                    "description": "Indicates whether this interface is accessible by external entities.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is accessible by external (non-host) entities.  For example, if the host and manager are connected via a switch, and the switch also exposes an external port on the system, then the interface could also be used by external clients, and this property will have the value set to true.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "FirmwareAuthEnabled": {
+                    "description": "Indicates whether this firmware authentication is enabled for this interface.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether firmware authentication for this interface is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "FirmwareAuthRoleId": {
+                    "description": "The Role used for firmware authentication on this interface.",
+                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for firmware authentication on this interface.",
+                    "readonly": false,
+                    "type": "string"
+                },
+                "HostEthernetInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
+                    "description": "The Redfish link to the collection of network interface controllers or cards (NICs) that a Computer System uses to communicate with this Host Interface.",
+                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection that Computer Systems use as the Host Interface to this Manager.",
+                    "readonly": true
+                },
+                "HostInterfaceType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/HostInterfaceType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Indicates the Host Interface type for this interface.",
+                    "longDescription": "The value of this property shall be an enumeration describing type of the interface.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "InterfaceEnabled": {
+                    "description": "Indicates whether this interface is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "KernelAuthEnabled": {
+                    "description": "Indicates whether this kernel authentication is enabled for this interface.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether kernel authentication for this interface is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "KernelAuthRoleId": {
+                    "description": "The Role used for kernel authentication on this interface.",
+                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for kernel authentication on this interface.",
+                    "readonly": false,
+                    "type": "string"
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "ManagerEthernetInterface": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface",
+                    "description": "The Redfish link to a single network interface controllers or cards (NIC) that this Manager uses for network communication with this Host Interface.",
+                    "longDescription": "The value of this property shall be a link to a resource of type EthernetInterface which represents the network interface used by this Manager as the HostInterface.",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkProtocol": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
+                    "description": "The Redfish link to the network services and their settings that the Manager controls.  It is here that clients will find network configuration options as well as network services.",
+                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this Manager.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "HostInterfaceType": {
+            "enum": [
+                "NetworkHostInterface"
+            ],
+            "enumDescriptions": {
+                "NetworkHostInterface": "This interface is a Network Host Interface."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "References to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ComputerSystems": {
+                    "description": "An array of references to the Computer Systems connected to this Host Interface.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value of this property shall be an array of references to resources of type ComputerSystem that are connected to this HostInterface.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "FirmwareAuthRole": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
+                    "description": "A reference to the Role that has firmware authentication privileges on this Host Interface.",
+                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property FirmwareAuthRoleId.",
+                    "readonly": true
+                },
+                "KernelAuthRole": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
+                    "description": "A reference to the Role object defining Privileges for this Host Interface when using kernel authentication.",
+                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property KernelAuthRoleId.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#HostInterface.v1_1_2.HostInterface"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/HostInterface/index.json b/static/redfish/v1/JsonSchemas/HostInterface/index.json
index 93ebeed..c2b2e40 100644
--- a/static/redfish/v1/JsonSchemas/HostInterface/index.json
+++ b/static/redfish/v1/JsonSchemas/HostInterface/index.json
@@ -1,296 +1,21 @@
 {
-    "$ref": "#/definitions/HostInterface",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AuthenticationMode": {
-            "enum": [
-                "AuthNone",
-                "BasicAuth",
-                "RedfishSessionAuth",
-                "OemAuth"
-            ],
-            "enumDescriptions": {
-                "AuthNone": "Requests without any sort of authentication are allowed.",
-                "BasicAuth": "Requests using HTTP Basic Authentication are allowed.",
-                "OemAuth": "Requests using OEM authentication mechanisms are allowed.",
-                "RedfishSessionAuth": "Requests using Redfish Session Authentication are allowed."
-            },
-            "type": "string"
-        },
-        "HostInterface": {
-            "additionalProperties": false,
-            "description": "This schema defines a single Host Interface resource.",
-            "longDescription": "This resource shall be used to represent Host Interface resources as part of the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AuthenticationModes": {
-                    "description": "Indicates the authentication modes available on this interface.",
-                    "items": {
-                        "$ref": "#/definitions/AuthenticationMode"
-                    },
-                    "longDescription": "The value of this property shall be an array consisting of the authentication modes allowed on this interface.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "ExternallyAccessible": {
-                    "description": "Indicates whether this interface is accessible by external entities.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is accessible by external (non-host) entities.  For example, if the host and manager are connected via a switch, and the switch also exposes an external port on the system, then the interface could also be used by external clients, and this property will have the value set to true.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "FirmwareAuthEnabled": {
-                    "description": "Indicates whether this firmware authentication is enabled for this interface.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether firmware authentication for this interface is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "FirmwareAuthRoleId": {
-                    "description": "The Role used for firmware authentication on this interface.",
-                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for firmware authentication on this interface.",
-                    "readonly": false,
-                    "type": "string"
-                },
-                "HostEthernetInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
-                    "description": "The Redfish link to the collection of network interface controllers or cards (NICs) that a Computer System uses to communicate with this Host Interface.",
-                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection that Computer Systems use as the Host Interface to this Manager.",
-                    "readonly": true
-                },
-                "HostInterfaceType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/HostInterfaceType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Indicates the Host Interface type for this interface.",
-                    "longDescription": "The value of this property shall be an enumeration describing type of the interface.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "InterfaceEnabled": {
-                    "description": "Indicates whether this interface is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "KernelAuthEnabled": {
-                    "description": "Indicates whether this kernel authentication is enabled for this interface.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether kernel authentication for this interface is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "KernelAuthRoleId": {
-                    "description": "The Role used for kernel authentication on this interface.",
-                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for kernel authentication on this interface.",
-                    "readonly": false,
-                    "type": "string"
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "ManagerEthernetInterface": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface",
-                    "description": "The Redfish link to a single network interface controllers or cards (NIC) that this Manager uses for network communication with this Host Interface.",
-                    "longDescription": "The value of this property shall be a link to a resource of type EthernetInterface which represents the network interface used by this Manager as the HostInterface.",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkProtocol": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
-                    "description": "The Redfish link to the network services and their settings that the Manager controls.  It is here that clients will find network configuration options as well as network services.",
-                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this Manager.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "HostInterfaceType": {
-            "enum": [
-                "NetworkHostInterface"
-            ],
-            "enumDescriptions": {
-                "NetworkHostInterface": "This interface is a Network Host Interface."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "References to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ComputerSystems": {
-                    "description": "An array of references to the Computer Systems connected to this Host Interface.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value of this property shall be an array of references to resources of type ComputerSystem that are connected to this HostInterface.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "FirmwareAuthRole": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
-                    "description": "A reference to the Role that has firmware authentication privileges on this Host Interface.",
-                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property FirmwareAuthRoleId.",
-                    "readonly": true
-                },
-                "KernelAuthRole": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
-                    "description": "A reference to the Role object defining Privileges for this Host Interface when using kernel authentication.",
-                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property KernelAuthRoleId.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/HostInterface",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "HostInterface Schema File",
+    "Schema": "#HostInterface.HostInterface",
+    "Description": "HostInterface Schema File Location",
+    "Id": "HostInterface",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/HostInterface.json",
+            "Uri": "/redfish/v1/JSONSchemas/HostInterface/HostInterface.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#HostInterface.v1_1_2.HostInterface"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json b/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json
new file mode 100644
index 0000000..e595ae4
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json
@@ -0,0 +1,253 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "AddressState": {
+            "enum": [
+                "Preferred",
+                "Deprecated",
+                "Tentative",
+                "Failed"
+            ],
+            "enumDescriptions": {
+                "Deprecated": "This address is currently within it's valid lifetime, but is now outside of it's preferred lifetime as defined in RFC 4862.",
+                "Failed": "This address has failed Duplicate Address Detection testing as defined in RFC 4862 section 5.4 and is not currently in use.",
+                "Preferred": "This address is currently within both it's valid and preferred lifetimes as defined in RFC 4862.",
+                "Tentative": "This address is currently undergoing Duplicate Address Detection testing as defined in RFC 4862 section 5.4."
+            },
+            "type": "string"
+        },
+        "IPv4Address": {
+            "additionalProperties": false,
+            "description": "This type describes an IPv4 Address.",
+            "longDescription": "This type shall describe an IPv4 address assigned to an interface.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Address": {
+                    "description": "This is the IPv4 Address.",
+                    "longDescription": "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.",
+                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "AddressOrigin": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IPv4AddressOrigin"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates how the address was determined.",
+                    "longDescription": "The value of this property shall be the IP address origin for this network interface.",
+                    "readonly": true
+                },
+                "Gateway": {
+                    "description": "This is the IPv4 gateway for this address.",
+                    "longDescription": "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.",
+                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "SubnetMask": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SubnetMask"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the IPv4 Subnet mask.",
+                    "longDescription": "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.",
+                    "readonly": false
+                }
+            },
+            "type": "object"
+        },
+        "IPv4AddressOrigin": {
+            "enum": [
+                "Static",
+                "DHCP",
+                "BOOTP",
+                "IPv4LinkLocal"
+            ],
+            "enumDescriptions": {
+                "BOOTP": "Address is provided by a BOOTP service.",
+                "DHCP": "Address is provided by a DHCPv4 service.",
+                "IPv4LinkLocal": "Address is valid only for this network segment (link).",
+                "Static": "A static address as configured by the user."
+            },
+            "type": "string"
+        },
+        "IPv6Address": {
+            "additionalProperties": false,
+            "description": "This type describes an IPv6 Address.",
+            "longDescription": "This type shall describe an IPv6 address assigned to an interface.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Address": {
+                    "description": "This is the IPv6 Address.",
+                    "longDescription": "This property lists an IPv6 address that is currently assigned on this interface.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "AddressOrigin": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IPv6AddressOrigin"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates how the address was determined.",
+                    "longDescription": "The value of this property shall be the IPv6 address origin for this interface.",
+                    "readonly": true
+                },
+                "AddressState": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AddressState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The current state of this address as defined in RFC 4862.",
+                    "longDescription": "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.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "PrefixLength": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PrefixLength"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the IPv6 Address Prefix Length.",
+                    "longDescription": "The value of this property shall be the IPv6 address prefix length for this interface.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "IPv6AddressOrigin": {
+            "enum": [
+                "Static",
+                "DHCPv6",
+                "LinkLocal",
+                "SLAAC"
+            ],
+            "enumDescriptions": {
+                "DHCPv6": "Address is provided by a DHCPv6 service.",
+                "LinkLocal": "Address is valid only for this network segment (link).",
+                "SLAAC": "Address is provided by a Stateless Address AutoConfiguration (SLAAC) service.",
+                "Static": "A static address as configured by the user."
+            },
+            "type": "string"
+        },
+        "IPv6StaticAddress": {
+            "additionalProperties": false,
+            "description": "This object represents a single IPv6 static address to be assigned on a network interface.",
+            "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Address": {
+                    "description": "A valid IPv6 address.",
+                    "longDescription": "This property provides access to a static IPv6 address that is currently assigned on a network interface.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "PrefixLength": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PrefixLength"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Prefix Length of this IPv6 address.",
+                    "longDescription": "Provides the IPv6 network prefix length in bits for this address.",
+                    "readonly": false
+                }
+            },
+            "required": [
+                "Address",
+                "PrefixLength"
+            ],
+            "type": "object"
+        },
+        "PrefixLength": {
+            "maximum": 128,
+            "minimum": 1,
+            "type": "number"
+        },
+        "SubnetMask": {
+            "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
+            "type": "string"
+        }
+    },
+    "title": "#IPAddresses.v1_0_6"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/IPAddresses/index.json b/static/redfish/v1/JsonSchemas/IPAddresses/index.json
index e595ae4..d281af3 100644
--- a/static/redfish/v1/JsonSchemas/IPAddresses/index.json
+++ b/static/redfish/v1/JsonSchemas/IPAddresses/index.json
@@ -1,253 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "AddressState": {
-            "enum": [
-                "Preferred",
-                "Deprecated",
-                "Tentative",
-                "Failed"
-            ],
-            "enumDescriptions": {
-                "Deprecated": "This address is currently within it's valid lifetime, but is now outside of it's preferred lifetime as defined in RFC 4862.",
-                "Failed": "This address has failed Duplicate Address Detection testing as defined in RFC 4862 section 5.4 and is not currently in use.",
-                "Preferred": "This address is currently within both it's valid and preferred lifetimes as defined in RFC 4862.",
-                "Tentative": "This address is currently undergoing Duplicate Address Detection testing as defined in RFC 4862 section 5.4."
-            },
-            "type": "string"
-        },
-        "IPv4Address": {
-            "additionalProperties": false,
-            "description": "This type describes an IPv4 Address.",
-            "longDescription": "This type shall describe an IPv4 address assigned to an interface.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Address": {
-                    "description": "This is the IPv4 Address.",
-                    "longDescription": "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.",
-                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "AddressOrigin": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IPv4AddressOrigin"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates how the address was determined.",
-                    "longDescription": "The value of this property shall be the IP address origin for this network interface.",
-                    "readonly": true
-                },
-                "Gateway": {
-                    "description": "This is the IPv4 gateway for this address.",
-                    "longDescription": "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.",
-                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "SubnetMask": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SubnetMask"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the IPv4 Subnet mask.",
-                    "longDescription": "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.",
-                    "readonly": false
-                }
-            },
-            "type": "object"
-        },
-        "IPv4AddressOrigin": {
-            "enum": [
-                "Static",
-                "DHCP",
-                "BOOTP",
-                "IPv4LinkLocal"
-            ],
-            "enumDescriptions": {
-                "BOOTP": "Address is provided by a BOOTP service.",
-                "DHCP": "Address is provided by a DHCPv4 service.",
-                "IPv4LinkLocal": "Address is valid only for this network segment (link).",
-                "Static": "A static address as configured by the user."
-            },
-            "type": "string"
-        },
-        "IPv6Address": {
-            "additionalProperties": false,
-            "description": "This type describes an IPv6 Address.",
-            "longDescription": "This type shall describe an IPv6 address assigned to an interface.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Address": {
-                    "description": "This is the IPv6 Address.",
-                    "longDescription": "This property lists an IPv6 address that is currently assigned on this interface.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "AddressOrigin": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IPv6AddressOrigin"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates how the address was determined.",
-                    "longDescription": "The value of this property shall be the IPv6 address origin for this interface.",
-                    "readonly": true
-                },
-                "AddressState": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AddressState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The current state of this address as defined in RFC 4862.",
-                    "longDescription": "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.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "PrefixLength": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PrefixLength"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the IPv6 Address Prefix Length.",
-                    "longDescription": "The value of this property shall be the IPv6 address prefix length for this interface.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "IPv6AddressOrigin": {
-            "enum": [
-                "Static",
-                "DHCPv6",
-                "LinkLocal",
-                "SLAAC"
-            ],
-            "enumDescriptions": {
-                "DHCPv6": "Address is provided by a DHCPv6 service.",
-                "LinkLocal": "Address is valid only for this network segment (link).",
-                "SLAAC": "Address is provided by a Stateless Address AutoConfiguration (SLAAC) service.",
-                "Static": "A static address as configured by the user."
-            },
-            "type": "string"
-        },
-        "IPv6StaticAddress": {
-            "additionalProperties": false,
-            "description": "This object represents a single IPv6 static address to be assigned on a network interface.",
-            "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Address": {
-                    "description": "A valid IPv6 address.",
-                    "longDescription": "This property provides access to a static IPv6 address that is currently assigned on a network interface.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "PrefixLength": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PrefixLength"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Prefix Length of this IPv6 address.",
-                    "longDescription": "Provides the IPv6 network prefix length in bits for this address.",
-                    "readonly": false
-                }
-            },
-            "required": [
-                "Address",
-                "PrefixLength"
-            ],
-            "type": "object"
-        },
-        "PrefixLength": {
-            "maximum": 128,
-            "minimum": 1,
-            "type": "number"
-        },
-        "SubnetMask": {
-            "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/IPAddresses",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "IPAddresses Schema File",
+    "Schema": "#IPAddresses.IPAddresses",
+    "Description": "IPAddresses Schema File Location",
+    "Id": "IPAddresses",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json",
+            "Uri": "/redfish/v1/JSONSchemas/IPAddresses/IPAddresses.json"
         }
-    },
-    "title": "#IPAddresses.v1_0_6"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json b/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json
new file mode 100644
index 0000000..4dbbc3b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json
@@ -0,0 +1,182 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#JsonSchemaFile.v1_1_0.JsonSchemaFile",
+    "$ref": "#/definitions/JsonSchemaFile",
+    "definitions": {
+        "Location": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "Language": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "The language code for the file the schema is in.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'."
+                },
+                "Uri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "Link to locally available URI for schema.",
+                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for individual schema files.  The file name portion of the URI shall conform to the format [SchemaType].[MajorVersion].[MinorVersion].json and be in conformance with the Redfish specification."
+                },
+                "ArchiveUri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.",
+                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for archive files (zip or other formats).  The value of ArchiveFile shall have the file name of the individual schema file within the archive file."
+                },
+                "PublicationUri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "Link to publicly available (canonical) URI for schema.",
+                    "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file.  This property shall only be used for individual schema files."
+                },
+                "ArchiveFile": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.",
+                    "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property.  The file name shall conform to the format [SchemaType].[MajorVersion].[MinorVersion].json and be in conformance with the Redfish specification."
+                }
+            },
+            "description": "Location information for a schema file.",
+            "longDescription": "This type shall describe location information for a schema file."
+        },
+        "JsonSchemaFile": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Languages": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    },
+                    "readonly": true,
+                    "description": "Language codes for the schemas available.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code."
+                },
+                "Schema": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "The @odata.type name this schema describes.",
+                    "longDescription": "The value of this property shall be the value of the @odata.type property for that schema and shall conform to the syntax specified in the Redfish specification for the Type property."
+                },
+                "Location": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/Location"
+                    },
+                    "description": "Location information for this schema file."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name",
+                "Languages",
+                "Schema",
+                "Location"
+            ],
+            "description": "This is the schema definition for the Schema File locator resource.",
+            "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/JsonSchemaFile/index.json b/static/redfish/v1/JsonSchemas/JsonSchemaFile/index.json
index 4dbbc3b..edfa703 100644
--- a/static/redfish/v1/JsonSchemas/JsonSchemaFile/index.json
+++ b/static/redfish/v1/JsonSchemas/JsonSchemaFile/index.json
@@ -1,182 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#JsonSchemaFile.v1_1_0.JsonSchemaFile",
-    "$ref": "#/definitions/JsonSchemaFile",
-    "definitions": {
-        "Location": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "Language": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "The language code for the file the schema is in.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'."
-                },
-                "Uri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "Link to locally available URI for schema.",
-                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for individual schema files.  The file name portion of the URI shall conform to the format [SchemaType].[MajorVersion].[MinorVersion].json and be in conformance with the Redfish specification."
-                },
-                "ArchiveUri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.",
-                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for archive files (zip or other formats).  The value of ArchiveFile shall have the file name of the individual schema file within the archive file."
-                },
-                "PublicationUri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "Link to publicly available (canonical) URI for schema.",
-                    "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file.  This property shall only be used for individual schema files."
-                },
-                "ArchiveFile": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.",
-                    "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property.  The file name shall conform to the format [SchemaType].[MajorVersion].[MinorVersion].json and be in conformance with the Redfish specification."
-                }
-            },
-            "description": "Location information for a schema file.",
-            "longDescription": "This type shall describe location information for a schema file."
-        },
-        "JsonSchemaFile": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Languages": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    },
-                    "readonly": true,
-                    "description": "Language codes for the schemas available.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code."
-                },
-                "Schema": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "The @odata.type name this schema describes.",
-                    "longDescription": "The value of this property shall be the value of the @odata.type property for that schema and shall conform to the syntax specified in the Redfish specification for the Type property."
-                },
-                "Location": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/Location"
-                    },
-                    "description": "Location information for this schema file."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name",
-                "Languages",
-                "Schema",
-                "Location"
-            ],
-            "description": "This is the schema definition for the Schema File locator resource.",
-            "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/JsonSchemaFile",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "JsonSchemaFile Schema File",
+    "Schema": "#JsonSchemaFile.JsonSchemaFile",
+    "Description": "JsonSchemaFile Schema File Location",
+    "Id": "JsonSchemaFile",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFile.json",
+            "Uri": "/redfish/v1/JSONSchemas/JsonSchemaFile/JsonSchemaFile.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json b/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json
new file mode 100644
index 0000000..f52304c
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json
@@ -0,0 +1,535 @@
+{
+    "$ref": "#/definitions/LogEntry",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "EventSeverity": {
+            "enum": [
+                "OK",
+                "Warning",
+                "Critical"
+            ],
+            "enumDescriptions": {
+                "Critical": "A critical condition requiring immediate attention.",
+                "OK": "Informational or operating normally.",
+                "Warning": "A condition requiring attention."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "OriginOfCondition": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef",
+                    "description": "This is the URI of the resource that caused the log entry.",
+                    "longDescription": "The value of this property shall be an href that references the resource for which the log is associated.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "LogEntry": {
+            "additionalProperties": false,
+            "description": "This resource defines the record format for a log.  It is designed to be used for SEL logs (from IPMI) as well as Event Logs and OEM-specific log formats.  The EntryType field indicates the type of log and the resource includes several additional properties dependent on the EntryType.",
+            "longDescription": "This resource shall represent the log format for log services in a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Created": {
+                    "description": "The time the log entry was created.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall be the time at which the log entry was created.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EntryCode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LogEntryCode"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "If the EntryType is SEL, this will have the entry code for the log entry.",
+                    "longDescription": "This property shall be present if the EntryType value is SEL.  These enumerations are the values from table 42-1 and 42-2 of the IPMI specification.",
+                    "readonly": true
+                },
+                "EntryType": {
+                    "$ref": "#/definitions/LogEntryType",
+                    "description": "his is the type of log entry.",
+                    "longDescription": "This property shall represent the type of LogEntry.  If the resource represents an IPMI SEL log entry, the value shall be SEL.  If the resource represents an Event log, the value shall be Event.  If the resource represents an OEM log format, the value shall be Oem.",
+                    "readonly": true
+                },
+                "EventId": {
+                    "description": "This is a unique instance identifier of an event.",
+                    "longDescription": "If present, this LogEntry records an Event and the value shall indicate a unique identifier for the event, the format of which is implementation dependent.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventTimestamp": {
+                    "description": "This is time the event occurred.",
+                    "format": "date-time",
+                    "longDescription": "If present, this LogEntry records an Event and the value shall be the time the event occurred.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "EventType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
+                    "description": "This indicates the type of an event recorded in this log.",
+                    "longDescription": "If present, this LogEntry records an Event and the value shall indicate the type of event.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Message": {
+                    "description": "This property decodes from EntryType:  If it is Event then it is a message string.  Otherwise, it is SEL or Oem specific.  In most cases, this will be the actual Log Entry.",
+                    "longDescription": "The value of this property shall be the Message property of the event if the EntryType is Event, the Description if EntryType is SEL and OEM Specific if the EntryType is OEM.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MessageArgs": {
+                    "description": "The values of this property shall be any arguments for the message.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "This contains message arguments to be substituted into the message included or in the message looked up via a registry.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MessageId": {
+                    "description": "This property decodes from EntryType:  If it is Event then it is a message id.  Otherwise, it is SEL or Oem specific.  This value is only used for registries - for more information, see the specification.",
+                    "longDescription": "The value of this property shall the MessageId property of the event if the EntryType is Event, the EventData if EntryType is SEL and OEM Specific if the EntryType is OEM.  The format of this property shall be as defined in the Redfish specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OemLogEntryCode": {
+                    "description": "If the LogEntryCode type is OEM, this will contain the OEM-specific entry code.",
+                    "longDescription": "The value of this property shall represent the OEM specific Log Entry Code type of the Entry.  This property shall only be present if the value of EntryType is SEL and the value of LogEntryCode is OEM.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "OemRecordFormat": {
+                    "description": "If the entry type is Oem, this will contain more information about the record format from the Oem.",
+                    "longDescription": "The value of this property shall represent the OEM specific format of the Entry.  This property shall be required if the value of EntryType is Oem.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "OemSensorType": {
+                    "description": "If the Sensor Type is OEM, this will contain the OEM-specific sensor type.",
+                    "longDescription": "The value of this property shall represent the OEM specific sensor type of the Entry.  This property shall only be used if the value of EntryType is SEL and the value of SensorType is OEM.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SensorNumber": {
+                    "description": "This property decodes from EntryType:  If it is SEL, it is the sensor number; if Event then the count of events.  Otherwise, it is Oem specific.",
+                    "longDescription": "The value of this property shall be the EntityInstance from IPMI spec if EntryType is SEL, the count of events if EntryType is Event and OEM Specific if the EntryType is OEM.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "SensorType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SensorType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "If the EntryType is SEL, this will have the sensor type that the log entry pertains to.",
+                    "longDescription": "This property shall be present if the EntryType value is SEL.",
+                    "readonly": true
+                },
+                "Severity": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/EventSeverity"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the severity of the log entry.",
+                    "longDescription": "The value of this property shall be the severity of the condition resulting in the log entry, as defined in the Status section of the Redfish specificaiton.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "EntryType",
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "EntryType"
+            ],
+            "type": "object"
+        },
+        "LogEntryCode": {
+            "enum": [
+                "Assert",
+                "Deassert",
+                "Lower Non-critical - going low",
+                "Lower Non-critical - going high",
+                "Lower Critical - going low",
+                "Lower Critical - going high",
+                "Lower Non-recoverable - going low",
+                "Lower Non-recoverable - going high",
+                "Upper Non-critical - going low",
+                "Upper Non-critical - going high",
+                "Upper Critical - going low",
+                "Upper Critical - going high",
+                "Upper Non-recoverable - going low",
+                "Upper Non-recoverable - going high",
+                "Transition to Idle",
+                "Transition to Active",
+                "Transition to Busy",
+                "State Deasserted",
+                "State Asserted",
+                "Predictive Failure deasserted",
+                "Predictive Failure asserted",
+                "Limit Not Exceeded",
+                "Limit Exceeded",
+                "Performance Met",
+                "Performance Lags",
+                "Transition to OK",
+                "Transition to Non-Critical from OK",
+                "Transition to Critical from less severe",
+                "Transition to Non-recoverable from less severe",
+                "Transition to Non-Critical from more severe",
+                "Transition to Critical from Non-recoverable",
+                "Transition to Non-recoverable",
+                "Monitor",
+                "Informational",
+                "Device Removed / Device Absent",
+                "Device Inserted / Device Present",
+                "Device Disabled",
+                "Device Enabled",
+                "Transition to Running",
+                "Transition to In Test",
+                "Transition to Power Off",
+                "Transition to On Line",
+                "Transition to Off Line",
+                "Transition to Off Duty",
+                "Transition to Degraded",
+                "Transition to Power Save",
+                "Install Error",
+                "Fully Redundant",
+                "Redundancy Lost",
+                "Redundancy Degraded",
+                "Non-redundant:Sufficient Resources from Redundant",
+                "Non-redundant:Sufficient Resources from Insufficient Resources",
+                "Non-redundant:Insufficient Resources",
+                "Redundancy Degraded from Fully Redundant",
+                "Redundancy Degraded from Non-redundant",
+                "D0 Power State",
+                "D1 Power State",
+                "D2 Power State",
+                "D3 Power State",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "Assert": "The condition has been asserted.",
+                "D0 Power State": "The ACPI defined D0 Power State.",
+                "D1 Power State": "The ACPI defined D1 Power State.",
+                "D2 Power State": "The ACPI defined D2 Power State.",
+                "D3 Power State": "The ACPI defined D3 Power State.",
+                "Deassert": "The condition has been deasserted.",
+                "Device Disabled": "A device has been disabled.",
+                "Device Enabled": "A device has been enabled.",
+                "Device Inserted / Device Present": "A device has been inserted or is now present.",
+                "Device Removed / Device Absent": "A device has been removed or is now absent.",
+                "Fully Redundant": "Indicates that full redundancy has been regained.",
+                "Informational": "An Informational event.",
+                "Install Error": "An Install Error has been detected.",
+                "Limit Exceeded": "A limit has been exceeded.",
+                "Limit Not Exceeded": "A limit has not been exceeded.",
+                "Lower Critical - going high": "The reading crossed the Lower Critical threshold while going high.",
+                "Lower Critical - going low": "The reading crossed the Lower Critical threshold while going low.",
+                "Lower Non-critical - going high": "The reading crossed the Lower Non-critical threshold while going high.",
+                "Lower Non-critical - going low": "The reading crossed the Lower Non-critical threshold while going low.",
+                "Lower Non-recoverable - going high": "The reading crossed the Lower Non-recoverable threshold while going high.",
+                "Lower Non-recoverable - going low": "The reading crossed the Lower Non-recoverable threshold while going low.",
+                "Monitor": "A Monitor event.",
+                "Non-redundant:Insufficient Resources": "Unit is non-redundant and has insufficient resource to maintain normal operation.",
+                "Non-redundant:Sufficient Resources from Insufficient Resources": "Unit has regianed minimum resources needed for normal operation.",
+                "Non-redundant:Sufficient Resources from Redundant": "Redundancy has been lost but unit is functioning with minimum resources needed for normal operation.",
+                "OEM": "An OEM defined event.",
+                "Performance Lags": "Performance does not meet expectations.",
+                "Performance Met": "Performance meets expectations.",
+                "Predictive Failure asserted": "A Predictive Failure has been detected.",
+                "Predictive Failure deasserted": "A Predictive Failure is no longer present.",
+                "Redundancy Degraded": "Redundancy still exists, but at less than full level.",
+                "Redundancy Degraded from Fully Redundant": "Unit has lost some redundant resource(s) but is still in a redundant state.",
+                "Redundancy Degraded from Non-redundant": "Unit has regained some resource(s) and is redundant but not fully redundant.",
+                "Redundancy Lost": "Entered any non-redundant state, including Non-redundant: Insufficient Resources.",
+                "State Asserted": "The state has been asserted.",
+                "State Deasserted": "The state has been deasserted.",
+                "Transition to Active": "The state transitioned to active.",
+                "Transition to Busy": "The state transitioned to busy.",
+                "Transition to Critical from Non-recoverable": "A state has changed to Critical from Non-recoverable.",
+                "Transition to Critical from less severe": "A state has changed to Critical from less severe.",
+                "Transition to Degraded": "A state has transitioned to Degraded.",
+                "Transition to Idle": "The state transitioned to idle.",
+                "Transition to In Test": "A state has transitioned to In Test.",
+                "Transition to Non-Critical from OK": "A state has changed to Non-Critical from OK.",
+                "Transition to Non-Critical from more severe": "A state has changed to Non-Critical from more severe.",
+                "Transition to Non-recoverable": "A state has changed to Non-recoverable.",
+                "Transition to Non-recoverable from less severe": "A state has changed to Non-recoverable from less severe.",
+                "Transition to OK": "A state has changed to OK.",
+                "Transition to Off Duty": "A state has transitioned to Off Duty.",
+                "Transition to Off Line": "A state has transitioned to Off Line.",
+                "Transition to On Line": "A state has transitioned to On Line.",
+                "Transition to Power Off": "A state has transitioned to Power Off.",
+                "Transition to Power Save": "A state has transitioned to Power Save.",
+                "Transition to Running": "A state has transitioned to Running.",
+                "Upper Critical - going high": "The reading crossed the Upper Critical threshold while going high.",
+                "Upper Critical - going low": "The reading crossed the Upper Critical threshold while going low.",
+                "Upper Non-critical - going high": "The reading crossed the Upper Non-critical threshold while going high.",
+                "Upper Non-critical - going low": "The reading crossed the Upper Non-critical threshold while going low.",
+                "Upper Non-recoverable - going high": "The reading crossed the Upper Non-recoverable threshold while going high.",
+                "Upper Non-recoverable - going low": "The reading crossed the Upper Non-recoverable threshold while going low."
+            },
+            "type": "string"
+        },
+        "LogEntryType": {
+            "enum": [
+                "Event",
+                "SEL",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "Event": "Contains a Redfish-defined message (event).",
+                "Oem": "Contains an entry in an OEM-defined format.",
+                "SEL": "Contains a legacy IPMI System Event Log (SEL) entry."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "SensorType": {
+            "enum": [
+                "Platform Security Violation Attempt",
+                "Temperature",
+                "Voltage",
+                "Current",
+                "Fan",
+                "Physical Chassis Security",
+                "Processor",
+                "Power Supply / Converter",
+                "PowerUnit",
+                "CoolingDevice",
+                "Other Units-based Sensor",
+                "Memory",
+                "Drive Slot/Bay",
+                "POST Memory Resize",
+                "System Firmware Progress",
+                "Event Logging Disabled",
+                "System Event",
+                "Critical Interrupt",
+                "Button/Switch",
+                "Module/Board",
+                "Microcontroller/Coprocessor",
+                "Add-in Card",
+                "Chassis",
+                "ChipSet",
+                "Other FRU",
+                "Cable/Interconnect",
+                "Terminator",
+                "SystemBoot/Restart",
+                "Boot Error",
+                "BaseOSBoot/InstallationStatus",
+                "OS Stop/Shutdown",
+                "Slot/Connector",
+                "System ACPI PowerState",
+                "Watchdog",
+                "Platform Alert",
+                "Entity Presence",
+                "Monitor ASIC/IC",
+                "LAN",
+                "Management Subsystem Health",
+                "Battery",
+                "Session Audit",
+                "Version Change",
+                "FRUState",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "Add-in Card": "A sensor for an add-in card.",
+                "BaseOSBoot/InstallationStatus": "A sensor for a base OS boot or installation status event.",
+                "Battery": "A sensor for a battery.",
+                "Boot Error": "A sensor for a boot error event.",
+                "Button/Switch": "A sensor for a button or switch.",
+                "Cable/Interconnect": "A sensor for a cable or interconnect type of device.",
+                "Chassis": "A sensor for a chassis.",
+                "ChipSet": "A sensor for a chipset.",
+                "CoolingDevice": "A sensor for a cooling device.",
+                "Critical Interrupt": "A sensor for a critical interrupt event.",
+                "Current": "A current sensor.",
+                "Drive Slot/Bay": "A sensor for a drive slot or bay.",
+                "Entity Presence": "A sensor for an entity presence event.",
+                "Event Logging Disabled": "A sensor for the event log.",
+                "FRUState": "A sensor for a FRU state event.",
+                "Fan": "A fan sensor.",
+                "LAN": "A sensor for a LAN device.",
+                "Management Subsystem Health": "A sensor for a management subsystem health event.",
+                "Memory": "A sensor for a memory device.",
+                "Microcontroller/Coprocessor": "A sensor for a microcontroller or coprocessor.",
+                "Module/Board": "A sensor for a module or board.",
+                "Monitor ASIC/IC": "A sensor for a monitor ASIC or IC.",
+                "OEM": "An OEM defined sensor.",
+                "OS Stop/Shutdown": "A sensor for an OS stop or shutdown event",
+                "Other FRU": "A sensor for an other type of FRU.",
+                "Other Units-based Sensor": "A sensor for a miscellaneous analog sensor.",
+                "POST Memory Resize": "A sensor for a POST memory resize event.",
+                "Physical Chassis Security": "A physical security sensor.",
+                "Platform Alert": "A sensor for a platform alert event.",
+                "Platform Security Violation Attempt": "A platform security sensor.",
+                "Power Supply / Converter": "A sensor for a power supply or DC-to-DC converter.",
+                "PowerUnit": "A sensor for a power unit.",
+                "Processor": "A sensor for a processor.",
+                "Session Audit": "A sensor for a session audit event.",
+                "Slot/Connector": "A sensor for a slot or connector.",
+                "System ACPI PowerState": "A sensor for an ACPI power state event.",
+                "System Event": "A sensor for a system event.",
+                "System Firmware Progress": "A sensor for a system firmware progress event.",
+                "SystemBoot/Restart": "A sensor for a system boot or restart event.",
+                "Temperature": "A temperature sensor.",
+                "Terminator": "A sensor for a terminator.",
+                "Version Change": "A sensor for a version change event.",
+                "Voltage": "A voltage sensor.",
+                "Watchdog": "A sensor for a watchdog event."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#LogEntry.v1_3_0.LogEntry"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/LogEntry/index.json b/static/redfish/v1/JsonSchemas/LogEntry/index.json
index f52304c..66d96ca 100644
--- a/static/redfish/v1/JsonSchemas/LogEntry/index.json
+++ b/static/redfish/v1/JsonSchemas/LogEntry/index.json
@@ -1,535 +1,21 @@
 {
-    "$ref": "#/definitions/LogEntry",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "EventSeverity": {
-            "enum": [
-                "OK",
-                "Warning",
-                "Critical"
-            ],
-            "enumDescriptions": {
-                "Critical": "A critical condition requiring immediate attention.",
-                "OK": "Informational or operating normally.",
-                "Warning": "A condition requiring attention."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "OriginOfCondition": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef",
-                    "description": "This is the URI of the resource that caused the log entry.",
-                    "longDescription": "The value of this property shall be an href that references the resource for which the log is associated.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "LogEntry": {
-            "additionalProperties": false,
-            "description": "This resource defines the record format for a log.  It is designed to be used for SEL logs (from IPMI) as well as Event Logs and OEM-specific log formats.  The EntryType field indicates the type of log and the resource includes several additional properties dependent on the EntryType.",
-            "longDescription": "This resource shall represent the log format for log services in a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Created": {
-                    "description": "The time the log entry was created.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall be the time at which the log entry was created.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EntryCode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LogEntryCode"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "If the EntryType is SEL, this will have the entry code for the log entry.",
-                    "longDescription": "This property shall be present if the EntryType value is SEL.  These enumerations are the values from table 42-1 and 42-2 of the IPMI specification.",
-                    "readonly": true
-                },
-                "EntryType": {
-                    "$ref": "#/definitions/LogEntryType",
-                    "description": "his is the type of log entry.",
-                    "longDescription": "This property shall represent the type of LogEntry.  If the resource represents an IPMI SEL log entry, the value shall be SEL.  If the resource represents an Event log, the value shall be Event.  If the resource represents an OEM log format, the value shall be Oem.",
-                    "readonly": true
-                },
-                "EventId": {
-                    "description": "This is a unique instance identifier of an event.",
-                    "longDescription": "If present, this LogEntry records an Event and the value shall indicate a unique identifier for the event, the format of which is implementation dependent.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventTimestamp": {
-                    "description": "This is time the event occurred.",
-                    "format": "date-time",
-                    "longDescription": "If present, this LogEntry records an Event and the value shall be the time the event occurred.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "EventType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType",
-                    "description": "This indicates the type of an event recorded in this log.",
-                    "longDescription": "If present, this LogEntry records an Event and the value shall indicate the type of event.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Message": {
-                    "description": "This property decodes from EntryType:  If it is Event then it is a message string.  Otherwise, it is SEL or Oem specific.  In most cases, this will be the actual Log Entry.",
-                    "longDescription": "The value of this property shall be the Message property of the event if the EntryType is Event, the Description if EntryType is SEL and OEM Specific if the EntryType is OEM.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MessageArgs": {
-                    "description": "The values of this property shall be any arguments for the message.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "This contains message arguments to be substituted into the message included or in the message looked up via a registry.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MessageId": {
-                    "description": "This property decodes from EntryType:  If it is Event then it is a message id.  Otherwise, it is SEL or Oem specific.  This value is only used for registries - for more information, see the specification.",
-                    "longDescription": "The value of this property shall the MessageId property of the event if the EntryType is Event, the EventData if EntryType is SEL and OEM Specific if the EntryType is OEM.  The format of this property shall be as defined in the Redfish specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OemLogEntryCode": {
-                    "description": "If the LogEntryCode type is OEM, this will contain the OEM-specific entry code.",
-                    "longDescription": "The value of this property shall represent the OEM specific Log Entry Code type of the Entry.  This property shall only be present if the value of EntryType is SEL and the value of LogEntryCode is OEM.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "OemRecordFormat": {
-                    "description": "If the entry type is Oem, this will contain more information about the record format from the Oem.",
-                    "longDescription": "The value of this property shall represent the OEM specific format of the Entry.  This property shall be required if the value of EntryType is Oem.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "OemSensorType": {
-                    "description": "If the Sensor Type is OEM, this will contain the OEM-specific sensor type.",
-                    "longDescription": "The value of this property shall represent the OEM specific sensor type of the Entry.  This property shall only be used if the value of EntryType is SEL and the value of SensorType is OEM.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SensorNumber": {
-                    "description": "This property decodes from EntryType:  If it is SEL, it is the sensor number; if Event then the count of events.  Otherwise, it is Oem specific.",
-                    "longDescription": "The value of this property shall be the EntityInstance from IPMI spec if EntryType is SEL, the count of events if EntryType is Event and OEM Specific if the EntryType is OEM.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "SensorType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SensorType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "If the EntryType is SEL, this will have the sensor type that the log entry pertains to.",
-                    "longDescription": "This property shall be present if the EntryType value is SEL.",
-                    "readonly": true
-                },
-                "Severity": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/EventSeverity"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the severity of the log entry.",
-                    "longDescription": "The value of this property shall be the severity of the condition resulting in the log entry, as defined in the Status section of the Redfish specificaiton.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "EntryType",
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "EntryType"
-            ],
-            "type": "object"
-        },
-        "LogEntryCode": {
-            "enum": [
-                "Assert",
-                "Deassert",
-                "Lower Non-critical - going low",
-                "Lower Non-critical - going high",
-                "Lower Critical - going low",
-                "Lower Critical - going high",
-                "Lower Non-recoverable - going low",
-                "Lower Non-recoverable - going high",
-                "Upper Non-critical - going low",
-                "Upper Non-critical - going high",
-                "Upper Critical - going low",
-                "Upper Critical - going high",
-                "Upper Non-recoverable - going low",
-                "Upper Non-recoverable - going high",
-                "Transition to Idle",
-                "Transition to Active",
-                "Transition to Busy",
-                "State Deasserted",
-                "State Asserted",
-                "Predictive Failure deasserted",
-                "Predictive Failure asserted",
-                "Limit Not Exceeded",
-                "Limit Exceeded",
-                "Performance Met",
-                "Performance Lags",
-                "Transition to OK",
-                "Transition to Non-Critical from OK",
-                "Transition to Critical from less severe",
-                "Transition to Non-recoverable from less severe",
-                "Transition to Non-Critical from more severe",
-                "Transition to Critical from Non-recoverable",
-                "Transition to Non-recoverable",
-                "Monitor",
-                "Informational",
-                "Device Removed / Device Absent",
-                "Device Inserted / Device Present",
-                "Device Disabled",
-                "Device Enabled",
-                "Transition to Running",
-                "Transition to In Test",
-                "Transition to Power Off",
-                "Transition to On Line",
-                "Transition to Off Line",
-                "Transition to Off Duty",
-                "Transition to Degraded",
-                "Transition to Power Save",
-                "Install Error",
-                "Fully Redundant",
-                "Redundancy Lost",
-                "Redundancy Degraded",
-                "Non-redundant:Sufficient Resources from Redundant",
-                "Non-redundant:Sufficient Resources from Insufficient Resources",
-                "Non-redundant:Insufficient Resources",
-                "Redundancy Degraded from Fully Redundant",
-                "Redundancy Degraded from Non-redundant",
-                "D0 Power State",
-                "D1 Power State",
-                "D2 Power State",
-                "D3 Power State",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "Assert": "The condition has been asserted.",
-                "D0 Power State": "The ACPI defined D0 Power State.",
-                "D1 Power State": "The ACPI defined D1 Power State.",
-                "D2 Power State": "The ACPI defined D2 Power State.",
-                "D3 Power State": "The ACPI defined D3 Power State.",
-                "Deassert": "The condition has been deasserted.",
-                "Device Disabled": "A device has been disabled.",
-                "Device Enabled": "A device has been enabled.",
-                "Device Inserted / Device Present": "A device has been inserted or is now present.",
-                "Device Removed / Device Absent": "A device has been removed or is now absent.",
-                "Fully Redundant": "Indicates that full redundancy has been regained.",
-                "Informational": "An Informational event.",
-                "Install Error": "An Install Error has been detected.",
-                "Limit Exceeded": "A limit has been exceeded.",
-                "Limit Not Exceeded": "A limit has not been exceeded.",
-                "Lower Critical - going high": "The reading crossed the Lower Critical threshold while going high.",
-                "Lower Critical - going low": "The reading crossed the Lower Critical threshold while going low.",
-                "Lower Non-critical - going high": "The reading crossed the Lower Non-critical threshold while going high.",
-                "Lower Non-critical - going low": "The reading crossed the Lower Non-critical threshold while going low.",
-                "Lower Non-recoverable - going high": "The reading crossed the Lower Non-recoverable threshold while going high.",
-                "Lower Non-recoverable - going low": "The reading crossed the Lower Non-recoverable threshold while going low.",
-                "Monitor": "A Monitor event.",
-                "Non-redundant:Insufficient Resources": "Unit is non-redundant and has insufficient resource to maintain normal operation.",
-                "Non-redundant:Sufficient Resources from Insufficient Resources": "Unit has regianed minimum resources needed for normal operation.",
-                "Non-redundant:Sufficient Resources from Redundant": "Redundancy has been lost but unit is functioning with minimum resources needed for normal operation.",
-                "OEM": "An OEM defined event.",
-                "Performance Lags": "Performance does not meet expectations.",
-                "Performance Met": "Performance meets expectations.",
-                "Predictive Failure asserted": "A Predictive Failure has been detected.",
-                "Predictive Failure deasserted": "A Predictive Failure is no longer present.",
-                "Redundancy Degraded": "Redundancy still exists, but at less than full level.",
-                "Redundancy Degraded from Fully Redundant": "Unit has lost some redundant resource(s) but is still in a redundant state.",
-                "Redundancy Degraded from Non-redundant": "Unit has regained some resource(s) and is redundant but not fully redundant.",
-                "Redundancy Lost": "Entered any non-redundant state, including Non-redundant: Insufficient Resources.",
-                "State Asserted": "The state has been asserted.",
-                "State Deasserted": "The state has been deasserted.",
-                "Transition to Active": "The state transitioned to active.",
-                "Transition to Busy": "The state transitioned to busy.",
-                "Transition to Critical from Non-recoverable": "A state has changed to Critical from Non-recoverable.",
-                "Transition to Critical from less severe": "A state has changed to Critical from less severe.",
-                "Transition to Degraded": "A state has transitioned to Degraded.",
-                "Transition to Idle": "The state transitioned to idle.",
-                "Transition to In Test": "A state has transitioned to In Test.",
-                "Transition to Non-Critical from OK": "A state has changed to Non-Critical from OK.",
-                "Transition to Non-Critical from more severe": "A state has changed to Non-Critical from more severe.",
-                "Transition to Non-recoverable": "A state has changed to Non-recoverable.",
-                "Transition to Non-recoverable from less severe": "A state has changed to Non-recoverable from less severe.",
-                "Transition to OK": "A state has changed to OK.",
-                "Transition to Off Duty": "A state has transitioned to Off Duty.",
-                "Transition to Off Line": "A state has transitioned to Off Line.",
-                "Transition to On Line": "A state has transitioned to On Line.",
-                "Transition to Power Off": "A state has transitioned to Power Off.",
-                "Transition to Power Save": "A state has transitioned to Power Save.",
-                "Transition to Running": "A state has transitioned to Running.",
-                "Upper Critical - going high": "The reading crossed the Upper Critical threshold while going high.",
-                "Upper Critical - going low": "The reading crossed the Upper Critical threshold while going low.",
-                "Upper Non-critical - going high": "The reading crossed the Upper Non-critical threshold while going high.",
-                "Upper Non-critical - going low": "The reading crossed the Upper Non-critical threshold while going low.",
-                "Upper Non-recoverable - going high": "The reading crossed the Upper Non-recoverable threshold while going high.",
-                "Upper Non-recoverable - going low": "The reading crossed the Upper Non-recoverable threshold while going low."
-            },
-            "type": "string"
-        },
-        "LogEntryType": {
-            "enum": [
-                "Event",
-                "SEL",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "Event": "Contains a Redfish-defined message (event).",
-                "Oem": "Contains an entry in an OEM-defined format.",
-                "SEL": "Contains a legacy IPMI System Event Log (SEL) entry."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "SensorType": {
-            "enum": [
-                "Platform Security Violation Attempt",
-                "Temperature",
-                "Voltage",
-                "Current",
-                "Fan",
-                "Physical Chassis Security",
-                "Processor",
-                "Power Supply / Converter",
-                "PowerUnit",
-                "CoolingDevice",
-                "Other Units-based Sensor",
-                "Memory",
-                "Drive Slot/Bay",
-                "POST Memory Resize",
-                "System Firmware Progress",
-                "Event Logging Disabled",
-                "System Event",
-                "Critical Interrupt",
-                "Button/Switch",
-                "Module/Board",
-                "Microcontroller/Coprocessor",
-                "Add-in Card",
-                "Chassis",
-                "ChipSet",
-                "Other FRU",
-                "Cable/Interconnect",
-                "Terminator",
-                "SystemBoot/Restart",
-                "Boot Error",
-                "BaseOSBoot/InstallationStatus",
-                "OS Stop/Shutdown",
-                "Slot/Connector",
-                "System ACPI PowerState",
-                "Watchdog",
-                "Platform Alert",
-                "Entity Presence",
-                "Monitor ASIC/IC",
-                "LAN",
-                "Management Subsystem Health",
-                "Battery",
-                "Session Audit",
-                "Version Change",
-                "FRUState",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "Add-in Card": "A sensor for an add-in card.",
-                "BaseOSBoot/InstallationStatus": "A sensor for a base OS boot or installation status event.",
-                "Battery": "A sensor for a battery.",
-                "Boot Error": "A sensor for a boot error event.",
-                "Button/Switch": "A sensor for a button or switch.",
-                "Cable/Interconnect": "A sensor for a cable or interconnect type of device.",
-                "Chassis": "A sensor for a chassis.",
-                "ChipSet": "A sensor for a chipset.",
-                "CoolingDevice": "A sensor for a cooling device.",
-                "Critical Interrupt": "A sensor for a critical interrupt event.",
-                "Current": "A current sensor.",
-                "Drive Slot/Bay": "A sensor for a drive slot or bay.",
-                "Entity Presence": "A sensor for an entity presence event.",
-                "Event Logging Disabled": "A sensor for the event log.",
-                "FRUState": "A sensor for a FRU state event.",
-                "Fan": "A fan sensor.",
-                "LAN": "A sensor for a LAN device.",
-                "Management Subsystem Health": "A sensor for a management subsystem health event.",
-                "Memory": "A sensor for a memory device.",
-                "Microcontroller/Coprocessor": "A sensor for a microcontroller or coprocessor.",
-                "Module/Board": "A sensor for a module or board.",
-                "Monitor ASIC/IC": "A sensor for a monitor ASIC or IC.",
-                "OEM": "An OEM defined sensor.",
-                "OS Stop/Shutdown": "A sensor for an OS stop or shutdown event",
-                "Other FRU": "A sensor for an other type of FRU.",
-                "Other Units-based Sensor": "A sensor for a miscellaneous analog sensor.",
-                "POST Memory Resize": "A sensor for a POST memory resize event.",
-                "Physical Chassis Security": "A physical security sensor.",
-                "Platform Alert": "A sensor for a platform alert event.",
-                "Platform Security Violation Attempt": "A platform security sensor.",
-                "Power Supply / Converter": "A sensor for a power supply or DC-to-DC converter.",
-                "PowerUnit": "A sensor for a power unit.",
-                "Processor": "A sensor for a processor.",
-                "Session Audit": "A sensor for a session audit event.",
-                "Slot/Connector": "A sensor for a slot or connector.",
-                "System ACPI PowerState": "A sensor for an ACPI power state event.",
-                "System Event": "A sensor for a system event.",
-                "System Firmware Progress": "A sensor for a system firmware progress event.",
-                "SystemBoot/Restart": "A sensor for a system boot or restart event.",
-                "Temperature": "A temperature sensor.",
-                "Terminator": "A sensor for a terminator.",
-                "Version Change": "A sensor for a version change event.",
-                "Voltage": "A voltage sensor.",
-                "Watchdog": "A sensor for a watchdog event."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/LogEntry",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "LogEntry Schema File",
+    "Schema": "#LogEntry.LogEntry",
+    "Description": "LogEntry Schema File Location",
+    "Id": "LogEntry",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/LogEntry.json",
+            "Uri": "/redfish/v1/JSONSchemas/LogEntry/LogEntry.json"
         }
-    },
-    "title": "#LogEntry.v1_3_0.LogEntry"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/LogService/LogService.json b/static/redfish/v1/JsonSchemas/LogService/LogService.json
new file mode 100644
index 0000000..95f9134
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/LogService/LogService.json
@@ -0,0 +1,248 @@
+{
+    "$ref": "#/definitions/LogService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#LogService.ClearLog": {
+                    "$ref": "#/definitions/ClearLog"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "ClearLog": {
+            "additionalProperties": false,
+            "description": "This action is used to clear the log for this Log Service.",
+            "longDescription": "This action shall delete all entries found in the Entries collection for this Log Service.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "LogEntryTypes": {
+            "enum": [
+                "Event",
+                "SEL",
+                "Multiple",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "Event": "The log contains Redfish-defined messages (events).",
+                "Multiple": "The log contains multiple Log Entry types or a single entry type cannot be guaranteed by the Log Service.",
+                "OEM": "The log contains entries in an OEM-defined format.",
+                "SEL": "The log contains legacy IPMI System Event Log (SEL) entries."
+            },
+            "type": "string"
+        },
+        "LogService": {
+            "additionalProperties": false,
+            "description": "This resource represents the log service for the resource or service to which it is associated.",
+            "longDescription": "This resource shall be used to represent a log service for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "DateTime": {
+                    "description": "The current DateTime (with offset) for the log service, used to set or read time.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall represent the current DateTime value that the log service is using, with offset from UTC, in Redfish Timestamp format.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DateTimeLocalOffset": {
+                    "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .",
+                    "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.",
+                    "pattern": "([-+][0-1][0-9]:[0-5][0-9])",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Entries": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogEntryCollection.json#/definitions/LogEntryCollection",
+                    "description": "References to the log entry collection.",
+                    "longDescription": "The value of this property shall reference a collection of resources of type LogEntry.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LogEntryType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LogEntryTypes"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The format of the Entries of this log.",
+                    "longDescription": "The value of this property shall represent the EntryType of all LogEntry resources contained in the Entries collection.  If a single EntryType for all LogEntry resources cannot be determined or guaranteed by the Service, the value of this property shall be 'Multiple'.",
+                    "readonly": true
+                },
+                "MaxNumberOfRecords": {
+                    "description": "The maximum number of log entries this service can have.",
+                    "longDescription": "The value of this property shall be the maximum numbers of LogEntry resources in the Entries collection for this service.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OverWritePolicy": {
+                    "$ref": "#/definitions/OverWritePolicy",
+                    "description": "The overwrite policy for this service that takes place when the log is full.",
+                    "longDescription": "The value of this property shall indicate the policy of the log service when the MaxNumberOfRecords has been reached. Unknown indicates the log overwrite policy is unknown. WrapsWhenFull indicates that the log overwrites its entries with new entries when the log has reached its maximum capacity. NeverOverwrites indicates that the log never overwrites its entries by the new entries and ceases logging when the limit has been reached.",
+                    "readonly": true
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OverWritePolicy": {
+            "enum": [
+                "Unknown",
+                "WrapsWhenFull",
+                "NeverOverWrites"
+            ],
+            "enumDescriptions": {
+                "NeverOverWrites": "When full, new entries to the Log will be discarded.",
+                "Unknown": "The overwrite policy is not known or is undefined.",
+                "WrapsWhenFull": "When full, new entries to the Log will overwrite previous entries."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#LogService.v1_1_0.LogService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/LogService/index.json b/static/redfish/v1/JsonSchemas/LogService/index.json
index 95f9134..93fb5cd 100644
--- a/static/redfish/v1/JsonSchemas/LogService/index.json
+++ b/static/redfish/v1/JsonSchemas/LogService/index.json
@@ -1,248 +1,21 @@
 {
-    "$ref": "#/definitions/LogService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#LogService.ClearLog": {
-                    "$ref": "#/definitions/ClearLog"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "ClearLog": {
-            "additionalProperties": false,
-            "description": "This action is used to clear the log for this Log Service.",
-            "longDescription": "This action shall delete all entries found in the Entries collection for this Log Service.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "LogEntryTypes": {
-            "enum": [
-                "Event",
-                "SEL",
-                "Multiple",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "Event": "The log contains Redfish-defined messages (events).",
-                "Multiple": "The log contains multiple Log Entry types or a single entry type cannot be guaranteed by the Log Service.",
-                "OEM": "The log contains entries in an OEM-defined format.",
-                "SEL": "The log contains legacy IPMI System Event Log (SEL) entries."
-            },
-            "type": "string"
-        },
-        "LogService": {
-            "additionalProperties": false,
-            "description": "This resource represents the log service for the resource or service to which it is associated.",
-            "longDescription": "This resource shall be used to represent a log service for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "DateTime": {
-                    "description": "The current DateTime (with offset) for the log service, used to set or read time.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall represent the current DateTime value that the log service is using, with offset from UTC, in Redfish Timestamp format.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DateTimeLocalOffset": {
-                    "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .",
-                    "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.",
-                    "pattern": "([-+][0-1][0-9]:[0-5][0-9])",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Entries": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogEntryCollection.json#/definitions/LogEntryCollection",
-                    "description": "References to the log entry collection.",
-                    "longDescription": "The value of this property shall reference a collection of resources of type LogEntry.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LogEntryType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LogEntryTypes"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The format of the Entries of this log.",
-                    "longDescription": "The value of this property shall represent the EntryType of all LogEntry resources contained in the Entries collection.  If a single EntryType for all LogEntry resources cannot be determined or guaranteed by the Service, the value of this property shall be 'Multiple'.",
-                    "readonly": true
-                },
-                "MaxNumberOfRecords": {
-                    "description": "The maximum number of log entries this service can have.",
-                    "longDescription": "The value of this property shall be the maximum numbers of LogEntry resources in the Entries collection for this service.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OverWritePolicy": {
-                    "$ref": "#/definitions/OverWritePolicy",
-                    "description": "The overwrite policy for this service that takes place when the log is full.",
-                    "longDescription": "The value of this property shall indicate the policy of the log service when the MaxNumberOfRecords has been reached. Unknown indicates the log overwrite policy is unknown. WrapsWhenFull indicates that the log overwrites its entries with new entries when the log has reached its maximum capacity. NeverOverwrites indicates that the log never overwrites its entries by the new entries and ceases logging when the limit has been reached.",
-                    "readonly": true
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OverWritePolicy": {
-            "enum": [
-                "Unknown",
-                "WrapsWhenFull",
-                "NeverOverWrites"
-            ],
-            "enumDescriptions": {
-                "NeverOverWrites": "When full, new entries to the Log will be discarded.",
-                "Unknown": "The overwrite policy is not known or is undefined.",
-                "WrapsWhenFull": "When full, new entries to the Log will overwrite previous entries."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/LogService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "LogService Schema File",
+    "Schema": "#LogService.LogService",
+    "Description": "LogService Schema File Location",
+    "Id": "LogService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/LogService.json",
+            "Uri": "/redfish/v1/JSONSchemas/LogService/LogService.json"
         }
-    },
-    "title": "#LogService.v1_1_0.LogService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Manager/Manager.json b/static/redfish/v1/JsonSchemas/Manager/Manager.json
new file mode 100644
index 0000000..2f64224
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Manager/Manager.json
@@ -0,0 +1,699 @@
+{
+    "$ref": "#/definitions/Manager",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Manager.ForceFailover": {
+                    "$ref": "#/definitions/ForceFailover"
+                },
+                "#Manager.ModifyRedundancySet": {
+                    "$ref": "#/definitions/ModifyRedundancySet"
+                },
+                "#Manager.Reset": {
+                    "$ref": "#/definitions/Reset"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "CommandConnectTypesSupported": {
+            "enum": [
+                "SSH",
+                "Telnet",
+                "IPMI",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "IPMI": "The controller supports a Command Shell connection using the IPMI Serial-over-LAN (SOL) protocol.",
+                "Oem": "The controller supports a Command Shell connection using an OEM-specific protocol.",
+                "SSH": "The controller supports a Command Shell connection using the SSH protocol.",
+                "Telnet": "The controller supports a Command Shell connection using the Telnet protocol."
+            },
+            "type": "string"
+        },
+        "CommandShell": {
+            "additionalProperties": false,
+            "description": "Information about a Command Shell service provided by a manager.",
+            "longDescription": "This type shall describe a Command Shell service of a manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ConnectTypesSupported": {
+                    "description": "This object is used to enumerate the Command Shell connection types allowed by the implementation.",
+                    "items": {
+                        "$ref": "#/definitions/CommandConnectTypesSupported"
+                    },
+                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MaxConcurrentSessions": {
+                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
+                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "ServiceEnabled": {
+                    "description": "Indicates if the service is enabled for this manager.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
+                    "readonly": false,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "ForceFailover": {
+            "additionalProperties": false,
+            "description": "The ForceFailover action forces a failover of this manager to the manager used in the parameter.",
+            "longDescription": "This action shall perform a forced failover of the manager's redundancy to the manager supplied as a parameter.",
+            "parameters": {
+                "NewManager": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager",
+                    "description": "This parameter specifies the Manager in which to fail over.  In this case, a valid reference is supported.",
+                    "longDescription": "This parameter shall contain a resource reference of the Manager in which to fail over.",
+                    "requiredParameter": true
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "GraphicalConnectTypesSupported": {
+            "enum": [
+                "KVMIP",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "KVMIP": "The controller supports a Graphical Console connection using a KVM-IP (redirection of Keyboard, Video, Mouse over IP) protocol.",
+                "Oem": "The controller supports a Graphical Console connection using an OEM-specific protocol."
+            },
+            "type": "string"
+        },
+        "GraphicalConsole": {
+            "additionalProperties": false,
+            "description": "Information about a Graphical Console service provided by a manager.",
+            "longDescription": "This type shall describe a Graphical Console service of a manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ConnectTypesSupported": {
+                    "description": "This object is used to enumerate the Graphical Console connection types allowed by the implementation.",
+                    "items": {
+                        "$ref": "#/definitions/GraphicalConnectTypesSupported"
+                    },
+                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  RDP shall be included if the Remote Desktop (RDP) protocol is supported.  KVMIP shall be included if a vendor-define KVM-IP protocol is supported.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MaxConcurrentSessions": {
+                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
+                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "ServiceEnabled": {
+                    "description": "Indicates if the service is enabled for this manager.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
+                    "readonly": false,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ManagerForChassis": {
+                    "description": "This property is an array of references to the chassis that this manager has control over.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "This property shall contain an array of references to Chassis resources of which this Manager instance has control.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagerForChassis@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ManagerForServers": {
+                    "description": "This property is an array of references to the systems that this manager has control over.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "This property shall contain an array of references to ComputerSystem resources of which this Manager instance has control.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagerForServers@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ManagerForSwitches": {
+                    "description": "This property is an array of references to the switches that this manager has control over.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
+                    },
+                    "longDescription": "This property shall contain an array of references to Switch resources of which this Manager instance has control.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagerForSwitches@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ManagerInChassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "This property is a reference to the chassis that this manager is located in.",
+                    "longDescription": "This property shall contain a reference to the chassis that this manager is located in.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "Manager": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for a Manager.  Examples of managers are BMCs, Enclosure Managers, Management Controllers and other subsystems assigned managability functions.",
+            "longDescription": "This resource shall be used to represent a management subsystem for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AutoDSTEnabled": {
+                    "description": "Indicates whether the manager is configured for automatic DST adjustment.",
+                    "longDescription": "The value of this property shall contain the enabled status of the automatic Daylight Saving Time (DST) adjustment of the manager's DateTime.  It shall be true if Automatic DST adjustment is enabled and false if disabled.",
+                    "readonly": false,
+                    "type": "boolean"
+                },
+                "CommandShell": {
+                    "$ref": "#/definitions/CommandShell",
+                    "description": "Information about the Command Shell service provided by this manager.",
+                    "longDescription": "The value of this property shall contain information about the Command Shell service of this manager."
+                },
+                "DateTime": {
+                    "description": "The current DateTime (with offset) for the manager, used to set or read time.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall represent the current DateTime value for the manager, with offset from UTC, in Redfish Timestamp format.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DateTimeLocalOffset": {
+                    "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .",
+                    "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.",
+                    "pattern": "([-+][0-1][0-9]:[0-5][0-9])",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EthernetInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
+                    "description": "This is a reference to a collection of NICs that this manager uses for network communication.  It is here that clients will find NIC configuration options and settings.",
+                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.",
+                    "readonly": true
+                },
+                "FirmwareVersion": {
+                    "description": "The firmware version of this Manager.",
+                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated manager.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "GraphicalConsole": {
+                    "$ref": "#/definitions/GraphicalConsole",
+                    "description": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager.",
+                    "longDescription": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager."
+                },
+                "HostInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterfaceCollection.json#/definitions/HostInterfaceCollection",
+                    "description": "This is a reference to a collection of Host Interfaces that this manager uses for local host communication.  It is here that clients will find Host Interface configuration options and settings.",
+                    "longDescription": "The value of this property shall be a link to a collection of type HostInterfaceCollection.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "LogServices": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
+                    "description": "This is a reference to a collection of Logs used by the manager.",
+                    "longDescription": "The value of this property shall contain a reference to a collection of type LogServiceCollection which are for the use of this manager.",
+                    "readonly": true
+                },
+                "ManagerType": {
+                    "$ref": "#/definitions/ManagerType",
+                    "description": "This property represents the type of manager that this resource represents.",
+                    "longDescription": "The value of this property shall describe the function of this manager.  The value EnclosureManager shall be used if this manager controls one or more services through aggregation.  The value BMC shall be used if this manager represents a traditional server management controller. The value ManagementController shall be used if none of the other enumerations apply.",
+                    "readonly": true
+                },
+                "Model": {
+                    "description": "The model information of this Manager as defined by the manufacturer.",
+                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this manager.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkProtocol": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
+                    "description": "This is a reference to the network services and their settings that the manager controls.  It is here that clients will find network configuration options as well as network services.",
+                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this manager.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PowerState": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the current power state of the Manager.",
+                    "longDescription": "The value of this property shall contain the power state of the Manager.",
+                    "readonly": true
+                },
+                "Redundancy": {
+                    "description": "Redundancy information for the managers of this system.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "SerialConsole": {
+                    "$ref": "#/definitions/SerialConsole",
+                    "description": "Information about the Serial Console service provided by this manager.",
+                    "longDescription": "The value of this property shall contain information about the Serial Console service of this manager."
+                },
+                "SerialInterfaces": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SerialInterfaceCollection.json#/definitions/SerialInterfaceCollection",
+                    "description": "This is a reference to a collection of serial interfaces that this manager uses for serial and console communication.  It is here that clients will find serial configuration options and settings.",
+                    "longDescription": "The value of this property shall be a link to a collection of type SerialInterfaceCollection which are for the use of this manager.",
+                    "readonly": true
+                },
+                "ServiceEntryPointUUID": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The UUID of the Redfish Service provided by this manager.",
+                    "longDescription": "This property shall contain the UUID of the Redfish Service provided by this manager.  Each Manager providing an Entry Point to the same Redfish Service shall report the same UUID value (even though the name of the property may imply otherwise).  This property shall not be present if this manager does not provide a Redfish Service Entry Point.",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "UUID": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Universal Unique Identifier (UUID) for this Manager.",
+                    "longDescription": "The value of this property shall contain the universal unique identifier number for the manager.",
+                    "readonly": true
+                },
+                "VirtualMedia": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/VirtualMediaCollection.json#/definitions/VirtualMediaCollection",
+                    "description": "This is a reference to the Virtual Media services for this particular manager.",
+                    "longDescription": "The value of this property shall contain a reference to a collection of type VirtualMediaCollection which are for the use of this manager.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ManagerService": {
+            "additionalProperties": false,
+            "description": "Used for describing services like Serial Console, Command Shell or Graphical Console.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MaxConcurrentSessions": {
+                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
+                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "ServiceEnabled": {
+                    "description": "Indicates if the service is enabled for this manager.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
+                    "readonly": false,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "ManagerType": {
+            "enum": [
+                "ManagementController",
+                "EnclosureManager",
+                "BMC",
+                "RackManager",
+                "AuxiliaryController",
+                "Service"
+            ],
+            "enumDescriptions": {
+                "AuxiliaryController": "A controller which provides management functions for a particular subsystem or group of devices.",
+                "BMC": "A controller which provides management functions for a single computer system.",
+                "EnclosureManager": "A controller which provides management functions for a chassis or group of devices or systems.",
+                "ManagementController": "A controller used primarily to monitor or manage the operation of a device or system.",
+                "RackManager": "A controller which provides management functions for a whole or part of a rack.",
+                "Service": "A software-based service which provides management functions."
+            },
+            "type": "string"
+        },
+        "ModifyRedundancySet": {
+            "additionalProperties": false,
+            "description": "The ModifyRedundancySet operation is used to add or remove members to a redundant group of manager.",
+            "longDescription": "The ModifyRedundancySet operation shall be used to add or remove members to a redundant group of manager.",
+            "parameters": {
+                "Add": {
+                    "description": "This array defines the Managers to add to the redundancy set.  In this case, a valid reference is supported.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "This parameter shall contain an array of resource references of the Managers to add to the redundancy set.",
+                    "type": "array"
+                },
+                "Remove": {
+                    "description": "This array defines the Managers to remove from the redundancy set.  In this case, a valid reference is supported.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "This parameter shall contain an array of resource references of the Managers to remove from the redundancy set.",
+                    "type": "array"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Reset": {
+            "additionalProperties": false,
+            "description": "The reset action resets/reboots the manager.",
+            "longDescription": "This action shall perform a reset of the manager.",
+            "parameters": {
+                "ResetType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
+                    "description": "This is the type of reset to be performed.",
+                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "SerialConnectTypesSupported": {
+            "enum": [
+                "SSH",
+                "Telnet",
+                "IPMI",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "IPMI": "The controller supports a Serial Console connection using the IPMI Serial-over-LAN (SOL) protocol.",
+                "Oem": "The controller supports a Serial Console connection using an OEM-specific protocol.",
+                "SSH": "The controller supports a Serial Console connection using the SSH protocol.",
+                "Telnet": "The controller supports a Serial Console connection using the Telnet protocol."
+            },
+            "type": "string"
+        },
+        "SerialConsole": {
+            "additionalProperties": false,
+            "description": "Information about a Serial Console service provided by a manager.",
+            "longDescription": "This type shall describe a Serial Console service of a manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ConnectTypesSupported": {
+                    "description": "This object is used to enumerate the Serial Console connection types allowed by the implementation.",
+                    "items": {
+                        "$ref": "#/definitions/SerialConnectTypesSupported"
+                    },
+                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MaxConcurrentSessions": {
+                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
+                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "ServiceEnabled": {
+                    "description": "Indicates if the service is enabled for this manager.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
+                    "readonly": false,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Manager.v1_4_0.Manager"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Manager/index.json b/static/redfish/v1/JsonSchemas/Manager/index.json
index 2f64224..9512366 100644
--- a/static/redfish/v1/JsonSchemas/Manager/index.json
+++ b/static/redfish/v1/JsonSchemas/Manager/index.json
@@ -1,699 +1,21 @@
 {
-    "$ref": "#/definitions/Manager",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Manager.ForceFailover": {
-                    "$ref": "#/definitions/ForceFailover"
-                },
-                "#Manager.ModifyRedundancySet": {
-                    "$ref": "#/definitions/ModifyRedundancySet"
-                },
-                "#Manager.Reset": {
-                    "$ref": "#/definitions/Reset"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "CommandConnectTypesSupported": {
-            "enum": [
-                "SSH",
-                "Telnet",
-                "IPMI",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "IPMI": "The controller supports a Command Shell connection using the IPMI Serial-over-LAN (SOL) protocol.",
-                "Oem": "The controller supports a Command Shell connection using an OEM-specific protocol.",
-                "SSH": "The controller supports a Command Shell connection using the SSH protocol.",
-                "Telnet": "The controller supports a Command Shell connection using the Telnet protocol."
-            },
-            "type": "string"
-        },
-        "CommandShell": {
-            "additionalProperties": false,
-            "description": "Information about a Command Shell service provided by a manager.",
-            "longDescription": "This type shall describe a Command Shell service of a manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ConnectTypesSupported": {
-                    "description": "This object is used to enumerate the Command Shell connection types allowed by the implementation.",
-                    "items": {
-                        "$ref": "#/definitions/CommandConnectTypesSupported"
-                    },
-                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MaxConcurrentSessions": {
-                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
-                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "ServiceEnabled": {
-                    "description": "Indicates if the service is enabled for this manager.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
-                    "readonly": false,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
-        },
-        "ForceFailover": {
-            "additionalProperties": false,
-            "description": "The ForceFailover action forces a failover of this manager to the manager used in the parameter.",
-            "longDescription": "This action shall perform a forced failover of the manager's redundancy to the manager supplied as a parameter.",
-            "parameters": {
-                "NewManager": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager",
-                    "description": "This parameter specifies the Manager in which to fail over.  In this case, a valid reference is supported.",
-                    "longDescription": "This parameter shall contain a resource reference of the Manager in which to fail over.",
-                    "requiredParameter": true
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "GraphicalConnectTypesSupported": {
-            "enum": [
-                "KVMIP",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "KVMIP": "The controller supports a Graphical Console connection using a KVM-IP (redirection of Keyboard, Video, Mouse over IP) protocol.",
-                "Oem": "The controller supports a Graphical Console connection using an OEM-specific protocol."
-            },
-            "type": "string"
-        },
-        "GraphicalConsole": {
-            "additionalProperties": false,
-            "description": "Information about a Graphical Console service provided by a manager.",
-            "longDescription": "This type shall describe a Graphical Console service of a manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ConnectTypesSupported": {
-                    "description": "This object is used to enumerate the Graphical Console connection types allowed by the implementation.",
-                    "items": {
-                        "$ref": "#/definitions/GraphicalConnectTypesSupported"
-                    },
-                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  RDP shall be included if the Remote Desktop (RDP) protocol is supported.  KVMIP shall be included if a vendor-define KVM-IP protocol is supported.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MaxConcurrentSessions": {
-                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
-                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "ServiceEnabled": {
-                    "description": "Indicates if the service is enabled for this manager.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
-                    "readonly": false,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ManagerForChassis": {
-                    "description": "This property is an array of references to the chassis that this manager has control over.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "This property shall contain an array of references to Chassis resources of which this Manager instance has control.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagerForChassis@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ManagerForServers": {
-                    "description": "This property is an array of references to the systems that this manager has control over.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "This property shall contain an array of references to ComputerSystem resources of which this Manager instance has control.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagerForServers@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ManagerForSwitches": {
-                    "description": "This property is an array of references to the switches that this manager has control over.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
-                    },
-                    "longDescription": "This property shall contain an array of references to Switch resources of which this Manager instance has control.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagerForSwitches@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ManagerInChassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "This property is a reference to the chassis that this manager is located in.",
-                    "longDescription": "This property shall contain a reference to the chassis that this manager is located in.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "Manager": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for a Manager.  Examples of managers are BMCs, Enclosure Managers, Management Controllers and other subsystems assigned managability functions.",
-            "longDescription": "This resource shall be used to represent a management subsystem for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AutoDSTEnabled": {
-                    "description": "Indicates whether the manager is configured for automatic DST adjustment.",
-                    "longDescription": "The value of this property shall contain the enabled status of the automatic Daylight Saving Time (DST) adjustment of the manager's DateTime.  It shall be true if Automatic DST adjustment is enabled and false if disabled.",
-                    "readonly": false,
-                    "type": "boolean"
-                },
-                "CommandShell": {
-                    "$ref": "#/definitions/CommandShell",
-                    "description": "Information about the Command Shell service provided by this manager.",
-                    "longDescription": "The value of this property shall contain information about the Command Shell service of this manager."
-                },
-                "DateTime": {
-                    "description": "The current DateTime (with offset) for the manager, used to set or read time.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall represent the current DateTime value for the manager, with offset from UTC, in Redfish Timestamp format.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DateTimeLocalOffset": {
-                    "description": "The time offset from UTC that the DateTime property is set to in format: +06:00 .",
-                    "longDescription": "The value is property shall represent the offset from UTC time that the current value of DataTime property contains.",
-                    "pattern": "([-+][0-1][0-9]:[0-5][0-9])",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EthernetInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
-                    "description": "This is a reference to a collection of NICs that this manager uses for network communication.  It is here that clients will find NIC configuration options and settings.",
-                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection.",
-                    "readonly": true
-                },
-                "FirmwareVersion": {
-                    "description": "The firmware version of this Manager.",
-                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated manager.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "GraphicalConsole": {
-                    "$ref": "#/definitions/GraphicalConsole",
-                    "description": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager.",
-                    "longDescription": "The value of this property shall contain the information about the Graphical Console (KVM-IP) service of this manager."
-                },
-                "HostInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/HostInterfaceCollection.json#/definitions/HostInterfaceCollection",
-                    "description": "This is a reference to a collection of Host Interfaces that this manager uses for local host communication.  It is here that clients will find Host Interface configuration options and settings.",
-                    "longDescription": "The value of this property shall be a link to a collection of type HostInterfaceCollection.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "LogServices": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
-                    "description": "This is a reference to a collection of Logs used by the manager.",
-                    "longDescription": "The value of this property shall contain a reference to a collection of type LogServiceCollection which are for the use of this manager.",
-                    "readonly": true
-                },
-                "ManagerType": {
-                    "$ref": "#/definitions/ManagerType",
-                    "description": "This property represents the type of manager that this resource represents.",
-                    "longDescription": "The value of this property shall describe the function of this manager.  The value EnclosureManager shall be used if this manager controls one or more services through aggregation.  The value BMC shall be used if this manager represents a traditional server management controller. The value ManagementController shall be used if none of the other enumerations apply.",
-                    "readonly": true
-                },
-                "Model": {
-                    "description": "The model information of this Manager as defined by the manufacturer.",
-                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this manager.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkProtocol": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
-                    "description": "This is a reference to the network services and their settings that the manager controls.  It is here that clients will find network configuration options as well as network services.",
-                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this manager.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PowerState": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the current power state of the Manager.",
-                    "longDescription": "The value of this property shall contain the power state of the Manager.",
-                    "readonly": true
-                },
-                "Redundancy": {
-                    "description": "Redundancy information for the managers of this system.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "SerialConsole": {
-                    "$ref": "#/definitions/SerialConsole",
-                    "description": "Information about the Serial Console service provided by this manager.",
-                    "longDescription": "The value of this property shall contain information about the Serial Console service of this manager."
-                },
-                "SerialInterfaces": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SerialInterfaceCollection.json#/definitions/SerialInterfaceCollection",
-                    "description": "This is a reference to a collection of serial interfaces that this manager uses for serial and console communication.  It is here that clients will find serial configuration options and settings.",
-                    "longDescription": "The value of this property shall be a link to a collection of type SerialInterfaceCollection which are for the use of this manager.",
-                    "readonly": true
-                },
-                "ServiceEntryPointUUID": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The UUID of the Redfish Service provided by this manager.",
-                    "longDescription": "This property shall contain the UUID of the Redfish Service provided by this manager.  Each Manager providing an Entry Point to the same Redfish Service shall report the same UUID value (even though the name of the property may imply otherwise).  This property shall not be present if this manager does not provide a Redfish Service Entry Point.",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "UUID": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Universal Unique Identifier (UUID) for this Manager.",
-                    "longDescription": "The value of this property shall contain the universal unique identifier number for the manager.",
-                    "readonly": true
-                },
-                "VirtualMedia": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/VirtualMediaCollection.json#/definitions/VirtualMediaCollection",
-                    "description": "This is a reference to the Virtual Media services for this particular manager.",
-                    "longDescription": "The value of this property shall contain a reference to a collection of type VirtualMediaCollection which are for the use of this manager.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ManagerService": {
-            "additionalProperties": false,
-            "description": "Used for describing services like Serial Console, Command Shell or Graphical Console.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MaxConcurrentSessions": {
-                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
-                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "ServiceEnabled": {
-                    "description": "Indicates if the service is enabled for this manager.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
-                    "readonly": false,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
-        },
-        "ManagerType": {
-            "enum": [
-                "ManagementController",
-                "EnclosureManager",
-                "BMC",
-                "RackManager",
-                "AuxiliaryController",
-                "Service"
-            ],
-            "enumDescriptions": {
-                "AuxiliaryController": "A controller which provides management functions for a particular subsystem or group of devices.",
-                "BMC": "A controller which provides management functions for a single computer system.",
-                "EnclosureManager": "A controller which provides management functions for a chassis or group of devices or systems.",
-                "ManagementController": "A controller used primarily to monitor or manage the operation of a device or system.",
-                "RackManager": "A controller which provides management functions for a whole or part of a rack.",
-                "Service": "A software-based service which provides management functions."
-            },
-            "type": "string"
-        },
-        "ModifyRedundancySet": {
-            "additionalProperties": false,
-            "description": "The ModifyRedundancySet operation is used to add or remove members to a redundant group of manager.",
-            "longDescription": "The ModifyRedundancySet operation shall be used to add or remove members to a redundant group of manager.",
-            "parameters": {
-                "Add": {
-                    "description": "This array defines the Managers to add to the redundancy set.  In this case, a valid reference is supported.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "This parameter shall contain an array of resource references of the Managers to add to the redundancy set.",
-                    "type": "array"
-                },
-                "Remove": {
-                    "description": "This array defines the Managers to remove from the redundancy set.  In this case, a valid reference is supported.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "This parameter shall contain an array of resource references of the Managers to remove from the redundancy set.",
-                    "type": "array"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Reset": {
-            "additionalProperties": false,
-            "description": "The reset action resets/reboots the manager.",
-            "longDescription": "This action shall perform a reset of the manager.",
-            "parameters": {
-                "ResetType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
-                    "description": "This is the type of reset to be performed.",
-                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "SerialConnectTypesSupported": {
-            "enum": [
-                "SSH",
-                "Telnet",
-                "IPMI",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "IPMI": "The controller supports a Serial Console connection using the IPMI Serial-over-LAN (SOL) protocol.",
-                "Oem": "The controller supports a Serial Console connection using an OEM-specific protocol.",
-                "SSH": "The controller supports a Serial Console connection using the SSH protocol.",
-                "Telnet": "The controller supports a Serial Console connection using the Telnet protocol."
-            },
-            "type": "string"
-        },
-        "SerialConsole": {
-            "additionalProperties": false,
-            "description": "Information about a Serial Console service provided by a manager.",
-            "longDescription": "This type shall describe a Serial Console service of a manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ConnectTypesSupported": {
-                    "description": "This object is used to enumerate the Serial Console connection types allowed by the implementation.",
-                    "items": {
-                        "$ref": "#/definitions/SerialConnectTypesSupported"
-                    },
-                    "longDescription": "The value of ConnectTypesSupported shall be an array of the enumerations provided here.  SSH shall be included if the Secure Shell (SSH) protocol is supported.  Telnet shall be included if the Telnet protocol is supported.  IPMI shall be included if the IPMI (Serial-over-LAN) protocol is supported.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MaxConcurrentSessions": {
-                    "description": "Indicates the maximum number of service sessions, regardless of protocol, this manager is able to support.",
-                    "longDescription": "The value of this property shall contain the maximum number of concurrent service sessions supported by the implementation.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "ServiceEnabled": {
-                    "description": "Indicates if the service is enabled for this manager.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol used for the service.  The value shall be true if enabled and false if disabled.",
-                    "readonly": false,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Manager",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Manager Schema File",
+    "Schema": "#Manager.Manager",
+    "Description": "Manager Schema File Location",
+    "Id": "Manager",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Manager.json",
+            "Uri": "/redfish/v1/JSONSchemas/Manager/Manager.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Manager.v1_4_0.Manager"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json b/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json
new file mode 100644
index 0000000..1227d85
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json
@@ -0,0 +1,194 @@
+{
+    "$ref": "#/definitions/ManagerAccount",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "Role": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
+                    "description": "A reference to the Role object defining Privileges for this account--returned when the resource is read. The ID of the role is the same as property RoleId.",
+                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property RoleId.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "ManagerAccount": {
+            "additionalProperties": false,
+            "description": "The user accounts, owned by a Manager, are defined in this resource.  Changes to a Manager Account may affect the current Redfish service connection if this manager is responsible for the Redfish service.",
+            "longDescription": "This resource shall be used to represent resources that represent the user accounts for the manager.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Enabled": {
+                    "description": "This property is used by a User Administrator to disable an account w/o having to delet the user information.  When set to true, the user can login.  When set to false, the account is administratively disabled and the user cannot login.",
+                    "longDescription": "This property shall enable (if set to true) or disable (if set to false) the account for future logins. The value of Enable over-rides the locked property.",
+                    "readonly": false,
+                    "type": "boolean"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Locked": {
+                    "description": "This property indicates that the account has been auto-locked by the account service because the lockout threshold has been exceeded.  When set to true, the account is locked. A user admin can write the property to false to manually unlock, or the account service will unlock it once the lockout duration period has passed.",
+                    "longDescription": "This property (when set to true) shall indicate that the account service has automatically locked the account due to the accountLockoutThreshold having been exceeded. If set to true, the account is locked.  If set to false, the account is not locked.  A user admin shall be able to write a false to the property to clear the lockout condition, prior to the lockout duration period.",
+                    "readonly": false,
+                    "type": "boolean"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Password": {
+                    "description": "This property is used with a PATCH or PUT to write the password for the account.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the password for this account.  The value shall be null for GET requests.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoleId": {
+                    "description": "This property contains the Role for this account.",
+                    "longDescription": "The value of this property shall be the ID (the RoleId) of the Role resource that configured for this account.  The service shall reject POST, PATCH, or PUT operations that provide a RoleId that does not exist by returning HTTP 400 (Bad Request).",
+                    "readonly": false,
+                    "type": "string"
+                },
+                "UserName": {
+                    "description": "This property contains the user name for the account.",
+                    "longDescription": "The value of this property shall be the user name for this account.",
+                    "readonly": false,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "Password",
+                "UserName",
+                "RoleId"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#ManagerAccount.v1_1_2.ManagerAccount"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ManagerAccount/index.json b/static/redfish/v1/JsonSchemas/ManagerAccount/index.json
index 1227d85..da9cd3d 100644
--- a/static/redfish/v1/JsonSchemas/ManagerAccount/index.json
+++ b/static/redfish/v1/JsonSchemas/ManagerAccount/index.json
@@ -1,194 +1,21 @@
 {
-    "$ref": "#/definitions/ManagerAccount",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "Role": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
-                    "description": "A reference to the Role object defining Privileges for this account--returned when the resource is read. The ID of the role is the same as property RoleId.",
-                    "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property RoleId.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "ManagerAccount": {
-            "additionalProperties": false,
-            "description": "The user accounts, owned by a Manager, are defined in this resource.  Changes to a Manager Account may affect the current Redfish service connection if this manager is responsible for the Redfish service.",
-            "longDescription": "This resource shall be used to represent resources that represent the user accounts for the manager.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Enabled": {
-                    "description": "This property is used by a User Administrator to disable an account w/o having to delet the user information.  When set to true, the user can login.  When set to false, the account is administratively disabled and the user cannot login.",
-                    "longDescription": "This property shall enable (if set to true) or disable (if set to false) the account for future logins. The value of Enable over-rides the locked property.",
-                    "readonly": false,
-                    "type": "boolean"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Locked": {
-                    "description": "This property indicates that the account has been auto-locked by the account service because the lockout threshold has been exceeded.  When set to true, the account is locked. A user admin can write the property to false to manually unlock, or the account service will unlock it once the lockout duration period has passed.",
-                    "longDescription": "This property (when set to true) shall indicate that the account service has automatically locked the account due to the accountLockoutThreshold having been exceeded. If set to true, the account is locked.  If set to false, the account is not locked.  A user admin shall be able to write a false to the property to clear the lockout condition, prior to the lockout duration period.",
-                    "readonly": false,
-                    "type": "boolean"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Password": {
-                    "description": "This property is used with a PATCH or PUT to write the password for the account.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the password for this account.  The value shall be null for GET requests.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoleId": {
-                    "description": "This property contains the Role for this account.",
-                    "longDescription": "The value of this property shall be the ID (the RoleId) of the Role resource that configured for this account.  The service shall reject POST, PATCH, or PUT operations that provide a RoleId that does not exist by returning HTTP 400 (Bad Request).",
-                    "readonly": false,
-                    "type": "string"
-                },
-                "UserName": {
-                    "description": "This property contains the user name for the account.",
-                    "longDescription": "The value of this property shall be the user name for this account.",
-                    "readonly": false,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "Password",
-                "UserName",
-                "RoleId"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ManagerAccount",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ManagerAccount Schema File",
+    "Schema": "#ManagerAccount.ManagerAccount",
+    "Description": "ManagerAccount Schema File Location",
+    "Id": "ManagerAccount",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ManagerAccount.json",
+            "Uri": "/redfish/v1/JSONSchemas/ManagerAccount/ManagerAccount.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#ManagerAccount.v1_1_2.ManagerAccount"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json b/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json
new file mode 100644
index 0000000..4673b0d
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json
@@ -0,0 +1,354 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#ManagerNetworkProtocol.v1_2_0.ManagerNetworkProtocol",
+    "$ref": "#/definitions/ManagerNetworkProtocol",
+    "definitions": {
+        "NotifyIPv6Scope": {
+            "type": "string",
+            "enum": [
+                "Link",
+                "Site",
+                "Organization"
+            ],
+            "enumDescriptions": {
+                "Link": "SSDP Notify messages are sent to addresses in the IPv6 Local Link scope.",
+                "Site": "SSDP Notify messages are sent to addresses in the IPv6 Local Site scope.",
+                "Organization": "SSDP Notify messages are sent to addresses in the IPv6 Local Organization scope."
+            }
+        },
+        "Protocol": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "ProtocolEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Indicates if the protocol is enabled or disabled.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
+                },
+                "Port": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "minimum": 0,
+                    "readonly": false,
+                    "description": "Indicates the protocol port.",
+                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
+                }
+            },
+            "description": "Settings for a network protocol associated with a manager.",
+            "longDescription": "This type shall describe information about a protocol setting for a manager."
+        },
+        "SSDProtocol": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "ProtocolEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Indicates if the protocol is enabled or disabled.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
+                },
+                "Port": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "minimum": 0,
+                    "readonly": false,
+                    "description": "Indicates the protocol port.",
+                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
+                },
+                "NotifyMulticastIntervalSeconds": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "s",
+                    "minimum": 0,
+                    "readonly": false,
+                    "description": "Indicates how often the Multicast is done from this service for SSDP.",
+                    "longDescription": "The value of this property shall contain the time interval, in seconds, between transmissions of the multicast NOTIFY ALIVE message.  A setting of 0 seconds shall disable this functionality.  The recommended value is 600 seconds."
+                },
+                "NotifyTTL": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "minimum": 1,
+                    "readonly": false,
+                    "description": "Indicates the time to live hop count for SSDPs Notify messages.",
+                    "longDescription": "The value of this property shall contain the Time-To-Live hop count used for multicast NOTIFY messages.  The recommended value is 2."
+                },
+                "NotifyIPv6Scope": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/NotifyIPv6Scope"},
+                        {"type": "null"}
+                    ],
+                    "readonly": false,
+                    "description": "Indicates the scope for the IPv6 Notify messages for SSDP.",
+                    "longDescription": "The value of this property shall contain the IPv6 scope used for multicast NOTIFY messages.  The valid enumerations are a subset of the available IPv6 Scope types."
+                }
+            },
+            "description": "Settings for a network protocol associated with a manager.",
+            "longDescription": "This type shall describe information about a protocol setting for a manager."
+        },
+        "ManagerNetworkProtocol": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "HostName": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The DNS Host Name of this manager, without any domain information.",
+                    "longDescription": "The value of this property shall contain the host name without any domain information."
+                },
+                "FQDN": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "This is the fully qualified domain name for the manager obtained by DNS including the host name and top-level domain name.",
+                    "longDescription": "The value of this property shall contain the fully qualified domain name for the manager."
+                },
+                "HTTP": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's HTTP protocol support.",
+                    "longDescription": "This object shall contain information for the HTTP protocol settings for the manager. The default value of the Port property should be 80 for compatibility with established client implementations."
+                },
+                "HTTPS": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's HTTPS protocol support.",
+                    "longDescription": "This object shall contain information for the HTTPS/SSL protocol settings for this manager. The default value of the Port property should be 443 for compatibility with established client implementations."
+                },
+                "SNMP": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's SNMP support.",
+                    "longDescription": "This object shall contain information for the SNMP protocol settings for this manager. The default value of the Port property should be 161 for compatibility with established client implementations."
+                },
+                "VirtualMedia": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's Virtual Media support.",
+                    "longDescription": "This object shall contain information for the Virtual Media protocol settings for this manager. The value of the Port property shall contain the TCP port assigned for Virtual Media usage."
+                },
+                "Telnet": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's Telnet protocol support.",
+                    "longDescription": "This object shall contain information for the Telnet protocol settings for this manager. The default value of the Port property should be 23 for compatibility with established client implementations."
+                },
+                "SSDP": {
+                    "$ref": "#/definitions/SSDProtocol",
+                    "description": "Settings for this Manager's SSDP support.",
+                    "longDescription": "This object shall contain information for the SSDP protocol settings for this manager.  Simple Service Discovery Protocol (SSDP) is for network discovery of devices supporting the Redfish service. The default value of the Port property should be 1900 for compatibility with established client implementations."
+                },
+                "IPMI": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's IPMI-over-LAN protocol support.",
+                    "longDescription": "This object shall contain information for the IPMI over LAN protocol settings for the manager. The default value of the Port property should be 623 for compatibility with established client implementations."
+                },
+                "SSH": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's SSH (Secure Shell) protocol support.",
+                    "longDescription": "This object shall contain information for the SSH protocol settings for the manager. The default value of the Port property should be 22 for compatibility with established client implementations."
+                },
+                "KVMIP": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's KVM-IP protocol support.",
+                    "longDescription": "This object shall contain information for the KVM-IP (Keyboard, Video, Mouse) protocol settings for the manager."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "DHCP": {
+                    "$ref": "#/definitions/Protocol",
+                    "description": "Settings for this Manager's DHCP protocol support.",
+                    "longDescription": "This object shall contain information for the DHCP protocol settings for the manager."
+                },
+                "NTP": {
+                    "$ref": "#/definitions/NTPProtocol",
+                    "description": "Settings for this Manager's NTP protocol support.",
+                    "longDescription": "This object shall contain information for the NTP protocol settings for the manager."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "This resource is used to obtain or modify the network services managed by a given manager.",
+            "longDescription": "This object shall be used to represent the network service settings for the manager."
+        },
+        "NTPProtocol": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "ProtocolEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Indicates if the protocol is enabled or disabled.",
+                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
+                },
+                "Port": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "minimum": 0,
+                    "readonly": false,
+                    "description": "Indicates the protocol port.",
+                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
+                },
+                "NTPServers": {
+                    "type": "array",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "readonly": false,
+                    "description": "Indicates to which NTP servers this manager is subscribed.",
+                    "longDescription": "The value of this property shall contain all the NTP servers for which this manager is using to obtain time."
+                }
+            },
+            "description": "Settings for a network protocol associated with a manager.",
+            "longDescription": "This type shall describe information about a protocol setting for a manager."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/index.json b/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/index.json
index 4673b0d..d4ae105 100644
--- a/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/index.json
+++ b/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/index.json
@@ -1,354 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#ManagerNetworkProtocol.v1_2_0.ManagerNetworkProtocol",
-    "$ref": "#/definitions/ManagerNetworkProtocol",
-    "definitions": {
-        "NotifyIPv6Scope": {
-            "type": "string",
-            "enum": [
-                "Link",
-                "Site",
-                "Organization"
-            ],
-            "enumDescriptions": {
-                "Link": "SSDP Notify messages are sent to addresses in the IPv6 Local Link scope.",
-                "Site": "SSDP Notify messages are sent to addresses in the IPv6 Local Site scope.",
-                "Organization": "SSDP Notify messages are sent to addresses in the IPv6 Local Organization scope."
-            }
-        },
-        "Protocol": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "ProtocolEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Indicates if the protocol is enabled or disabled.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
-                },
-                "Port": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "minimum": 0,
-                    "readonly": false,
-                    "description": "Indicates the protocol port.",
-                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
-                }
-            },
-            "description": "Settings for a network protocol associated with a manager.",
-            "longDescription": "This type shall describe information about a protocol setting for a manager."
-        },
-        "SSDProtocol": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "ProtocolEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Indicates if the protocol is enabled or disabled.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
-                },
-                "Port": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "minimum": 0,
-                    "readonly": false,
-                    "description": "Indicates the protocol port.",
-                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
-                },
-                "NotifyMulticastIntervalSeconds": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "s",
-                    "minimum": 0,
-                    "readonly": false,
-                    "description": "Indicates how often the Multicast is done from this service for SSDP.",
-                    "longDescription": "The value of this property shall contain the time interval, in seconds, between transmissions of the multicast NOTIFY ALIVE message.  A setting of 0 seconds shall disable this functionality.  The recommended value is 600 seconds."
-                },
-                "NotifyTTL": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "minimum": 1,
-                    "readonly": false,
-                    "description": "Indicates the time to live hop count for SSDPs Notify messages.",
-                    "longDescription": "The value of this property shall contain the Time-To-Live hop count used for multicast NOTIFY messages.  The recommended value is 2."
-                },
-                "NotifyIPv6Scope": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/NotifyIPv6Scope"},
-                        {"type": "null"}
-                    ],
-                    "readonly": false,
-                    "description": "Indicates the scope for the IPv6 Notify messages for SSDP.",
-                    "longDescription": "The value of this property shall contain the IPv6 scope used for multicast NOTIFY messages.  The valid enumerations are a subset of the available IPv6 Scope types."
-                }
-            },
-            "description": "Settings for a network protocol associated with a manager.",
-            "longDescription": "This type shall describe information about a protocol setting for a manager."
-        },
-        "ManagerNetworkProtocol": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "HostName": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The DNS Host Name of this manager, without any domain information.",
-                    "longDescription": "The value of this property shall contain the host name without any domain information."
-                },
-                "FQDN": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "This is the fully qualified domain name for the manager obtained by DNS including the host name and top-level domain name.",
-                    "longDescription": "The value of this property shall contain the fully qualified domain name for the manager."
-                },
-                "HTTP": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's HTTP protocol support.",
-                    "longDescription": "This object shall contain information for the HTTP protocol settings for the manager. The default value of the Port property should be 80 for compatibility with established client implementations."
-                },
-                "HTTPS": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's HTTPS protocol support.",
-                    "longDescription": "This object shall contain information for the HTTPS/SSL protocol settings for this manager. The default value of the Port property should be 443 for compatibility with established client implementations."
-                },
-                "SNMP": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's SNMP support.",
-                    "longDescription": "This object shall contain information for the SNMP protocol settings for this manager. The default value of the Port property should be 161 for compatibility with established client implementations."
-                },
-                "VirtualMedia": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's Virtual Media support.",
-                    "longDescription": "This object shall contain information for the Virtual Media protocol settings for this manager. The value of the Port property shall contain the TCP port assigned for Virtual Media usage."
-                },
-                "Telnet": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's Telnet protocol support.",
-                    "longDescription": "This object shall contain information for the Telnet protocol settings for this manager. The default value of the Port property should be 23 for compatibility with established client implementations."
-                },
-                "SSDP": {
-                    "$ref": "#/definitions/SSDProtocol",
-                    "description": "Settings for this Manager's SSDP support.",
-                    "longDescription": "This object shall contain information for the SSDP protocol settings for this manager.  Simple Service Discovery Protocol (SSDP) is for network discovery of devices supporting the Redfish service. The default value of the Port property should be 1900 for compatibility with established client implementations."
-                },
-                "IPMI": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's IPMI-over-LAN protocol support.",
-                    "longDescription": "This object shall contain information for the IPMI over LAN protocol settings for the manager. The default value of the Port property should be 623 for compatibility with established client implementations."
-                },
-                "SSH": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's SSH (Secure Shell) protocol support.",
-                    "longDescription": "This object shall contain information for the SSH protocol settings for the manager. The default value of the Port property should be 22 for compatibility with established client implementations."
-                },
-                "KVMIP": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's KVM-IP protocol support.",
-                    "longDescription": "This object shall contain information for the KVM-IP (Keyboard, Video, Mouse) protocol settings for the manager."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "DHCP": {
-                    "$ref": "#/definitions/Protocol",
-                    "description": "Settings for this Manager's DHCP protocol support.",
-                    "longDescription": "This object shall contain information for the DHCP protocol settings for the manager."
-                },
-                "NTP": {
-                    "$ref": "#/definitions/NTPProtocol",
-                    "description": "Settings for this Manager's NTP protocol support.",
-                    "longDescription": "This object shall contain information for the NTP protocol settings for the manager."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "This resource is used to obtain or modify the network services managed by a given manager.",
-            "longDescription": "This object shall be used to represent the network service settings for the manager."
-        },
-        "NTPProtocol": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "ProtocolEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Indicates if the protocol is enabled or disabled.",
-                    "longDescription": "The value of this property shall contain the enabled status of the protocol.  The value shall be true if enabled and false if disabled."
-                },
-                "Port": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "minimum": 0,
-                    "readonly": false,
-                    "description": "Indicates the protocol port.",
-                    "longDescription": "The value of this property shall contain the port assigned for the protocol."
-                },
-                "NTPServers": {
-                    "type": "array",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "readonly": false,
-                    "description": "Indicates to which NTP servers this manager is subscribed.",
-                    "longDescription": "The value of this property shall contain all the NTP servers for which this manager is using to obtain time."
-                }
-            },
-            "description": "Settings for a network protocol associated with a manager.",
-            "longDescription": "This type shall describe information about a protocol setting for a manager."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ManagerNetworkProtocol",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ManagerNetworkProtocol Schema File",
+    "Schema": "#ManagerNetworkProtocol.ManagerNetworkProtocol",
+    "Description": "ManagerNetworkProtocol Schema File Location",
+    "Id": "ManagerNetworkProtocol",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json",
+            "Uri": "/redfish/v1/JSONSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Memory/Memory.json b/static/redfish/v1/JsonSchemas/Memory/Memory.json
new file mode 100644
index 0000000..6bd6ac2
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Memory/Memory.json
@@ -0,0 +1,1217 @@
+{
+    "$ref": "#/definitions/Memory",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Memory.DisablePassphrase": {
+                    "$ref": "#/definitions/DisablePassphrase"
+                },
+                "#Memory.SecureEraseUnit": {
+                    "$ref": "#/definitions/SecureEraseUnit"
+                },
+                "#Memory.SetPassphrase": {
+                    "$ref": "#/definitions/SetPassphrase"
+                },
+                "#Memory.UnlockUnit": {
+                    "$ref": "#/definitions/UnlockUnit"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "BaseModuleType": {
+            "enum": [
+                "RDIMM",
+                "UDIMM",
+                "SO_DIMM",
+                "LRDIMM",
+                "Mini_RDIMM",
+                "Mini_UDIMM",
+                "SO_RDIMM_72b",
+                "SO_UDIMM_72b",
+                "SO_DIMM_16b",
+                "SO_DIMM_32b"
+            ],
+            "enumDescriptions": {
+                "LRDIMM": "Load Reduced.",
+                "Mini_RDIMM": "Mini_RDIMM.",
+                "Mini_UDIMM": "Mini_UDIMM.",
+                "RDIMM": "Registered DIMM.",
+                "SO_DIMM": "SO_DIMM.",
+                "SO_DIMM_16b": "SO_DIMM_16b.",
+                "SO_DIMM_32b": "SO_DIMM_32b.",
+                "SO_RDIMM_72b": "SO_RDIMM_72b.",
+                "SO_UDIMM_72b": "SO_UDIMM_72b.",
+                "UDIMM": "UDIMM."
+            },
+            "type": "string"
+        },
+        "DisablePassphrase": {
+            "additionalProperties": false,
+            "description": "Disable passphrase for given regions.",
+            "longDescription": "This action shall disaple the need for passphrases on the supplied region provided the supplied passphrase matches that of the region.",
+            "parameters": {
+                "Passphrase": {
+                    "description": "Passphrase for doing the operation.",
+                    "longDescription": "The value of this property shall be the passphrase used in this action.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "RegionId": {
+                    "description": "Memory region ID for which this action to be applied.",
+                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "ErrorCorrection": {
+            "enum": [
+                "NoECC",
+                "SingleBitECC",
+                "MultiBitECC",
+                "AddressParity"
+            ],
+            "enumDescriptions": {
+                "AddressParity": "Address Parity errors can be corrected.",
+                "MultiBitECC": "Multi-bit Data errors can be corrected by ECC.",
+                "NoECC": "No ECC available.",
+                "SingleBitECC": "Single bit Data error can be corrected by ECC."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the Chassis which contains this Memory.",
+                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Memory.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "Memory": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for definition of a Memory and its configuration.",
+            "longDescription": "This resource shall be used to represent the Memory in a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AllocationAlignmentMiB": {
+                    "description": "The boundary which memory regions are allocated on, measured in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be thealignment boundary on which memory regions are allocated, measured in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "AllocationIncrementMiB": {
+                    "description": "The size of the smallest unit of allocation for a memory region in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the allocation increment for regions, measured in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "AllowedSpeedsMHz": {
+                    "description": "Speed bins supported by this Memory.",
+                    "items": {
+                        "type": "number"
+                    },
+                    "longDescription": "The value of this property shall be the speed supported by this Memory.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this memory.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "BaseModuleType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/BaseModuleType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The base module type of Memory.",
+                    "longDescription": "The value of this property shall be the base module type of Memory.",
+                    "readonly": true
+                },
+                "BusWidthBits": {
+                    "description": "Bus Width in bits.",
+                    "longDescription": "The value of this property shall be the bus width in bits.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "CacheSizeMiB": {
+                    "description": "Total size of the cache portion memory in MiB.",
+                    "longDescription": "The value of this property shall be the total size of the cache portion memory in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                },
+                "CapacityMiB": {
+                    "description": "Memory Capacity in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the Memory capacity in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                },
+                "DataWidthBits": {
+                    "description": "Data Width in bits.",
+                    "longDescription": "The value of this property shall be the data width in bits.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DeviceID": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.ModuleProductID",
+                    "description": "Device ID.",
+                    "longDescription": "The value of this property shall be the device ID of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DeviceLocator": {
+                    "description": "Location of the Memory in the platform.",
+                    "longDescription": "The value of this property shall be location of the Memory in the platform, typically marked in the silk screen.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ErrorCorrection": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ErrorCorrection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Error correction scheme supported for this memory.",
+                    "longDescription": "The value of this property shall be the error correction scheme supported for this memory.",
+                    "readonly": true
+                },
+                "FirmwareApiVersion": {
+                    "description": "Version of API supported by the firmware.",
+                    "longDescription": "The value of this property shall be the version of API supported by the firmware.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FirmwareRevision": {
+                    "description": "Revision of firmware on the Memory controller.",
+                    "longDescription": "The value of this property shall be the revision of firmware on the Memory controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FunctionClasses": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_0_0.Memory.OperatingMemoryModes or Memory.v1_0_0.Memory.RegionSet.MemoryClassification.",
+                    "description": "Function Classes by the Memory.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "The value of this property shall be the function classes by the Memory.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "IsRankSpareEnabled": {
+                    "description": "Rank spare enabled status.",
+                    "longDescription": "The value of this property shall be true if a rank spare is enabled for this Memory.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IsSpareDeviceEnabled": {
+                    "description": "Spare device enabled status.",
+                    "longDescription": "The value of this property shall be true if a spare device is enabled for this Memory.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "LogicalSizeMiB": {
+                    "description": "Total size of the logical memory in MiB.",
+                    "longDescription": "The value of this property shall be the total size of the logical memory in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                },
+                "Manufacturer": {
+                    "description": "The Memory manufacturer.",
+                    "longDescription": "This property shall contain a string which identifies the manufacturer of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MaxTDPMilliWatts": {
+                    "description": "Maximum TDPs in milli Watts.",
+                    "items": {
+                        "type": "number"
+                    },
+                    "longDescription": "The value of this property shall be the maximum power budgets supported by the Memory in milli Watts.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MemoryDeviceType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MemoryDeviceType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Type details of the Memory.",
+                    "longDescription": "The value of this property shall be the Memory Device Type as defined by SMBIOS.",
+                    "readonly": true
+                },
+                "MemoryLocation": {
+                    "$ref": "#/definitions/MemoryLocation",
+                    "description": "Memory connection information to sockets and memory controllers.",
+                    "longDescription": "This object shall contain properties which describe the Memory connection information to sockets and memory controllers."
+                },
+                "MemoryMedia": {
+                    "description": "Media of this Memory.",
+                    "items": {
+                        "$ref": "#/definitions/MemoryMedia"
+                    },
+                    "longDescription": "The value of this property shall be the media types of this Memory.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "MemorySubsystemControllerManufacturerID": {
+                    "description": "The manufacturer ID of the memory subsystem controller of this memory module.",
+                    "longDescription": "The value of this property shall be the two byte manufacturer ID of the memory subsystem controller of this memory module as defined by JEDEC in JEP-106.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MemorySubsystemControllerProductID": {
+                    "description": "The product ID of the memory subsystem controller of this memory module.",
+                    "longDescription": "The value of this property shall be the two byte product ID of the memory subsystem controller of this memory module as defined by the manufacturer.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MemoryType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MemoryType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of Memory.",
+                    "longDescription": "The value of this property shall be the type of Memory represented by this resource.",
+                    "readonly": true
+                },
+                "Metrics": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.json#/definitions/MemoryMetrics",
+                    "description": "A reference to the Metrics associated with this Memory.",
+                    "longDescription": "A reference to the Metrics associated with this Memory.",
+                    "readonly": true
+                },
+                "ModuleManufacturerID": {
+                    "description": "The manufacturer ID of this memory module.",
+                    "longDescription": "The value of this property shall be the two byte manufacturer ID of this memory module as defined by JEDEC in JEP-106.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ModuleProductID": {
+                    "description": "The product ID of this memory module.",
+                    "longDescription": "The value of this property shall be the two byte product ID of this memory module as defined by the manufacturer.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NonVolatileSizeMiB": {
+                    "description": "Total size of the non-volatile portion memory in MiB.",
+                    "longDescription": "The value of this property shall be the total size of the non-volatile portion memory in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OperatingMemoryModes": {
+                    "description": "Memory modes supported by the Memory.",
+                    "items": {
+                        "$ref": "#/definitions/OperatingMemoryModes"
+                    },
+                    "longDescription": "The value of this property shall be the memory modes supported by the Memory.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "OperatingSpeedMhz": {
+                    "description": "Operating speed of Memory in MHz or MT/s as appropriate.",
+                    "longDescription": "The value of this property shall be the operating speed of Memory in MHz or MT/s (mega-transfers per second) as reported by the memory device. Memory devices which operate at their bus speed shall report the operating speed in MHz (bus speed), while memory device which transfer data faster than their bus speed (e.g. DDR memory) shall report the operating speed in MT/s (mega-transfers/second). In any case, the reported value shall match the conventionally reported values for the technology utilized by the memory device.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PartNumber": {
+                    "description": "The product part number of this device.",
+                    "longDescription": "This property shall indicate the part number as provided by the manufacturer of this Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PersistentRegionNumberLimit": {
+                    "description": "Total number of persistent regions this Memory can support.",
+                    "longDescription": "The value of this property shall be the total number of persistent regions this Memory can support.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PersistentRegionSizeLimitMiB": {
+                    "description": "Total size of persistent regions in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the total size of persistent regions in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PersistentRegionSizeMaxMiB": {
+                    "description": "Maximum size of a single persistent region in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the maximum size of a single persistent regions in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PowerManagementPolicy": {
+                    "$ref": "#/definitions/PowerManagementPolicy",
+                    "description": "Power management policy information.",
+                    "longDescription": "This object shall contain properties which describe the power management policy for the current resource."
+                },
+                "RankCount": {
+                    "description": "Number of ranks available in the Memory.",
+                    "longDescription": "The value of this property shall be number of ranks available in the Memory. The ranks could be used for spare or interleave.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Regions": {
+                    "description": "Memory regions information within the Memory.",
+                    "items": {
+                        "$ref": "#/definitions/RegionSet"
+                    },
+                    "longDescription": "The value of this property shall be the memory region information within the Memory.",
+                    "type": "array"
+                },
+                "SecurityCapabilities": {
+                    "$ref": "#/definitions/SecurityCapabilities",
+                    "description": "This object contains security capabilities of the Memory.",
+                    "longDescription": "This object shall contain properties which describe the security capabilities of the Memory."
+                },
+                "SerialNumber": {
+                    "description": "The product serial number of this device.",
+                    "longDescription": "This property shall indicate the serial number as provided by the manufacturer of this Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SpareDeviceCount": {
+                    "description": "Number of unused spare devices available in the Memory.",
+                    "longDescription": "The value of this property shall be the number of unused spare devices available in the Memory. If memory devices fails, the spare device could be used.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "SubsystemDeviceID": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.MemorySubsystemControllerProductID",
+                    "description": "Subsystem Device ID.",
+                    "longDescription": "The value of this property shall be the subsystem Device ID of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SubsystemVendorID": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.MemorySubsystemControllerManufacturerID",
+                    "description": "SubSystem Vendor ID.",
+                    "longDescription": "The value of this property shall be the subsystem Vendor ID of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VendorID": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.ModuleManufacturerID",
+                    "description": "Vendor ID.",
+                    "longDescription": "The value of this property shall be the vendor ID of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VolatileRegionNumberLimit": {
+                    "description": "Total number of volatile regions this Memory can support.",
+                    "longDescription": "The value of this property shall be the total number of volatile regions this Memory can support.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "VolatileRegionSizeLimitMiB": {
+                    "description": "Total size of volatile regions in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the total size of volatile regions in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "VolatileRegionSizeMaxMiB": {
+                    "description": "Maximum size of a single volatile region in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the maximum size of a single volatile regions in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "VolatileSizeMiB": {
+                    "description": "Total size of the volitile portion memory in MiB.",
+                    "longDescription": "The value of this property shall be the total size of the volatile portion memory in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "MemoryClassification": {
+            "enum": [
+                "Volatile",
+                "ByteAccessiblePersistent",
+                "Block"
+            ],
+            "enumDescriptions": {
+                "Block": "Block accesible memory.",
+                "ByteAccessiblePersistent": "Byte accessible persistent memory.",
+                "Volatile": "Volatile memory."
+            },
+            "type": "string"
+        },
+        "MemoryDeviceType": {
+            "enum": [
+                "DDR",
+                "DDR2",
+                "DDR3",
+                "DDR4",
+                "DDR4_SDRAM",
+                "DDR4E_SDRAM",
+                "LPDDR4_SDRAM",
+                "DDR3_SDRAM",
+                "LPDDR3_SDRAM",
+                "DDR2_SDRAM",
+                "DDR2_SDRAM_FB_DIMM",
+                "DDR2_SDRAM_FB_DIMM_PROBE",
+                "DDR_SGRAM",
+                "DDR_SDRAM",
+                "ROM",
+                "SDRAM",
+                "EDO",
+                "FastPageMode",
+                "PipelinedNibble",
+                "Logical"
+            ],
+            "enumDescriptions": {
+                "DDR": "DDR.",
+                "DDR2": "DDR2.",
+                "DDR2_SDRAM": "DDR2 SDRAM.",
+                "DDR2_SDRAM_FB_DIMM": "DDR2 SDRAM FB_DIMM.",
+                "DDR2_SDRAM_FB_DIMM_PROBE": "DDR2 SDRAM FB_DIMM PROBE.",
+                "DDR3": "DDR3.",
+                "DDR3_SDRAM": "DDR3 SDRAM.",
+                "DDR4": "DDR4.",
+                "DDR4E_SDRAM": "DDR4E SDRAM.",
+                "DDR4_SDRAM": "DDR4 SDRAM.",
+                "DDR_SDRAM": "DDR SDRAM.",
+                "DDR_SGRAM": "DDR SGRAM.",
+                "EDO": "EDO.",
+                "FastPageMode": "Fast Page Mode.",
+                "LPDDR3_SDRAM": "LPDDR3 SDRAM.",
+                "LPDDR4_SDRAM": "LPDDR4 SDRAM.",
+                "Logical": "Logical Non-volatile device.",
+                "PipelinedNibble": "Pipelined Nibble.",
+                "ROM": "ROM.",
+                "SDRAM": "SDRAM."
+            },
+            "type": "string"
+        },
+        "MemoryLocation": {
+            "additionalProperties": false,
+            "description": "Memory connection information to sockets and memory controllers.",
+            "longDescription": "This type shall contain properties which describe the Memory connection information to sockets and memory controllers.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Channel": {
+                    "description": "Channel number in which Memory is connected.",
+                    "longDescription": "Channel number in which Memory is connected.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MemoryController": {
+                    "description": "Memory controller number in which Memory is connected.",
+                    "longDescription": "Memory controller number in which Memory is connected.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Slot": {
+                    "description": "Slot number in which Memory is connected.",
+                    "longDescription": "Slot number in which Memory is connected.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Socket": {
+                    "description": "Socket number in which Memory is connected.",
+                    "longDescription": "Socket number in which Memory is connected.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "MemoryMedia": {
+            "enum": [
+                "DRAM",
+                "NAND",
+                "Proprietary"
+            ],
+            "enumDescriptions": {
+                "DRAM": "DRAM media.",
+                "NAND": "NAND media.",
+                "Proprietary": "Proprietary media."
+            },
+            "type": "string"
+        },
+        "MemoryType": {
+            "enum": [
+                "DRAM",
+                "NVDIMM_N",
+                "NVDIMM_F",
+                "NVDIMM_P"
+            ],
+            "enumDescriptions": {
+                "DRAM": "The memory module is composed of volatile memory.",
+                "NVDIMM_F": "The memory module is composed of non-volatile memory.",
+                "NVDIMM_N": "The memory module is composed of volatile memory backed by non-volatile memory.",
+                "NVDIMM_P": "The memory module is composed of a combination of non-volatile and volatile memory."
+            },
+            "enumLongDescriptions": {
+                "DRAM": "This memory type shall represent volatile DRAM.",
+                "NVDIMM_F": "This memory type shall represent NVDIMM_F as defined by JEDEC.",
+                "NVDIMM_N": "This memory type shall represent NVDIMM_N as defined by JEDEC.",
+                "NVDIMM_P": "This memory type shall represent NVDIMM_P as defined by JEDEC."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OperatingMemoryModes": {
+            "enum": [
+                "Volatile",
+                "PMEM",
+                "Block"
+            ],
+            "enumDescriptions": {
+                "Block": "Block accessible system memory.",
+                "PMEM": "Persistent memory, byte accesible through system address space.",
+                "Volatile": "Volatile memory."
+            },
+            "type": "string"
+        },
+        "PowerManagementPolicy": {
+            "additionalProperties": false,
+            "description": "Power management policy information.",
+            "longDescription": "This type shall contain properties which describe the power management policy for the current resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AveragePowerBudgetMilliWatts": {
+                    "description": "Average power budget in milli watts.",
+                    "longDescription": "Average power budget in milli watts.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mW"
+                },
+                "MaxTDPMilliWatts": {
+                    "description": "Maximum TDP in milli watts.",
+                    "longDescription": "Maximum TDP in milli watts.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mW"
+                },
+                "PeakPowerBudgetMilliWatts": {
+                    "description": "Peak power budget in milli watts.",
+                    "longDescription": "Peak power budget in milli watts.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "mW"
+                },
+                "PolicyEnabled": {
+                    "description": "Power management policy enabled status.",
+                    "longDescription": "Power management policy enabled status.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "RegionSet": {
+            "additionalProperties": false,
+            "description": "Memory region information within a Memory entity.",
+            "longDescription": "This type shall describe the memory region information within a Memory entity.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MemoryClassification": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/MemoryClassification"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Classification of memory occupied by the given memory region.",
+                    "longDescription": "Classification of memory occupied by the given memory region.",
+                    "readonly": true
+                },
+                "OffsetMiB": {
+                    "description": "Offset with in the Memory that corresponds to the starting of this memory region in mebibytes (MiB).",
+                    "longDescription": "Offset with in the Memory that corresponds to the starting of this memory region in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                },
+                "PassphraseEnabled": {
+                    "description": "Indicates if the passphrase is enabled for this region.",
+                    "longDescription": "The value of this property shall be a boolean indicating if the passphrase is enabled for this region.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "PassphraseState": {
+                    "deprecated": "This property has been Deprecated in favor of Memory.v1_5_0.Memory.RegionSet.PassphraseEnabled.",
+                    "description": "State of the passphrase for this region.",
+                    "longDescription": "State of the passphrase for this region.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "RegionId": {
+                    "description": "Unique region ID representing a specific region within the Memory.",
+                    "longDescription": "Unique region ID representing a specific region within the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SizeMiB": {
+                    "description": "Size of this memory region in mebibytes (MiB).",
+                    "longDescription": "Size of this memory region in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "MiBy"
+                }
+            },
+            "type": "object"
+        },
+        "SecureEraseUnit": {
+            "additionalProperties": false,
+            "description": "This defines the action for securely erasing given regions.",
+            "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region.",
+            "parameters": {
+                "Passphrase": {
+                    "description": "Passphrase for doing the operation.",
+                    "longDescription": "The value of this property shall be the passphrase used in this action.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "RegionId": {
+                    "description": "Memory region ID for which this action to be applied.",
+                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "SecurityCapabilities": {
+            "additionalProperties": false,
+            "description": "This type contains security capabilities of a Memory entity.",
+            "longDescription": "This type shall contain properties which describe the security capabilities of a Memory entity.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MaxPassphraseCount": {
+                    "description": "Maximum number of passphrases supported for this Memory.",
+                    "longDescription": "Maximum number of passphrases supported for this Memory.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PassphraseCapable": {
+                    "description": "Memory passphrase set capability.",
+                    "longDescription": "Memory passphrase set capability.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SecurityStates": {
+                    "description": "Security states supported by the Memory.",
+                    "items": {
+                        "$ref": "#/definitions/SecurityStates"
+                    },
+                    "longDescription": "Security states supported by the Memory.",
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "SecurityStates": {
+            "enum": [
+                "Enabled",
+                "Disabled",
+                "Unlocked",
+                "Locked",
+                "Frozen",
+                "Passphraselimit"
+            ],
+            "enumDescriptions": {
+                "Disabled": "Secure mode is disabled.",
+                "Enabled": "Secure mode is enabled.",
+                "Frozen": "Secure state is frozen and can not be modified until reset.",
+                "Locked": "Secure mode is enabled and access to the data is locked.",
+                "Passphraselimit": "Number of attempts to unlock the Memory exceeded limit.",
+                "Unlocked": "Secure mode is enabled and access to the data is unlocked."
+            },
+            "type": "string"
+        },
+        "SetPassphrase": {
+            "additionalProperties": false,
+            "description": "Set passphrase for the given regions.",
+            "longDescription": "This action shall apply the supplied passphrase to the supplied region.",
+            "parameters": {
+                "Passphrase": {
+                    "description": "Passphrase for doing the operation.",
+                    "longDescription": "The value of this property shall be the passphrase used in this action.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "RegionId": {
+                    "description": "Memory region ID for which this action to be applied.",
+                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "UnlockUnit": {
+            "additionalProperties": false,
+            "description": "This defines the action for unlocking given regions.",
+            "longDescription": "This action shall apply the supplied passphrase to the supplied region for the purpose of unlocking the given regions.",
+            "parameters": {
+                "Passphrase": {
+                    "description": "Passphrase for doing the operation.",
+                    "longDescription": "The value of this property shall be the passphrase used in this actionn.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "RegionId": {
+                    "description": "Memory region ID for which this action to be applied.",
+                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Memory.v1_5_0.Memory"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Memory/index.json b/static/redfish/v1/JsonSchemas/Memory/index.json
index 6bd6ac2..ef0dc47 100644
--- a/static/redfish/v1/JsonSchemas/Memory/index.json
+++ b/static/redfish/v1/JsonSchemas/Memory/index.json
@@ -1,1217 +1,21 @@
 {
-    "$ref": "#/definitions/Memory",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Memory.DisablePassphrase": {
-                    "$ref": "#/definitions/DisablePassphrase"
-                },
-                "#Memory.SecureEraseUnit": {
-                    "$ref": "#/definitions/SecureEraseUnit"
-                },
-                "#Memory.SetPassphrase": {
-                    "$ref": "#/definitions/SetPassphrase"
-                },
-                "#Memory.UnlockUnit": {
-                    "$ref": "#/definitions/UnlockUnit"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "BaseModuleType": {
-            "enum": [
-                "RDIMM",
-                "UDIMM",
-                "SO_DIMM",
-                "LRDIMM",
-                "Mini_RDIMM",
-                "Mini_UDIMM",
-                "SO_RDIMM_72b",
-                "SO_UDIMM_72b",
-                "SO_DIMM_16b",
-                "SO_DIMM_32b"
-            ],
-            "enumDescriptions": {
-                "LRDIMM": "Load Reduced.",
-                "Mini_RDIMM": "Mini_RDIMM.",
-                "Mini_UDIMM": "Mini_UDIMM.",
-                "RDIMM": "Registered DIMM.",
-                "SO_DIMM": "SO_DIMM.",
-                "SO_DIMM_16b": "SO_DIMM_16b.",
-                "SO_DIMM_32b": "SO_DIMM_32b.",
-                "SO_RDIMM_72b": "SO_RDIMM_72b.",
-                "SO_UDIMM_72b": "SO_UDIMM_72b.",
-                "UDIMM": "UDIMM."
-            },
-            "type": "string"
-        },
-        "DisablePassphrase": {
-            "additionalProperties": false,
-            "description": "Disable passphrase for given regions.",
-            "longDescription": "This action shall disaple the need for passphrases on the supplied region provided the supplied passphrase matches that of the region.",
-            "parameters": {
-                "Passphrase": {
-                    "description": "Passphrase for doing the operation.",
-                    "longDescription": "The value of this property shall be the passphrase used in this action.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "RegionId": {
-                    "description": "Memory region ID for which this action to be applied.",
-                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "ErrorCorrection": {
-            "enum": [
-                "NoECC",
-                "SingleBitECC",
-                "MultiBitECC",
-                "AddressParity"
-            ],
-            "enumDescriptions": {
-                "AddressParity": "Address Parity errors can be corrected.",
-                "MultiBitECC": "Multi-bit Data errors can be corrected by ECC.",
-                "NoECC": "No ECC available.",
-                "SingleBitECC": "Single bit Data error can be corrected by ECC."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the Chassis which contains this Memory.",
-                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Memory.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "Memory": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for definition of a Memory and its configuration.",
-            "longDescription": "This resource shall be used to represent the Memory in a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AllocationAlignmentMiB": {
-                    "description": "The boundary which memory regions are allocated on, measured in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be thealignment boundary on which memory regions are allocated, measured in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "AllocationIncrementMiB": {
-                    "description": "The size of the smallest unit of allocation for a memory region in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the allocation increment for regions, measured in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "AllowedSpeedsMHz": {
-                    "description": "Speed bins supported by this Memory.",
-                    "items": {
-                        "type": "number"
-                    },
-                    "longDescription": "The value of this property shall be the speed supported by this Memory.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this memory.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "BaseModuleType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/BaseModuleType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The base module type of Memory.",
-                    "longDescription": "The value of this property shall be the base module type of Memory.",
-                    "readonly": true
-                },
-                "BusWidthBits": {
-                    "description": "Bus Width in bits.",
-                    "longDescription": "The value of this property shall be the bus width in bits.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "CacheSizeMiB": {
-                    "description": "Total size of the cache portion memory in MiB.",
-                    "longDescription": "The value of this property shall be the total size of the cache portion memory in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                },
-                "CapacityMiB": {
-                    "description": "Memory Capacity in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the Memory capacity in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                },
-                "DataWidthBits": {
-                    "description": "Data Width in bits.",
-                    "longDescription": "The value of this property shall be the data width in bits.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DeviceID": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.ModuleProductID",
-                    "description": "Device ID.",
-                    "longDescription": "The value of this property shall be the device ID of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DeviceLocator": {
-                    "description": "Location of the Memory in the platform.",
-                    "longDescription": "The value of this property shall be location of the Memory in the platform, typically marked in the silk screen.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ErrorCorrection": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ErrorCorrection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Error correction scheme supported for this memory.",
-                    "longDescription": "The value of this property shall be the error correction scheme supported for this memory.",
-                    "readonly": true
-                },
-                "FirmwareApiVersion": {
-                    "description": "Version of API supported by the firmware.",
-                    "longDescription": "The value of this property shall be the version of API supported by the firmware.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FirmwareRevision": {
-                    "description": "Revision of firmware on the Memory controller.",
-                    "longDescription": "The value of this property shall be the revision of firmware on the Memory controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FunctionClasses": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_0_0.Memory.OperatingMemoryModes or Memory.v1_0_0.Memory.RegionSet.MemoryClassification.",
-                    "description": "Function Classes by the Memory.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "The value of this property shall be the function classes by the Memory.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "IsRankSpareEnabled": {
-                    "description": "Rank spare enabled status.",
-                    "longDescription": "The value of this property shall be true if a rank spare is enabled for this Memory.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IsSpareDeviceEnabled": {
-                    "description": "Spare device enabled status.",
-                    "longDescription": "The value of this property shall be true if a spare device is enabled for this Memory.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "LogicalSizeMiB": {
-                    "description": "Total size of the logical memory in MiB.",
-                    "longDescription": "The value of this property shall be the total size of the logical memory in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                },
-                "Manufacturer": {
-                    "description": "The Memory manufacturer.",
-                    "longDescription": "This property shall contain a string which identifies the manufacturer of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MaxTDPMilliWatts": {
-                    "description": "Maximum TDPs in milli Watts.",
-                    "items": {
-                        "type": "number"
-                    },
-                    "longDescription": "The value of this property shall be the maximum power budgets supported by the Memory in milli Watts.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MemoryDeviceType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MemoryDeviceType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Type details of the Memory.",
-                    "longDescription": "The value of this property shall be the Memory Device Type as defined by SMBIOS.",
-                    "readonly": true
-                },
-                "MemoryLocation": {
-                    "$ref": "#/definitions/MemoryLocation",
-                    "description": "Memory connection information to sockets and memory controllers.",
-                    "longDescription": "This object shall contain properties which describe the Memory connection information to sockets and memory controllers."
-                },
-                "MemoryMedia": {
-                    "description": "Media of this Memory.",
-                    "items": {
-                        "$ref": "#/definitions/MemoryMedia"
-                    },
-                    "longDescription": "The value of this property shall be the media types of this Memory.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "MemorySubsystemControllerManufacturerID": {
-                    "description": "The manufacturer ID of the memory subsystem controller of this memory module.",
-                    "longDescription": "The value of this property shall be the two byte manufacturer ID of the memory subsystem controller of this memory module as defined by JEDEC in JEP-106.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MemorySubsystemControllerProductID": {
-                    "description": "The product ID of the memory subsystem controller of this memory module.",
-                    "longDescription": "The value of this property shall be the two byte product ID of the memory subsystem controller of this memory module as defined by the manufacturer.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MemoryType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MemoryType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of Memory.",
-                    "longDescription": "The value of this property shall be the type of Memory represented by this resource.",
-                    "readonly": true
-                },
-                "Metrics": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.json#/definitions/MemoryMetrics",
-                    "description": "A reference to the Metrics associated with this Memory.",
-                    "longDescription": "A reference to the Metrics associated with this Memory.",
-                    "readonly": true
-                },
-                "ModuleManufacturerID": {
-                    "description": "The manufacturer ID of this memory module.",
-                    "longDescription": "The value of this property shall be the two byte manufacturer ID of this memory module as defined by JEDEC in JEP-106.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ModuleProductID": {
-                    "description": "The product ID of this memory module.",
-                    "longDescription": "The value of this property shall be the two byte product ID of this memory module as defined by the manufacturer.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NonVolatileSizeMiB": {
-                    "description": "Total size of the non-volatile portion memory in MiB.",
-                    "longDescription": "The value of this property shall be the total size of the non-volatile portion memory in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OperatingMemoryModes": {
-                    "description": "Memory modes supported by the Memory.",
-                    "items": {
-                        "$ref": "#/definitions/OperatingMemoryModes"
-                    },
-                    "longDescription": "The value of this property shall be the memory modes supported by the Memory.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "OperatingSpeedMhz": {
-                    "description": "Operating speed of Memory in MHz or MT/s as appropriate.",
-                    "longDescription": "The value of this property shall be the operating speed of Memory in MHz or MT/s (mega-transfers per second) as reported by the memory device. Memory devices which operate at their bus speed shall report the operating speed in MHz (bus speed), while memory device which transfer data faster than their bus speed (e.g. DDR memory) shall report the operating speed in MT/s (mega-transfers/second). In any case, the reported value shall match the conventionally reported values for the technology utilized by the memory device.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PartNumber": {
-                    "description": "The product part number of this device.",
-                    "longDescription": "This property shall indicate the part number as provided by the manufacturer of this Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PersistentRegionNumberLimit": {
-                    "description": "Total number of persistent regions this Memory can support.",
-                    "longDescription": "The value of this property shall be the total number of persistent regions this Memory can support.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PersistentRegionSizeLimitMiB": {
-                    "description": "Total size of persistent regions in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the total size of persistent regions in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PersistentRegionSizeMaxMiB": {
-                    "description": "Maximum size of a single persistent region in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the maximum size of a single persistent regions in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PowerManagementPolicy": {
-                    "$ref": "#/definitions/PowerManagementPolicy",
-                    "description": "Power management policy information.",
-                    "longDescription": "This object shall contain properties which describe the power management policy for the current resource."
-                },
-                "RankCount": {
-                    "description": "Number of ranks available in the Memory.",
-                    "longDescription": "The value of this property shall be number of ranks available in the Memory. The ranks could be used for spare or interleave.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Regions": {
-                    "description": "Memory regions information within the Memory.",
-                    "items": {
-                        "$ref": "#/definitions/RegionSet"
-                    },
-                    "longDescription": "The value of this property shall be the memory region information within the Memory.",
-                    "type": "array"
-                },
-                "SecurityCapabilities": {
-                    "$ref": "#/definitions/SecurityCapabilities",
-                    "description": "This object contains security capabilities of the Memory.",
-                    "longDescription": "This object shall contain properties which describe the security capabilities of the Memory."
-                },
-                "SerialNumber": {
-                    "description": "The product serial number of this device.",
-                    "longDescription": "This property shall indicate the serial number as provided by the manufacturer of this Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SpareDeviceCount": {
-                    "description": "Number of unused spare devices available in the Memory.",
-                    "longDescription": "The value of this property shall be the number of unused spare devices available in the Memory. If memory devices fails, the spare device could be used.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "SubsystemDeviceID": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.MemorySubsystemControllerProductID",
-                    "description": "Subsystem Device ID.",
-                    "longDescription": "The value of this property shall be the subsystem Device ID of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SubsystemVendorID": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.MemorySubsystemControllerManufacturerID",
-                    "description": "SubSystem Vendor ID.",
-                    "longDescription": "The value of this property shall be the subsystem Vendor ID of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VendorID": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_3_0.ModuleManufacturerID",
-                    "description": "Vendor ID.",
-                    "longDescription": "The value of this property shall be the vendor ID of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VolatileRegionNumberLimit": {
-                    "description": "Total number of volatile regions this Memory can support.",
-                    "longDescription": "The value of this property shall be the total number of volatile regions this Memory can support.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "VolatileRegionSizeLimitMiB": {
-                    "description": "Total size of volatile regions in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the total size of volatile regions in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "VolatileRegionSizeMaxMiB": {
-                    "description": "Maximum size of a single volatile region in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the maximum size of a single volatile regions in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "VolatileSizeMiB": {
-                    "description": "Total size of the volitile portion memory in MiB.",
-                    "longDescription": "The value of this property shall be the total size of the volatile portion memory in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "MemoryClassification": {
-            "enum": [
-                "Volatile",
-                "ByteAccessiblePersistent",
-                "Block"
-            ],
-            "enumDescriptions": {
-                "Block": "Block accesible memory.",
-                "ByteAccessiblePersistent": "Byte accessible persistent memory.",
-                "Volatile": "Volatile memory."
-            },
-            "type": "string"
-        },
-        "MemoryDeviceType": {
-            "enum": [
-                "DDR",
-                "DDR2",
-                "DDR3",
-                "DDR4",
-                "DDR4_SDRAM",
-                "DDR4E_SDRAM",
-                "LPDDR4_SDRAM",
-                "DDR3_SDRAM",
-                "LPDDR3_SDRAM",
-                "DDR2_SDRAM",
-                "DDR2_SDRAM_FB_DIMM",
-                "DDR2_SDRAM_FB_DIMM_PROBE",
-                "DDR_SGRAM",
-                "DDR_SDRAM",
-                "ROM",
-                "SDRAM",
-                "EDO",
-                "FastPageMode",
-                "PipelinedNibble",
-                "Logical"
-            ],
-            "enumDescriptions": {
-                "DDR": "DDR.",
-                "DDR2": "DDR2.",
-                "DDR2_SDRAM": "DDR2 SDRAM.",
-                "DDR2_SDRAM_FB_DIMM": "DDR2 SDRAM FB_DIMM.",
-                "DDR2_SDRAM_FB_DIMM_PROBE": "DDR2 SDRAM FB_DIMM PROBE.",
-                "DDR3": "DDR3.",
-                "DDR3_SDRAM": "DDR3 SDRAM.",
-                "DDR4": "DDR4.",
-                "DDR4E_SDRAM": "DDR4E SDRAM.",
-                "DDR4_SDRAM": "DDR4 SDRAM.",
-                "DDR_SDRAM": "DDR SDRAM.",
-                "DDR_SGRAM": "DDR SGRAM.",
-                "EDO": "EDO.",
-                "FastPageMode": "Fast Page Mode.",
-                "LPDDR3_SDRAM": "LPDDR3 SDRAM.",
-                "LPDDR4_SDRAM": "LPDDR4 SDRAM.",
-                "Logical": "Logical Non-volatile device.",
-                "PipelinedNibble": "Pipelined Nibble.",
-                "ROM": "ROM.",
-                "SDRAM": "SDRAM."
-            },
-            "type": "string"
-        },
-        "MemoryLocation": {
-            "additionalProperties": false,
-            "description": "Memory connection information to sockets and memory controllers.",
-            "longDescription": "This type shall contain properties which describe the Memory connection information to sockets and memory controllers.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Channel": {
-                    "description": "Channel number in which Memory is connected.",
-                    "longDescription": "Channel number in which Memory is connected.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MemoryController": {
-                    "description": "Memory controller number in which Memory is connected.",
-                    "longDescription": "Memory controller number in which Memory is connected.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Slot": {
-                    "description": "Slot number in which Memory is connected.",
-                    "longDescription": "Slot number in which Memory is connected.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Socket": {
-                    "description": "Socket number in which Memory is connected.",
-                    "longDescription": "Socket number in which Memory is connected.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "MemoryMedia": {
-            "enum": [
-                "DRAM",
-                "NAND",
-                "Proprietary"
-            ],
-            "enumDescriptions": {
-                "DRAM": "DRAM media.",
-                "NAND": "NAND media.",
-                "Proprietary": "Proprietary media."
-            },
-            "type": "string"
-        },
-        "MemoryType": {
-            "enum": [
-                "DRAM",
-                "NVDIMM_N",
-                "NVDIMM_F",
-                "NVDIMM_P"
-            ],
-            "enumDescriptions": {
-                "DRAM": "The memory module is composed of volatile memory.",
-                "NVDIMM_F": "The memory module is composed of non-volatile memory.",
-                "NVDIMM_N": "The memory module is composed of volatile memory backed by non-volatile memory.",
-                "NVDIMM_P": "The memory module is composed of a combination of non-volatile and volatile memory."
-            },
-            "enumLongDescriptions": {
-                "DRAM": "This memory type shall represent volatile DRAM.",
-                "NVDIMM_F": "This memory type shall represent NVDIMM_F as defined by JEDEC.",
-                "NVDIMM_N": "This memory type shall represent NVDIMM_N as defined by JEDEC.",
-                "NVDIMM_P": "This memory type shall represent NVDIMM_P as defined by JEDEC."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OperatingMemoryModes": {
-            "enum": [
-                "Volatile",
-                "PMEM",
-                "Block"
-            ],
-            "enumDescriptions": {
-                "Block": "Block accessible system memory.",
-                "PMEM": "Persistent memory, byte accesible through system address space.",
-                "Volatile": "Volatile memory."
-            },
-            "type": "string"
-        },
-        "PowerManagementPolicy": {
-            "additionalProperties": false,
-            "description": "Power management policy information.",
-            "longDescription": "This type shall contain properties which describe the power management policy for the current resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AveragePowerBudgetMilliWatts": {
-                    "description": "Average power budget in milli watts.",
-                    "longDescription": "Average power budget in milli watts.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mW"
-                },
-                "MaxTDPMilliWatts": {
-                    "description": "Maximum TDP in milli watts.",
-                    "longDescription": "Maximum TDP in milli watts.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mW"
-                },
-                "PeakPowerBudgetMilliWatts": {
-                    "description": "Peak power budget in milli watts.",
-                    "longDescription": "Peak power budget in milli watts.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "mW"
-                },
-                "PolicyEnabled": {
-                    "description": "Power management policy enabled status.",
-                    "longDescription": "Power management policy enabled status.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "RegionSet": {
-            "additionalProperties": false,
-            "description": "Memory region information within a Memory entity.",
-            "longDescription": "This type shall describe the memory region information within a Memory entity.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MemoryClassification": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/MemoryClassification"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Classification of memory occupied by the given memory region.",
-                    "longDescription": "Classification of memory occupied by the given memory region.",
-                    "readonly": true
-                },
-                "OffsetMiB": {
-                    "description": "Offset with in the Memory that corresponds to the starting of this memory region in mebibytes (MiB).",
-                    "longDescription": "Offset with in the Memory that corresponds to the starting of this memory region in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                },
-                "PassphraseEnabled": {
-                    "description": "Indicates if the passphrase is enabled for this region.",
-                    "longDescription": "The value of this property shall be a boolean indicating if the passphrase is enabled for this region.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "PassphraseState": {
-                    "deprecated": "This property has been Deprecated in favor of Memory.v1_5_0.Memory.RegionSet.PassphraseEnabled.",
-                    "description": "State of the passphrase for this region.",
-                    "longDescription": "State of the passphrase for this region.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "RegionId": {
-                    "description": "Unique region ID representing a specific region within the Memory.",
-                    "longDescription": "Unique region ID representing a specific region within the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SizeMiB": {
-                    "description": "Size of this memory region in mebibytes (MiB).",
-                    "longDescription": "Size of this memory region in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "MiBy"
-                }
-            },
-            "type": "object"
-        },
-        "SecureEraseUnit": {
-            "additionalProperties": false,
-            "description": "This defines the action for securely erasing given regions.",
-            "longDescription": "This action shall securely erase the supplied region provided the supplied passphrase matches that of the given region.",
-            "parameters": {
-                "Passphrase": {
-                    "description": "Passphrase for doing the operation.",
-                    "longDescription": "The value of this property shall be the passphrase used in this action.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "RegionId": {
-                    "description": "Memory region ID for which this action to be applied.",
-                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "SecurityCapabilities": {
-            "additionalProperties": false,
-            "description": "This type contains security capabilities of a Memory entity.",
-            "longDescription": "This type shall contain properties which describe the security capabilities of a Memory entity.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MaxPassphraseCount": {
-                    "description": "Maximum number of passphrases supported for this Memory.",
-                    "longDescription": "Maximum number of passphrases supported for this Memory.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PassphraseCapable": {
-                    "description": "Memory passphrase set capability.",
-                    "longDescription": "Memory passphrase set capability.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SecurityStates": {
-                    "description": "Security states supported by the Memory.",
-                    "items": {
-                        "$ref": "#/definitions/SecurityStates"
-                    },
-                    "longDescription": "Security states supported by the Memory.",
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "SecurityStates": {
-            "enum": [
-                "Enabled",
-                "Disabled",
-                "Unlocked",
-                "Locked",
-                "Frozen",
-                "Passphraselimit"
-            ],
-            "enumDescriptions": {
-                "Disabled": "Secure mode is disabled.",
-                "Enabled": "Secure mode is enabled.",
-                "Frozen": "Secure state is frozen and can not be modified until reset.",
-                "Locked": "Secure mode is enabled and access to the data is locked.",
-                "Passphraselimit": "Number of attempts to unlock the Memory exceeded limit.",
-                "Unlocked": "Secure mode is enabled and access to the data is unlocked."
-            },
-            "type": "string"
-        },
-        "SetPassphrase": {
-            "additionalProperties": false,
-            "description": "Set passphrase for the given regions.",
-            "longDescription": "This action shall apply the supplied passphrase to the supplied region.",
-            "parameters": {
-                "Passphrase": {
-                    "description": "Passphrase for doing the operation.",
-                    "longDescription": "The value of this property shall be the passphrase used in this action.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "RegionId": {
-                    "description": "Memory region ID for which this action to be applied.",
-                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "UnlockUnit": {
-            "additionalProperties": false,
-            "description": "This defines the action for unlocking given regions.",
-            "longDescription": "This action shall apply the supplied passphrase to the supplied region for the purpose of unlocking the given regions.",
-            "parameters": {
-                "Passphrase": {
-                    "description": "Passphrase for doing the operation.",
-                    "longDescription": "The value of this property shall be the passphrase used in this actionn.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "RegionId": {
-                    "description": "Memory region ID for which this action to be applied.",
-                    "longDescription": "The value of this property shall be the Memory region ID for which this action to be applied.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Memory",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Memory Schema File",
+    "Schema": "#Memory.Memory",
+    "Description": "Memory Schema File Location",
+    "Id": "Memory",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Memory.json",
+            "Uri": "/redfish/v1/JSONSchemas/Memory/Memory.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Memory.v1_5_0.Memory"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json b/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json
new file mode 100644
index 0000000..3850a6e
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/MemoryChunks/MemoryChunks.json
@@ -0,0 +1,253 @@
+{
+    "$ref": "#/definitions/MemoryChunks",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AddressRangeType": {
+            "enum": [
+                "Volatile",
+                "PMEM",
+                "Block"
+            ],
+            "enumDescriptions": {
+                "Block": "Block accesible memory.",
+                "PMEM": "Byte accessible persistent memory.",
+                "Volatile": "Volatile memory."
+            },
+            "type": "string"
+        },
+        "InterleaveSet": {
+            "additionalProperties": false,
+            "description": "This an interleave set for a memory chunk.",
+            "longDescription": "This type shall describe an interleave set of which the memory chunk is a part.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Memory": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
+                    "description": "Describes a memory device of the interleave set.",
+                    "longDescription": "The value of this property shall be the memory device to which these settings apply.",
+                    "readonly": true
+                },
+                "MemoryLevel": {
+                    "description": "Level of the interleave set for multi-level tiered memory.",
+                    "longDescription": "The value of this property shall be the level of this interleave set for multi-level tiered memory.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "OffsetMiB": {
+                    "description": "Offset within the DIMM that corresponds to the start of this memory region, measured in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the offset within the DIMM that corresponds to the start of this memory region, with units in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "RegionId": {
+                    "description": "DIMM region identifier.",
+                    "longDescription": "The value of this property shall be the DIMM region identifier.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SizeMiB": {
+                    "description": "Size of this memory region measured in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the size of this memory region, with units in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "MemoryChunks": {
+            "additionalProperties": false,
+            "description": "This is the schema definition of a Memory Chunk and its configuration.",
+            "longDescription": "This resource shall be used to represent Memory Chunks and Interleave Sets in a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AddressRangeType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AddressRangeType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Memory type of this memory chunk.",
+                    "longDescription": "The value of this property shall be the type of memory chunk.",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "InterleaveSets": {
+                    "description": "This is the interleave sets for the memory chunk.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/InterleaveSet"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "These properties shall represent the interleave sets for the memory chunk.",
+                    "type": "array"
+                },
+                "IsMirrorEnabled": {
+                    "description": "Mirror Enabled status.",
+                    "longDescription": "The value of this property shall indicate if memory mirroring is enabled for this MemoryChunk.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IsSpare": {
+                    "description": "Spare enabled status.",
+                    "longDescription": "The value of this property shall indicate if sparing is enabled for this MemoryChunk.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "MemoryChunkSizeMiB": {
+                    "description": "Size of the memory chunk measured in mebibytes (MiB).",
+                    "longDescription": "The value of this property shall be the size of the memory chunk in MiB.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#MemoryChunks.v1_2_1.MemoryChunks"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MemoryChunks/index.json b/static/redfish/v1/JsonSchemas/MemoryChunks/index.json
index 3850a6e..0f8d5b9 100644
--- a/static/redfish/v1/JsonSchemas/MemoryChunks/index.json
+++ b/static/redfish/v1/JsonSchemas/MemoryChunks/index.json
@@ -1,253 +1,21 @@
 {
-    "$ref": "#/definitions/MemoryChunks",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AddressRangeType": {
-            "enum": [
-                "Volatile",
-                "PMEM",
-                "Block"
-            ],
-            "enumDescriptions": {
-                "Block": "Block accesible memory.",
-                "PMEM": "Byte accessible persistent memory.",
-                "Volatile": "Volatile memory."
-            },
-            "type": "string"
-        },
-        "InterleaveSet": {
-            "additionalProperties": false,
-            "description": "This an interleave set for a memory chunk.",
-            "longDescription": "This type shall describe an interleave set of which the memory chunk is a part.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Memory": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
-                    "description": "Describes a memory device of the interleave set.",
-                    "longDescription": "The value of this property shall be the memory device to which these settings apply.",
-                    "readonly": true
-                },
-                "MemoryLevel": {
-                    "description": "Level of the interleave set for multi-level tiered memory.",
-                    "longDescription": "The value of this property shall be the level of this interleave set for multi-level tiered memory.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "OffsetMiB": {
-                    "description": "Offset within the DIMM that corresponds to the start of this memory region, measured in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the offset within the DIMM that corresponds to the start of this memory region, with units in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "RegionId": {
-                    "description": "DIMM region identifier.",
-                    "longDescription": "The value of this property shall be the DIMM region identifier.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SizeMiB": {
-                    "description": "Size of this memory region measured in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the size of this memory region, with units in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "MemoryChunks": {
-            "additionalProperties": false,
-            "description": "This is the schema definition of a Memory Chunk and its configuration.",
-            "longDescription": "This resource shall be used to represent Memory Chunks and Interleave Sets in a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AddressRangeType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AddressRangeType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Memory type of this memory chunk.",
-                    "longDescription": "The value of this property shall be the type of memory chunk.",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "InterleaveSets": {
-                    "description": "This is the interleave sets for the memory chunk.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/InterleaveSet"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "These properties shall represent the interleave sets for the memory chunk.",
-                    "type": "array"
-                },
-                "IsMirrorEnabled": {
-                    "description": "Mirror Enabled status.",
-                    "longDescription": "The value of this property shall indicate if memory mirroring is enabled for this MemoryChunk.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IsSpare": {
-                    "description": "Spare enabled status.",
-                    "longDescription": "The value of this property shall indicate if sparing is enabled for this MemoryChunk.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "MemoryChunkSizeMiB": {
-                    "description": "Size of the memory chunk measured in mebibytes (MiB).",
-                    "longDescription": "The value of this property shall be the size of the memory chunk in MiB.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/MemoryChunks",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "MemoryChunks Schema File",
+    "Schema": "#MemoryChunks.MemoryChunks",
+    "Description": "MemoryChunks Schema File Location",
+    "Id": "MemoryChunks",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/MemoryChunks.json",
+            "Uri": "/redfish/v1/JSONSchemas/MemoryChunks/MemoryChunks.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#MemoryChunks.v1_2_1.MemoryChunks"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json b/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json
new file mode 100644
index 0000000..739d522
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/MemoryDomain/MemoryDomain.json
@@ -0,0 +1,196 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#MemoryDomain.v1_2_0.MemoryDomain",
+    "$ref": "#/definitions/MemoryDomain",
+    "definitions": {
+        "MemorySet": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": true,
+            "properties": {
+                "MemorySet@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
+                },
+                "MemorySet@odata.navigationLink": {
+                    "type": "string",
+                    "format": "uri"
+                },
+                "MemorySet": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
+                    },
+                    "readonly": true,
+                    "description": "This is the collection of memory for a particular interleave set.",
+                    "longDescription": "The values in this collection shall be links to objects of type Memory."
+                }
+            },
+            "description": "This is the interleave sets for a memory chunk.",
+            "longDescription": "This type shall represent the interleave sets for a memory chunk."
+        },
+        "MemoryDomain": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "AllowsMemoryChunkCreation": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks.",
+                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks."
+                },
+                "AllowsBlockProvisioning": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Indicates if this Memory Domain supports the provisioning of blocks of memory.",
+                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Blocks of memory."
+                },
+                "InterleavableMemorySets": {
+                    "type": "array",
+                    "items": {
+                        "anyOf": [
+                            {"$ref": "#/definitions/MemorySet"},
+                            {"type": "null"}
+                        ]
+                    },
+                    "description": "This is the interleave sets for the memory chunk.",
+                    "longDescription": "These properties shall represent the interleave sets for the memory chunk."
+                },
+                "MemoryChunks": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection.json#/definitions/MemoryChunksCollection"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true,
+                    "description": "A reference to the collection of Memory Chunks associated with this Memory Domain.",
+                    "longDescription": "The value of this property shall be a link to a collection of type MemoryChunkCollection."
+                },
+                "AllowsMirroring": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.",
+                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with mirroring enabled."
+                },
+                "AllowsSparing": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with sparing enabled.",
+                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with sparing enabled."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "This is the schema definition of a Memory Domain and its configuration. Memory Domains are used to indicate to the client which Memory (DIMMs) can be grouped together in Memory Chunks to form interleave sets or otherwise grouped together.",
+            "longDescription": "This resource shall be used to represent Memory Domains in a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/MemoryDomain/index.json b/static/redfish/v1/JsonSchemas/MemoryDomain/index.json
index 739d522..633efc8 100644
--- a/static/redfish/v1/JsonSchemas/MemoryDomain/index.json
+++ b/static/redfish/v1/JsonSchemas/MemoryDomain/index.json
@@ -1,196 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#MemoryDomain.v1_2_0.MemoryDomain",
-    "$ref": "#/definitions/MemoryDomain",
-    "definitions": {
-        "MemorySet": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": true,
-            "properties": {
-                "MemorySet@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
-                },
-                "MemorySet@odata.navigationLink": {
-                    "type": "string",
-                    "format": "uri"
-                },
-                "MemorySet": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
-                    },
-                    "readonly": true,
-                    "description": "This is the collection of memory for a particular interleave set.",
-                    "longDescription": "The values in this collection shall be links to objects of type Memory."
-                }
-            },
-            "description": "This is the interleave sets for a memory chunk.",
-            "longDescription": "This type shall represent the interleave sets for a memory chunk."
-        },
-        "MemoryDomain": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "AllowsMemoryChunkCreation": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks.",
-                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks."
-                },
-                "AllowsBlockProvisioning": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Indicates if this Memory Domain supports the provisioning of blocks of memory.",
-                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Blocks of memory."
-                },
-                "InterleavableMemorySets": {
-                    "type": "array",
-                    "items": {
-                        "anyOf": [
-                            {"$ref": "#/definitions/MemorySet"},
-                            {"type": "null"}
-                        ]
-                    },
-                    "description": "This is the interleave sets for the memory chunk.",
-                    "longDescription": "These properties shall represent the interleave sets for the memory chunk."
-                },
-                "MemoryChunks": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection.json#/definitions/MemoryChunksCollection"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true,
-                    "description": "A reference to the collection of Memory Chunks associated with this Memory Domain.",
-                    "longDescription": "The value of this property shall be a link to a collection of type MemoryChunkCollection."
-                },
-                "AllowsMirroring": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.",
-                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with mirroring enabled."
-                },
-                "AllowsSparing": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with sparing enabled.",
-                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with sparing enabled."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "This is the schema definition of a Memory Domain and its configuration. Memory Domains are used to indicate to the client which Memory (DIMMs) can be grouped together in Memory Chunks to form interleave sets or otherwise grouped together.",
-            "longDescription": "This resource shall be used to represent Memory Domains in a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/MemoryDomain",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "MemoryDomain Schema File",
+    "Schema": "#MemoryDomain.MemoryDomain",
+    "Description": "MemoryDomain Schema File Location",
+    "Id": "MemoryDomain",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/MemoryDomain.json",
+            "Uri": "/redfish/v1/JSONSchemas/MemoryDomain/MemoryDomain.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json b/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json
new file mode 100644
index 0000000..b9b5ac6
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/MemoryMetrics/MemoryMetrics.json
@@ -0,0 +1,389 @@
+{
+    "$ref": "#/definitions/MemoryMetrics",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#MemoryMetrics.ClearCurrentPeriod": {
+                    "$ref": "#/definitions/ClearCurrentPeriod"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AlarmTrips": {
+            "additionalProperties": false,
+            "description": "Alarm trip information about the memory.  These alarms are reset when the system resets.  Note that if they are re-discovered they can be reasserted.",
+            "longDescription": "This type shall contain properties describing the types of alarms that have been raised by the memory.  These alarams shall be reset when the system resets.  Note that if they are re-discovered they can be reasserted.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AddressParityError": {
+                    "description": "Address parity error detected status.",
+                    "longDescription": "The value of this property shall be true if an Address Parity Error was detected which could not be corrected by retry.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "CorrectableECCError": {
+                    "description": "Correctable data error threshold crossing alarm trip detected status.",
+                    "longDescription": "The value of this property shall be true if the correctable error threshold crossing alarm trip was detected.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SpareBlock": {
+                    "description": "Spare block capacity crossing alarm trip detected status.",
+                    "longDescription": "The value of this property shall be true if the spare block capacity crossing alarm trip was detected.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Temperature": {
+                    "description": "Temperature threshold crossing alarm trip detected status.",
+                    "longDescription": "The value of this property shall be true if a temperature threshold alarm trip was detected.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "UncorrectableECCError": {
+                    "description": "Uncorrectable data error threshold crossing alarm trip detected status.",
+                    "longDescription": "The value of this property shall be true if the uncorrectable error threshold alarm trip was detected.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "ClearCurrentPeriod": {
+            "additionalProperties": false,
+            "description": "This sets the CurrentPeriod object values to zero.",
+            "longDescription": "This action shall set the CurrentPeriod object property values to zero.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "CurrentPeriod": {
+            "additionalProperties": false,
+            "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.",
+            "longDescription": "This type shall describe the metrics of the memory since last time the ClearCurrentPeriod Action was performed or the system reset.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BlocksRead": {
+                    "description": "Number of blocks read since reset.",
+                    "longDescription": "The value of this property shall be number of blocks read since reset.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "BlocksWritten": {
+                    "description": "Number of blocks written since reset.",
+                    "longDescription": "The value of this property shall be mumber of blocks written since reset.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "HealthData": {
+            "additionalProperties": false,
+            "description": "This type describes the health information of the memory.",
+            "longDescription": "This type shall contain properties which describe the HealthData metrics for the current resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AlarmTrips": {
+                    "$ref": "#/definitions/AlarmTrips",
+                    "description": "Alarm trip information about the memory.",
+                    "longDescription": "This object shall contain properties describe the types of alarms that have been raised by the memory."
+                },
+                "DataLossDetected": {
+                    "description": "Data loss detection status.",
+                    "longDescription": "The value of this property shall be data loss detection status, with true indicating data loss detected.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "LastShutdownSuccess": {
+                    "description": "Status of last shutdown.",
+                    "longDescription": "The value of this property shall be the status ofthe  last shutdown, with true indicating success.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "PerformanceDegraded": {
+                    "description": "Performance degraded mode status.",
+                    "longDescription": "The value of this property shall be performance degraded mode status, with true indicating perfomance degraded.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "PredictedMediaLifeLeftPercent": {
+                    "description": "The percentage of reads and writes that are predicted to still be available for the media.",
+                    "longDescription": "This property shall contain an indicator of the percentage of life remaining in the media.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "RemainingSpareBlockPercentage": {
+                    "description": "Remaining spare blocks in percentage.",
+                    "longDescription": "The value of this property shall be the remaining spare blocks in percentage.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "LifeTime": {
+            "additionalProperties": false,
+            "description": "This object contains the Memory metrics for the lifetime of the Memory.",
+            "longDescription": "This type shall describe the metrics of the memory since manufacturing.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BlocksRead": {
+                    "description": "Number of blocks read for the lifetime of the Memory.",
+                    "longDescription": "The value of this property shall be number of blocks read for the lifetime of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "BlocksWritten": {
+                    "description": "Number of blocks written for the lifetime of the Memory.",
+                    "longDescription": "The value of this property shall be number of blocks written for the lifetime of the Memory.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "MemoryMetrics": {
+            "additionalProperties": false,
+            "description": "MemoryMetrics contains usage and health statistics for a single Memory module or device instance.",
+            "longDescription": "This resource shall be used to represent the Memory Metrics for a single Memory device in a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "BlockSizeBytes": {
+                    "description": "Block size in bytes.",
+                    "longDescription": "The value of this property shall be the block size in bytes of all stucture elements.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By"
+                },
+                "CurrentPeriod": {
+                    "$ref": "#/definitions/CurrentPeriod",
+                    "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.",
+                    "longDescription": "This object shall contain properties which describe the CurrentPeriod metrics for the current resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "HealthData": {
+                    "$ref": "#/definitions/HealthData",
+                    "description": "This object describes the health information of the memory.",
+                    "longDescription": "This object shall contain properties which describe the HealthData metrics for the current resource."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LifeTime": {
+                    "$ref": "#/definitions/LifeTime",
+                    "description": "This object contains the Memory metrics for the lifetime of the Memory.",
+                    "longDescription": "This object shall contain properties which describe the LifeTime metrics for the current resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#MemoryMetrics.v1_1_3.MemoryMetrics"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MemoryMetrics/index.json b/static/redfish/v1/JsonSchemas/MemoryMetrics/index.json
index b9b5ac6..a8f093a 100644
--- a/static/redfish/v1/JsonSchemas/MemoryMetrics/index.json
+++ b/static/redfish/v1/JsonSchemas/MemoryMetrics/index.json
@@ -1,389 +1,21 @@
 {
-    "$ref": "#/definitions/MemoryMetrics",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#MemoryMetrics.ClearCurrentPeriod": {
-                    "$ref": "#/definitions/ClearCurrentPeriod"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AlarmTrips": {
-            "additionalProperties": false,
-            "description": "Alarm trip information about the memory.  These alarms are reset when the system resets.  Note that if they are re-discovered they can be reasserted.",
-            "longDescription": "This type shall contain properties describing the types of alarms that have been raised by the memory.  These alarams shall be reset when the system resets.  Note that if they are re-discovered they can be reasserted.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AddressParityError": {
-                    "description": "Address parity error detected status.",
-                    "longDescription": "The value of this property shall be true if an Address Parity Error was detected which could not be corrected by retry.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "CorrectableECCError": {
-                    "description": "Correctable data error threshold crossing alarm trip detected status.",
-                    "longDescription": "The value of this property shall be true if the correctable error threshold crossing alarm trip was detected.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SpareBlock": {
-                    "description": "Spare block capacity crossing alarm trip detected status.",
-                    "longDescription": "The value of this property shall be true if the spare block capacity crossing alarm trip was detected.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Temperature": {
-                    "description": "Temperature threshold crossing alarm trip detected status.",
-                    "longDescription": "The value of this property shall be true if a temperature threshold alarm trip was detected.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "UncorrectableECCError": {
-                    "description": "Uncorrectable data error threshold crossing alarm trip detected status.",
-                    "longDescription": "The value of this property shall be true if the uncorrectable error threshold alarm trip was detected.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "ClearCurrentPeriod": {
-            "additionalProperties": false,
-            "description": "This sets the CurrentPeriod object values to zero.",
-            "longDescription": "This action shall set the CurrentPeriod object property values to zero.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "CurrentPeriod": {
-            "additionalProperties": false,
-            "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.",
-            "longDescription": "This type shall describe the metrics of the memory since last time the ClearCurrentPeriod Action was performed or the system reset.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BlocksRead": {
-                    "description": "Number of blocks read since reset.",
-                    "longDescription": "The value of this property shall be number of blocks read since reset.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "BlocksWritten": {
-                    "description": "Number of blocks written since reset.",
-                    "longDescription": "The value of this property shall be mumber of blocks written since reset.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "HealthData": {
-            "additionalProperties": false,
-            "description": "This type describes the health information of the memory.",
-            "longDescription": "This type shall contain properties which describe the HealthData metrics for the current resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AlarmTrips": {
-                    "$ref": "#/definitions/AlarmTrips",
-                    "description": "Alarm trip information about the memory.",
-                    "longDescription": "This object shall contain properties describe the types of alarms that have been raised by the memory."
-                },
-                "DataLossDetected": {
-                    "description": "Data loss detection status.",
-                    "longDescription": "The value of this property shall be data loss detection status, with true indicating data loss detected.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "LastShutdownSuccess": {
-                    "description": "Status of last shutdown.",
-                    "longDescription": "The value of this property shall be the status ofthe  last shutdown, with true indicating success.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "PerformanceDegraded": {
-                    "description": "Performance degraded mode status.",
-                    "longDescription": "The value of this property shall be performance degraded mode status, with true indicating perfomance degraded.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "PredictedMediaLifeLeftPercent": {
-                    "description": "The percentage of reads and writes that are predicted to still be available for the media.",
-                    "longDescription": "This property shall contain an indicator of the percentage of life remaining in the media.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "RemainingSpareBlockPercentage": {
-                    "description": "Remaining spare blocks in percentage.",
-                    "longDescription": "The value of this property shall be the remaining spare blocks in percentage.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "LifeTime": {
-            "additionalProperties": false,
-            "description": "This object contains the Memory metrics for the lifetime of the Memory.",
-            "longDescription": "This type shall describe the metrics of the memory since manufacturing.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BlocksRead": {
-                    "description": "Number of blocks read for the lifetime of the Memory.",
-                    "longDescription": "The value of this property shall be number of blocks read for the lifetime of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "BlocksWritten": {
-                    "description": "Number of blocks written for the lifetime of the Memory.",
-                    "longDescription": "The value of this property shall be number of blocks written for the lifetime of the Memory.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "MemoryMetrics": {
-            "additionalProperties": false,
-            "description": "MemoryMetrics contains usage and health statistics for a single Memory module or device instance.",
-            "longDescription": "This resource shall be used to represent the Memory Metrics for a single Memory device in a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "BlockSizeBytes": {
-                    "description": "Block size in bytes.",
-                    "longDescription": "The value of this property shall be the block size in bytes of all stucture elements.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By"
-                },
-                "CurrentPeriod": {
-                    "$ref": "#/definitions/CurrentPeriod",
-                    "description": "This object contains the Memory metrics since last reset or ClearCurrentPeriod action.",
-                    "longDescription": "This object shall contain properties which describe the CurrentPeriod metrics for the current resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "HealthData": {
-                    "$ref": "#/definitions/HealthData",
-                    "description": "This object describes the health information of the memory.",
-                    "longDescription": "This object shall contain properties which describe the HealthData metrics for the current resource."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LifeTime": {
-                    "$ref": "#/definitions/LifeTime",
-                    "description": "This object contains the Memory metrics for the lifetime of the Memory.",
-                    "longDescription": "This object shall contain properties which describe the LifeTime metrics for the current resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/MemoryMetrics",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "MemoryMetrics Schema File",
+    "Schema": "#MemoryMetrics.MemoryMetrics",
+    "Description": "MemoryMetrics Schema File Location",
+    "Id": "MemoryMetrics",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/MemoryMetrics.json",
+            "Uri": "/redfish/v1/JSONSchemas/MemoryMetrics/MemoryMetrics.json"
         }
-    },
-    "title": "#MemoryMetrics.v1_1_3.MemoryMetrics"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Message/Message.json b/static/redfish/v1/JsonSchemas/Message/Message.json
new file mode 100644
index 0000000..deeba60
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Message/Message.json
@@ -0,0 +1,87 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#Message.v1_0_5",
+    "definitions": {
+        "Message": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "MessageId": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "This is the key for this message which can be used to look up the message in a message registry.",
+                    "longDescription": "This property shall be a key into message registry as described in the Redfish specification."
+                },
+                "Message": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "This is the human readable message, if provided.",
+                    "longDescription": "This property shall contain an optional human readable message."
+                },
+                "RelatedProperties": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    },
+                    "readonly": true,
+                    "description": "This is an array of properties described by the message.",
+                    "longDescription": "This property shall contain an array of JSON Pointers indicating the properties described by the message, if appropriate for the message."
+                },
+                "MessageArgs": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    },
+                    "readonly": true,
+                    "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.",
+                    "longDescription": "This property shall contain the message substitution arguments for the specific message referenced by the MessageId and shall only be included if the MessageId is present."
+                },
+                "Severity": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "This is the severity of the errors.",
+                    "longDescription": "The value of this property shall be the severity of the error, as defined in the Status section of the Redfish specificaiton."
+                },
+                "Resolution": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Used to provide suggestions on how to resolve the situation that caused the error.",
+                    "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present."
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "required": [
+                "MessageId"
+            ],
+            "description": "This type describes a Message returned by the Redfish service.",
+            "longDescription": "This type shall define a Message as described in the Redfish specification."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/Message/index.json b/static/redfish/v1/JsonSchemas/Message/index.json
index deeba60..1adc7f4 100644
--- a/static/redfish/v1/JsonSchemas/Message/index.json
+++ b/static/redfish/v1/JsonSchemas/Message/index.json
@@ -1,87 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#Message.v1_0_5",
-    "definitions": {
-        "Message": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "MessageId": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "This is the key for this message which can be used to look up the message in a message registry.",
-                    "longDescription": "This property shall be a key into message registry as described in the Redfish specification."
-                },
-                "Message": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "This is the human readable message, if provided.",
-                    "longDescription": "This property shall contain an optional human readable message."
-                },
-                "RelatedProperties": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    },
-                    "readonly": true,
-                    "description": "This is an array of properties described by the message.",
-                    "longDescription": "This property shall contain an array of JSON Pointers indicating the properties described by the message, if appropriate for the message."
-                },
-                "MessageArgs": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    },
-                    "readonly": true,
-                    "description": "This array of message arguments are substituted for the arguments in the message when looked up in the message registry.",
-                    "longDescription": "This property shall contain the message substitution arguments for the specific message referenced by the MessageId and shall only be included if the MessageId is present."
-                },
-                "Severity": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "This is the severity of the errors.",
-                    "longDescription": "The value of this property shall be the severity of the error, as defined in the Status section of the Redfish specificaiton."
-                },
-                "Resolution": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Used to provide suggestions on how to resolve the situation that caused the error.",
-                    "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present."
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "required": [
-                "MessageId"
-            ],
-            "description": "This type describes a Message returned by the Redfish service.",
-            "longDescription": "This type shall define a Message as described in the Redfish specification."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Message",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Message Schema File",
+    "Schema": "#Message.Message",
+    "Description": "Message Schema File Location",
+    "Id": "Message",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Message.json",
+            "Uri": "/redfish/v1/JSONSchemas/Message/Message.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json b/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json
new file mode 100644
index 0000000..1fc7d04
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json
@@ -0,0 +1,256 @@
+{
+    "$ref": "#/definitions/MessageRegistry",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Message": {
+            "additionalProperties": false,
+            "description": "This type shall reprensent how a message is defined within the registry.",
+            "longDescription": "The type shall represent how a message is defined within within a message registry.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Description": {
+                    "description": "This is a short description of how and when this message is to be used.",
+                    "longDescription": "The value of this property shall indicate how and when this message is returned by the Redfish service.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Message": {
+                    "description": "The actual message.",
+                    "longDescription": "The value of this property shall be the message to be displayed.  If a %integer is included in part of the string, it shall be used to represent a string substitution for any MessageArgs accompanying the message, in order.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "NumberOfArgs": {
+                    "description": "The number of arguments to be expected to be passed in as MessageArgs for this message.",
+                    "longDescription": "The value of this property shall be the number of MessageArgs that are expected to be substituted in the Message in the locations within the Message marked by %<integer>.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "ParamTypes": {
+                    "description": "The MessageArg types, in order, for the message.",
+                    "items": {
+                        "$ref": "#/definitions/ParamType"
+                    },
+                    "longDescription": "The value of this property shall be an ordered array of parameter types which match the types of the MessageArgs, in order.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Resolution": {
+                    "description": "Used to provide suggestions on how to resolve the situation that caused the error.",
+                    "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Severity": {
+                    "description": "This is the severity of the message.",
+                    "longDescription": "The value of this property shall be the severity of the condition resulting in the message, as defined in the Status section of the Redfish specification.",
+                    "readonly": true,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "Description",
+                "Message",
+                "Severity",
+                "NumberOfArgs",
+                "Resolution"
+            ],
+            "type": "object"
+        },
+        "MessageProperty": {
+            "additionalProperties": false,
+            "description": "The pattern type indicates that a free-form string is the unique identifier for the message within the registry.",
+            "longDescription": "The pattern type shall represent the suffix to be used in the MessageId and shall be unique within this message registry.",
+            "patternProperties": {
+                "[A-Za-z0-9]+": {
+                    "$ref": "#/definitions/Message"
+                },
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "MessageRegistry": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for all Message Registries.  It represents the properties for the registries themselves.  The MessageId is formed per the Redfish specification.  It consists of the RegistryPrefix concatenated with the version concatenated with the unique identifier for the message registry entry.",
+            "longDescription": "This resource shall be used to represent a message registry for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Language": {
+                    "description": "This is the RFC 5646 compliant language code for the registry.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Messages": {
+                    "$ref": "#/definitions/MessageProperty",
+                    "description": "The pattern property indicates that a free-form string is the unique identifier for the message within the registry.",
+                    "longDescription": "The pattern property shall represent the suffix to be used in the MessageId and shall be unique within this message registry."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OwningEntity": {
+                    "description": "This is the organization or company that publishes this registry.",
+                    "longDescription": "The value of this property shall be a string that represents the publisher of this registry.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "RegistryPrefix": {
+                    "description": "This is the single word prefix used to form a messageID structure.",
+                    "longDescription": "The value of this property shall be the prefix used in messageIDs which uniquely identifies all of the messages in this registry as belonging to this registry.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "RegistryVersion": {
+                    "description": "This is the message registry version which is used in the middle portion of a messageID.",
+                    "longDescription": "The value of this property shall be the version of this message registry.   The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
+                    "readonly": true,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "Language",
+                "RegistryPrefix",
+                "RegistryVersion",
+                "OwningEntity",
+                "Messages",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ParamType": {
+            "enum": [
+                "string",
+                "number"
+            ],
+            "enumDescriptions": {
+                "number": "The parameter is a number.",
+                "string": "The parameter is a string."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#MessageRegistry.v1_1_1.MessageRegistry"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MessageRegistry/index.json b/static/redfish/v1/JsonSchemas/MessageRegistry/index.json
index 1fc7d04..df35948 100644
--- a/static/redfish/v1/JsonSchemas/MessageRegistry/index.json
+++ b/static/redfish/v1/JsonSchemas/MessageRegistry/index.json
@@ -1,256 +1,21 @@
 {
-    "$ref": "#/definitions/MessageRegistry",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Message": {
-            "additionalProperties": false,
-            "description": "This type shall reprensent how a message is defined within the registry.",
-            "longDescription": "The type shall represent how a message is defined within within a message registry.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Description": {
-                    "description": "This is a short description of how and when this message is to be used.",
-                    "longDescription": "The value of this property shall indicate how and when this message is returned by the Redfish service.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Message": {
-                    "description": "The actual message.",
-                    "longDescription": "The value of this property shall be the message to be displayed.  If a %integer is included in part of the string, it shall be used to represent a string substitution for any MessageArgs accompanying the message, in order.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "NumberOfArgs": {
-                    "description": "The number of arguments to be expected to be passed in as MessageArgs for this message.",
-                    "longDescription": "The value of this property shall be the number of MessageArgs that are expected to be substituted in the Message in the locations within the Message marked by %<integer>.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "ParamTypes": {
-                    "description": "The MessageArg types, in order, for the message.",
-                    "items": {
-                        "$ref": "#/definitions/ParamType"
-                    },
-                    "longDescription": "The value of this property shall be an ordered array of parameter types which match the types of the MessageArgs, in order.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Resolution": {
-                    "description": "Used to provide suggestions on how to resolve the situation that caused the error.",
-                    "longDescription": "This property shall contain an override of the Resolution of the message in message registry, if present.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Severity": {
-                    "description": "This is the severity of the message.",
-                    "longDescription": "The value of this property shall be the severity of the condition resulting in the message, as defined in the Status section of the Redfish specification.",
-                    "readonly": true,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "Description",
-                "Message",
-                "Severity",
-                "NumberOfArgs",
-                "Resolution"
-            ],
-            "type": "object"
-        },
-        "MessageProperty": {
-            "additionalProperties": false,
-            "description": "The pattern type indicates that a free-form string is the unique identifier for the message within the registry.",
-            "longDescription": "The pattern type shall represent the suffix to be used in the MessageId and shall be unique within this message registry.",
-            "patternProperties": {
-                "[A-Za-z0-9]+": {
-                    "$ref": "#/definitions/Message"
-                },
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "MessageRegistry": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for all Message Registries.  It represents the properties for the registries themselves.  The MessageId is formed per the Redfish specification.  It consists of the RegistryPrefix concatenated with the version concatenated with the unique identifier for the message registry entry.",
-            "longDescription": "This resource shall be used to represent a message registry for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Language": {
-                    "description": "This is the RFC 5646 compliant language code for the registry.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Messages": {
-                    "$ref": "#/definitions/MessageProperty",
-                    "description": "The pattern property indicates that a free-form string is the unique identifier for the message within the registry.",
-                    "longDescription": "The pattern property shall represent the suffix to be used in the MessageId and shall be unique within this message registry."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OwningEntity": {
-                    "description": "This is the organization or company that publishes this registry.",
-                    "longDescription": "The value of this property shall be a string that represents the publisher of this registry.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "RegistryPrefix": {
-                    "description": "This is the single word prefix used to form a messageID structure.",
-                    "longDescription": "The value of this property shall be the prefix used in messageIDs which uniquely identifies all of the messages in this registry as belonging to this registry.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "RegistryVersion": {
-                    "description": "This is the message registry version which is used in the middle portion of a messageID.",
-                    "longDescription": "The value of this property shall be the version of this message registry.   The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
-                    "readonly": true,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "Language",
-                "RegistryPrefix",
-                "RegistryVersion",
-                "OwningEntity",
-                "Messages",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ParamType": {
-            "enum": [
-                "string",
-                "number"
-            ],
-            "enumDescriptions": {
-                "number": "The parameter is a number.",
-                "string": "The parameter is a string."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/MessageRegistry",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "MessageRegistry Schema File",
+    "Schema": "#MessageRegistry.MessageRegistry",
+    "Description": "MessageRegistry Schema File Location",
+    "Id": "MessageRegistry",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/MessageRegistry.json",
+            "Uri": "/redfish/v1/JSONSchemas/MessageRegistry/MessageRegistry.json"
         }
-    },
-    "title": "#MessageRegistry.v1_1_1.MessageRegistry"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json b/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json
new file mode 100644
index 0000000..a8d924f
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json
@@ -0,0 +1,182 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#MessageRegistryFile.v1_1_0.MessageRegistryFile",
+    "$ref": "#/definitions/MessageRegistryFile",
+    "definitions": {
+        "Location": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "Language": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "The language code for the file the schema is in.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'."
+                },
+                "Uri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "Link to locally available URI for schema.",
+                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for individual schema files.  The file name portion of the URI shall conform to the syntax specified in the Redfish specification."
+                },
+                "ArchiveUri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.",
+                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for archive files (zip or other formats).  The value of ArchiveFile shall have the file name of the individual schema file within the archive file."
+                },
+                "PublicationUri": {
+                    "type": "string",
+                    "format": "uri",
+                    "readonly": true,
+                    "description": "Link to publicly available (canonical) URI for schema.",
+                    "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file.  This property shall only be used for individual schema files."
+                },
+                "ArchiveFile": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.",
+                    "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property. The file name shall conform to the syntax specified in the Redfish specification."
+                }
+            },
+            "description": "Location information for a schema file.",
+            "longDescription": "This type shall define Location information for a schema file."
+        },
+        "MessageRegistryFile": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Languages": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    },
+                    "readonly": true,
+                    "description": "Language codes for the schemas available.",
+                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code."
+                },
+                "Registry": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "The Registry Name, Major and Minor version used in MessageID construction.",
+                    "longDescription": "The value of this property shall be the value of the Registry Name, Major and Minor version and shall conform to the syntax specified in the Redfish specification for the MessageId property without the MessageKey."
+                },
+                "Location": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/Location"
+                    },
+                    "description": "Location information for this schema file."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name",
+                "Languages",
+                "Registry",
+                "Location"
+            ],
+            "description": "This is the schema definition for the Schema File locator resource.",
+            "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/MessageRegistryFile/index.json b/static/redfish/v1/JsonSchemas/MessageRegistryFile/index.json
index a8d924f..a9d4bc1 100644
--- a/static/redfish/v1/JsonSchemas/MessageRegistryFile/index.json
+++ b/static/redfish/v1/JsonSchemas/MessageRegistryFile/index.json
@@ -1,182 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#MessageRegistryFile.v1_1_0.MessageRegistryFile",
-    "$ref": "#/definitions/MessageRegistryFile",
-    "definitions": {
-        "Location": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "Language": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "The language code for the file the schema is in.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC5646 language code or the string 'default'."
-                },
-                "Uri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "Link to locally available URI for schema.",
-                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for individual schema files.  The file name portion of the URI shall conform to the syntax specified in the Redfish specification."
-                },
-                "ArchiveUri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "If the schema is hosted on the service in an archive file, this is the link to the archive file.",
-                    "longDescription": "The value of this property shall be a URI co-located with the Redfish service that specifies the location of the schema file.  This property shall only be used for archive files (zip or other formats).  The value of ArchiveFile shall have the file name of the individual schema file within the archive file."
-                },
-                "PublicationUri": {
-                    "type": "string",
-                    "format": "uri",
-                    "readonly": true,
-                    "description": "Link to publicly available (canonical) URI for schema.",
-                    "longDescription": "The value of this property shall be a URI not co-located with the Redfish service that specifies the canonical location of the schema file.  This property shall only be used for individual schema files."
-                },
-                "ArchiveFile": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "If the schema is hosted on the service in an archive file, this is the name of the file within the archive.",
-                    "longDescription": "The value of this property shall be the file name of the individual schema file within the archive file specified by the ArchiveUri property. The file name shall conform to the syntax specified in the Redfish specification."
-                }
-            },
-            "description": "Location information for a schema file.",
-            "longDescription": "This type shall define Location information for a schema file."
-        },
-        "MessageRegistryFile": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Languages": {
-                    "type": "array",
-                    "items": {
-                        "type": "string"
-                    },
-                    "readonly": true,
-                    "description": "Language codes for the schemas available.",
-                    "longDescription": "The value of this property shall be a string consisting of an RFC 5646 language code."
-                },
-                "Registry": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "The Registry Name, Major and Minor version used in MessageID construction.",
-                    "longDescription": "The value of this property shall be the value of the Registry Name, Major and Minor version and shall conform to the syntax specified in the Redfish specification for the MessageId property without the MessageKey."
-                },
-                "Location": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/Location"
-                    },
-                    "description": "Location information for this schema file."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name",
-                "Languages",
-                "Registry",
-                "Location"
-            ],
-            "description": "This is the schema definition for the Schema File locator resource.",
-            "longDescription": "This resource shall be used to represent the Schema File locator resource for a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/MessageRegistryFile",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "MessageRegistryFile Schema File",
+    "Schema": "#MessageRegistryFile.MessageRegistryFile",
+    "Description": "MessageRegistryFile Schema File Location",
+    "Id": "MessageRegistryFile",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/MessageRegistryFile.json",
+            "Uri": "/redfish/v1/JSONSchemas/MessageRegistryFile/MessageRegistryFile.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json b/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json
new file mode 100644
index 0000000..0e1252a
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/NetworkAdapter/NetworkAdapter.json
@@ -0,0 +1,609 @@
+{
+    "$ref": "#/definitions/NetworkAdapter",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#NetworkAdapter.ResetSettingsToDefault": {
+                    "$ref": "#/definitions/ResetSettingsToDefault"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "ControllerCapabilities": {
+            "additionalProperties": false,
+            "description": "The capabilities of a controller.",
+            "longDescription": "This type shall describe the capabilities of a controller.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DataCenterBridging": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/DataCenterBridging"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Data Center Bridging (DCB) for this controller.",
+                    "longDescription": "This object shall contain capability, status, and configuration values related to Data Center Bridging (DCB) for this controller."
+                },
+                "NPIV": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/NPIV"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "N_Port ID Virtualization (NPIV) capabilties for this controller.",
+                    "longDescription": "This object shall contain N_Port ID Virtualization (NPIV) capabilties for this controller."
+                },
+                "NetworkDeviceFunctionCount": {
+                    "description": "The maximum number of physical functions available on this controller.",
+                    "longDescription": "The value of this property shall be the number of physical functions available on this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "NetworkPortCount": {
+                    "description": "The number of physical ports on this controller.",
+                    "longDescription": "The value of this property shall be the number of physical ports on this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "VirtualizationOffload": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/VirtualizationOffload"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Virtualization offload for this controller.",
+                    "longDescription": "This object shall contain capability, status, and configuration values related to virtualization offload for this controller."
+                }
+            },
+            "type": "object"
+        },
+        "ControllerLinks": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "NetworkDeviceFunctions": {
+                    "description": "Contains the members of this collection.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetworkDeviceFunctions@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "NetworkPorts": {
+                    "description": "Contains the members of this collection.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetworkPorts@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "PCIeDevices": {
+                    "description": "Contains the members of this collection.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PCIeDevices@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "Controllers": {
+            "additionalProperties": false,
+            "description": "A network controller ASIC that makes up part of a NetworkAdapter.",
+            "longDescription": "This type shall describe a network controller ASIC that makes up part of a NetworkAdapter.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ControllerCapabilities": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ControllerCapabilities"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The capabilities of this controller.",
+                    "longDescription": "The value of this property shall contain the capabilities of this controller."
+                },
+                "FirmwarePackageVersion": {
+                    "description": "The version of the user-facing firmware package.",
+                    "longDescription": "The value of this property shall be the version number of the user-facing firmware package.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Links": {
+                    "$ref": "#/definitions/ControllerLinks",
+                    "description": "Links.",
+                    "longDescription": "Links for this controller."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                }
+            },
+            "type": "object"
+        },
+        "DataCenterBridging": {
+            "additionalProperties": false,
+            "description": "Data Center Bridging (DCB) for capabilities of a controller.",
+            "longDescription": "This type shall describe the capability, status, and configuration values related to Data Center Bridging (DCB) for a controller.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Capable": {
+                    "description": "Whether this controller is capable of Data Center Bridging (DCB).",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this controller is capable of Data Center Bridging (DCB).",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "NPIV": {
+            "additionalProperties": false,
+            "description": "N_Port ID Virtualization (NPIV) capabilties for a controller.",
+            "longDescription": "This type shall contain N_Port ID Virtualization (NPIV) capabilties for a controller.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MaxDeviceLogins": {
+                    "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.",
+                    "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MaxPortLogins": {
+                    "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.",
+                    "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "NetworkAdapter": {
+            "additionalProperties": false,
+            "description": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network.  Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.",
+            "longDescription": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network.  Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this adapter.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "Controllers": {
+                    "description": "The set of network controllers ASICs that make up this NetworkAdapter.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/Controllers"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "The value of this property shall contain the set of network controllers ASICs that make up this NetworkAdapter.",
+                    "type": "array"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Manufacturer": {
+                    "description": "The manufacturer or OEM of this network adapter.",
+                    "longDescription": "The value of this property shall contain a value that represents the manufacturer of the network adapter.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The model string for this network adapter.",
+                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this network adapter.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkDeviceFunctions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection",
+                    "description": "Contains the members of this collection.",
+                    "readonly": true
+                },
+                "NetworkPorts": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection",
+                    "description": "Contains the members of this collection.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "Part number for this network adapter.",
+                    "longDescription": "The value of this property shall contain the part number for the network adapter as defined by the manufacturer.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SKU": {
+                    "description": "The manufacturer SKU for this network adapter.",
+                    "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the network adapter.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this network adapter.",
+                    "longDescription": "The value of this property shall contain the serial number for the network adapter.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ResetSettingsToDefault": {
+            "additionalProperties": false,
+            "description": "This action is to clear the settings back to factory defaults.",
+            "longDescription": "This action shall perform a reset of all active and pending settings back to factory default settings upon reset of the network adapter.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "SRIOV": {
+            "additionalProperties": false,
+            "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
+            "longDescription": "This type shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "SRIOVVEPACapable": {
+                    "description": "Whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "VirtualFunction": {
+            "additionalProperties": false,
+            "description": "A virtual function of a controller.",
+            "longDescription": "This type shall describe the capability, status, and configuration values related to a virtual function for a controller.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DeviceMaxCount": {
+                    "description": "The maximum number of Virtual Functions (VFs) supported by this controller.",
+                    "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported by this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MinAssignmentGroupSize": {
+                    "description": "The minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.",
+                    "longDescription": "The value of this property shall be the minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "NetworkPortMaxCount": {
+                    "description": "The maximum number of Virtual Functions (VFs) supported per network port for this controller.",
+                    "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported per network port for this controller.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "VirtualizationOffload": {
+            "additionalProperties": false,
+            "description": "A Virtualization offload capability of a controller.",
+            "longDescription": "This type shall describe the capability, status, and configuration values related to a virtualization offload for a controller.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "SRIOV": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SRIOV"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
+                    "longDescription": "This object shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities."
+                },
+                "VirtualFunction": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/VirtualFunction"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#NetworkAdapter.v1_1_0.NetworkAdapter"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkAdapter/index.json b/static/redfish/v1/JsonSchemas/NetworkAdapter/index.json
index 0e1252a..8e1bb24 100644
--- a/static/redfish/v1/JsonSchemas/NetworkAdapter/index.json
+++ b/static/redfish/v1/JsonSchemas/NetworkAdapter/index.json
@@ -1,609 +1,21 @@
 {
-    "$ref": "#/definitions/NetworkAdapter",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#NetworkAdapter.ResetSettingsToDefault": {
-                    "$ref": "#/definitions/ResetSettingsToDefault"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "ControllerCapabilities": {
-            "additionalProperties": false,
-            "description": "The capabilities of a controller.",
-            "longDescription": "This type shall describe the capabilities of a controller.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DataCenterBridging": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/DataCenterBridging"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Data Center Bridging (DCB) for this controller.",
-                    "longDescription": "This object shall contain capability, status, and configuration values related to Data Center Bridging (DCB) for this controller."
-                },
-                "NPIV": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/NPIV"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "N_Port ID Virtualization (NPIV) capabilties for this controller.",
-                    "longDescription": "This object shall contain N_Port ID Virtualization (NPIV) capabilties for this controller."
-                },
-                "NetworkDeviceFunctionCount": {
-                    "description": "The maximum number of physical functions available on this controller.",
-                    "longDescription": "The value of this property shall be the number of physical functions available on this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "NetworkPortCount": {
-                    "description": "The number of physical ports on this controller.",
-                    "longDescription": "The value of this property shall be the number of physical ports on this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "VirtualizationOffload": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/VirtualizationOffload"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Virtualization offload for this controller.",
-                    "longDescription": "This object shall contain capability, status, and configuration values related to virtualization offload for this controller."
-                }
-            },
-            "type": "object"
-        },
-        "ControllerLinks": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "NetworkDeviceFunctions": {
-                    "description": "Contains the members of this collection.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetworkDeviceFunctions@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "NetworkPorts": {
-                    "description": "Contains the members of this collection.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetworkPorts@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "PCIeDevices": {
-                    "description": "Contains the members of this collection.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PCIeDevices@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "Controllers": {
-            "additionalProperties": false,
-            "description": "A network controller ASIC that makes up part of a NetworkAdapter.",
-            "longDescription": "This type shall describe a network controller ASIC that makes up part of a NetworkAdapter.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ControllerCapabilities": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ControllerCapabilities"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The capabilities of this controller.",
-                    "longDescription": "The value of this property shall contain the capabilities of this controller."
-                },
-                "FirmwarePackageVersion": {
-                    "description": "The version of the user-facing firmware package.",
-                    "longDescription": "The value of this property shall be the version number of the user-facing firmware package.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Links": {
-                    "$ref": "#/definitions/ControllerLinks",
-                    "description": "Links.",
-                    "longDescription": "Links for this controller."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                }
-            },
-            "type": "object"
-        },
-        "DataCenterBridging": {
-            "additionalProperties": false,
-            "description": "Data Center Bridging (DCB) for capabilities of a controller.",
-            "longDescription": "This type shall describe the capability, status, and configuration values related to Data Center Bridging (DCB) for a controller.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Capable": {
-                    "description": "Whether this controller is capable of Data Center Bridging (DCB).",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this controller is capable of Data Center Bridging (DCB).",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "NPIV": {
-            "additionalProperties": false,
-            "description": "N_Port ID Virtualization (NPIV) capabilties for a controller.",
-            "longDescription": "This type shall contain N_Port ID Virtualization (NPIV) capabilties for a controller.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MaxDeviceLogins": {
-                    "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.",
-                    "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed simultaneously from all ports on this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MaxPortLogins": {
-                    "description": "The maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.",
-                    "longDescription": "The value of this property shall be the maximum number of N_Port ID Virtualization (NPIV) logins allowed per physical port on this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "NetworkAdapter": {
-            "additionalProperties": false,
-            "description": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network.  Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.",
-            "longDescription": "A NetworkAdapter represents the physical network adapter capable of connecting to a computer network.  Examples include but are not limited to Ethernet, Fibre Channel, and converged network adapters.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this adapter.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "Controllers": {
-                    "description": "The set of network controllers ASICs that make up this NetworkAdapter.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/Controllers"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "The value of this property shall contain the set of network controllers ASICs that make up this NetworkAdapter.",
-                    "type": "array"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Manufacturer": {
-                    "description": "The manufacturer or OEM of this network adapter.",
-                    "longDescription": "The value of this property shall contain a value that represents the manufacturer of the network adapter.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The model string for this network adapter.",
-                    "longDescription": "The value of this property shall contain the information about how the manufacturer references this network adapter.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkDeviceFunctions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection",
-                    "description": "Contains the members of this collection.",
-                    "readonly": true
-                },
-                "NetworkPorts": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection",
-                    "description": "Contains the members of this collection.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "Part number for this network adapter.",
-                    "longDescription": "The value of this property shall contain the part number for the network adapter as defined by the manufacturer.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SKU": {
-                    "description": "The manufacturer SKU for this network adapter.",
-                    "longDescription": "The value of this property shall contain the Stock Keeping Unit (SKU) for the network adapter.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this network adapter.",
-                    "longDescription": "The value of this property shall contain the serial number for the network adapter.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ResetSettingsToDefault": {
-            "additionalProperties": false,
-            "description": "This action is to clear the settings back to factory defaults.",
-            "longDescription": "This action shall perform a reset of all active and pending settings back to factory default settings upon reset of the network adapter.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "SRIOV": {
-            "additionalProperties": false,
-            "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
-            "longDescription": "This type shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "SRIOVVEPACapable": {
-                    "description": "Whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this controller supports Single Root Input/Output Virtualization (SR-IOV) in Virtual Ethernet Port Aggregator (VEPA) mode.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "VirtualFunction": {
-            "additionalProperties": false,
-            "description": "A virtual function of a controller.",
-            "longDescription": "This type shall describe the capability, status, and configuration values related to a virtual function for a controller.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DeviceMaxCount": {
-                    "description": "The maximum number of Virtual Functions (VFs) supported by this controller.",
-                    "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported by this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MinAssignmentGroupSize": {
-                    "description": "The minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.",
-                    "longDescription": "The value of this property shall be the minimum number of Virtual Functions (VFs) that can be allocated or moved between physical functions for this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "NetworkPortMaxCount": {
-                    "description": "The maximum number of Virtual Functions (VFs) supported per network port for this controller.",
-                    "longDescription": "The value of this property shall be the maximum number of Virtual Functions (VFs) supported per network port for this controller.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "VirtualizationOffload": {
-            "additionalProperties": false,
-            "description": "A Virtualization offload capability of a controller.",
-            "longDescription": "This type shall describe the capability, status, and configuration values related to a virtualization offload for a controller.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "SRIOV": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SRIOV"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Single-Root Input/Output Virtualization (SR-IOV) capabilities.",
-                    "longDescription": "This object shall contain Single-Root Input/Output Virtualization (SR-IOV) capabilities."
-                },
-                "VirtualFunction": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/VirtualFunction"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/NetworkAdapter",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "NetworkAdapter Schema File",
+    "Schema": "#NetworkAdapter.NetworkAdapter",
+    "Description": "NetworkAdapter Schema File Location",
+    "Id": "NetworkAdapter",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/NetworkAdapter.json",
+            "Uri": "/redfish/v1/JSONSchemas/NetworkAdapter/NetworkAdapter.json"
         }
-    },
-    "title": "#NetworkAdapter.v1_1_0.NetworkAdapter"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json b/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json
new file mode 100644
index 0000000..f942f51
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json
@@ -0,0 +1,852 @@
+{
+    "$ref": "#/definitions/NetworkDeviceFunction",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "AuthenticationMethod": {
+            "enum": [
+                "None",
+                "CHAP",
+                "MutualCHAP"
+            ],
+            "enumDescriptions": {
+                "CHAP": "iSCSI Challenge Handshake Authentication Protocol (CHAP) authentication is used.",
+                "MutualCHAP": "iSCSI Mutual Challenge Handshake Authentication Protocol (CHAP) authentication is used.",
+                "None": "No iSCSI authentication is used."
+            },
+            "type": "string"
+        },
+        "BootMode": {
+            "enum": [
+                "Disabled",
+                "PXE",
+                "iSCSI",
+                "FibreChannel",
+                "FibreChannelOverEthernet"
+            ],
+            "enumDescriptions": {
+                "Disabled": "Do not indicate to UEFI/BIOS that this device is bootable.",
+                "FibreChannel": "Boot this device using the embedded Fibre Channel support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to FibreChannel.",
+                "FibreChannelOverEthernet": "Boot this device using the embedded Fibre Channel over Ethernet (FCoE) boot support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to FibreChannelOverEthernet.",
+                "PXE": "Boot this device using the embedded PXE support.  Only applicable if the NetworkDeviceFunctionType is set to Ethernet.",
+                "iSCSI": "Boot this device using the embedded iSCSI boot support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to iSCSI."
+            },
+            "type": "string"
+        },
+        "BootTargets": {
+            "additionalProperties": false,
+            "description": "A Fibre Channel boot target configured for a network device function.",
+            "longDescription": "This type shall describe a Fibre Channel boot target configured for a network device function.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "BootPriority": {
+                    "description": "The relative priority for this entry in the boot targets array.",
+                    "longDescription": "The value of this property shall be the relative priority for this entry in the boot targets array.  Lower numbers shall represent higher priority, with zero being the highest priority.  The BootPriority shall be unique for all entries of the BootTargets array.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "LUNID": {
+                    "description": "The Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.",
+                    "longDescription": "The value of this property shall be the Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "WWPN": {
+                    "description": "The World-Wide Port Name to boot from.",
+                    "longDescription": "The value of this property shall be World-Wide Port Name (WWPN) to boot from.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "Ethernet": {
+            "additionalProperties": false,
+            "description": "This type describes Ethernet capabilities, status, and configuration of a network device function.",
+            "longDescription": "This type shall describe the Ethernet capabilities, status, and configuration values for a network device function.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MACAddress": {
+                    "description": "This is the currently configured MAC address of the (logical port) network device function.",
+                    "longDescription": "The value of this property shall be the effective current MAC Address of this network device function. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MTUSize": {
+                    "description": "The Maximum Transmission Unit (MTU) configured for this network device function.",
+                    "longDescription": "The Maximum Transmission Unit (MTU) configured for this Network Device Function.  This value serves as a default for the OS driver when booting.  The value only takes-effect on boot.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PermanentMACAddress": {
+                    "description": "This is the permanent MAC address assigned to this network device function (physical function).",
+                    "longDescription": "The value of this property shall be the Permanent MAC Address of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "FibreChannel": {
+            "additionalProperties": false,
+            "description": "This type describes Fibre Channel capabilities, status, and configuration of a network device function.",
+            "longDescription": "This object shall describe the Fibre Channel capabilities, status, and configuration values for a network device function.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AllowFIPVLANDiscovery": {
+                    "description": "Whether the FCoE Initialization Protocol (FIP) is used for populating the FCoE VLAN Id.",
+                    "longDescription": "For FCoE connections, the value of this property shall be a boolean indicating whether the FIP VLAN Discovery Protocol is used to determine the FCoE VLAN ID selected by the network device function for the FCoE connection.  If true, and the FIP VLAN Discovery succeeds, the FCoEActiveVLANId property shall reflect the FCoE VLAN ID to be used for all FCoE traffic.  If false, or if the FIP VLAN Discovery protocol fails, the FCoELocalVLANId shall be used for all FCoE traffic and the FCoEActiveVLANId shall reflect the FCoELocalVLANId.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "BootTargets": {
+                    "description": "An array of Fibre Channel boot targets configured for this network device function.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/BootTargets"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "The value of this property shall be an array of Fibre Channel boot targets configured for this network device function.",
+                    "type": "array"
+                },
+                "FCoEActiveVLANId": {
+                    "description": "The active FCoE VLAN ID.",
+                    "longDescription": "For FCoE connections, the value of this property shall be null or a VLAN ID currently being used for FCoE traffic.  When the FCoE link is down this value shall be null.  When the FCoE link is up this value shall be either the FCoELocalVLANId property or a VLAN discovered via the FIP protocol.",
+                    "maximum": 4094,
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "FCoELocalVLANId": {
+                    "description": "The locally configured FCoE VLAN ID.",
+                    "longDescription": "For FCoE connections, the value of this property shall be the VLAN ID configured locally by setting this property.  This value shall be used for FCoE traffic to this network device function during boot unless AllowFIPVLANDiscovery is true and a valid FCoE VLAN ID is found via the FIP VLAN Discovery Protocol.",
+                    "maximum": 4094,
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PermanentWWNN": {
+                    "description": "This is the permanent WWNN address assigned to this network device function (physical function).",
+                    "longDescription": "The value of this property shall be the permanent World-Wide Node Name (WWNN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PermanentWWPN": {
+                    "description": "This is the permanent WWPN address assigned to this network device function (physical function).",
+                    "longDescription": "The value of this property shall be the permanent World-Wide Port Name (WWPN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "WWNN": {
+                    "description": "This is the currently configured WWNN address of the network device function (physical function).",
+                    "longDescription": "The value of this property shall be the effective current World-Wide Node Name (WWNN) of this network device function (physical function). If an assignable WWNN is not supported, this is a read only alias of the PermanentWWNN.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "WWNSource": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/WWNSource"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The configuration source of the WWNs for this connection (WWPN and WWNN).",
+                    "longDescription": "The value of this property shall be the configuration source of the World-Wide Names (WWNs) for this connection (WWPN and WWNN).",
+                    "readonly": false
+                },
+                "WWPN": {
+                    "description": "This is the currently configured WWPN address of the network device function (physical function).",
+                    "longDescription": "The value of this property shall be the effective current World-Wide Port Name (WWPN) of this network device function (physical function). If an assignable WWPN is not supported, this is a read only alias of the PermanentWWPN.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "IPAddressType": {
+            "enum": [
+                "IPv4",
+                "IPv6"
+            ],
+            "enumDescriptions": {
+                "IPv4": "IPv4 addressing is used for all IP-fields in this object.",
+                "IPv6": "IPv6 addressing is used for all IP-fields in this object."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Endpoints": {
+                    "description": "An array of references to endpoints associated with this network device function.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The type shall contain an array property who's members reference resources, of type Endpoint, which are associated with this network device function.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "PCIeFunction": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction",
+                    "description": "Contains the members of this collection.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "NetworkDeviceFunction": {
+            "additionalProperties": false,
+            "description": "A Network Device Function represents a logical interface exposed by the network adapter.",
+            "longDescription": "A Network Device Function represents a logical interface exposed by the network adapter.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AssignablePhysicalPorts": {
+                    "description": "The array of physical port references that this network device function may be assigned to.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort"
+                    },
+                    "longDescription": "The value of this property shall be an array of physical port references that this network device function may be assigned to.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "AssignablePhysicalPorts@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "BootMode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/BootMode"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The boot mode configured for this network device function.",
+                    "longDescription": "The value of this property shall be the boot mode configured for this network device function.  If the value is not quot;Disabled\", this network device function shall be configured for boot using the specified technology.",
+                    "readonly": false
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DeviceEnabled": {
+                    "description": "Whether the network device function is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether the network device function is enabled.  Disabled network device functions shall not be enumerated or seen by the operating system.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Ethernet": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Ethernet"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Ethernet.",
+                    "longDescription": "This object shall contain Ethernet capabilities, status, and configuration values for this network device function."
+                },
+                "FibreChannel": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/FibreChannel"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Fibre Channel.",
+                    "longDescription": "This object shall contain Fibre Channel capabilities, status, and configuration values for this network device function."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Links.",
+                    "longDescription": "Links for this NetworkDeviceFunction."
+                },
+                "MaxVirtualFunctions": {
+                    "description": "The number of virtual functions (VFs) that are available for this Network Device Function.",
+                    "longDescription": "The value of this property shall be the number of virtual functions (VFs) that are available for this Network Device Function.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetDevFuncCapabilities": {
+                    "description": "Capabilities of this network device function.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/NetworkDeviceTechnology"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "This object shall contain an array of capabilities of this network device function.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetDevFuncType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/NetworkDeviceTechnology"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The configured capability of this network device function.",
+                    "longDescription": "The value of this property shall be the configured capability of this network device function.",
+                    "readonly": false
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PhysicalPortAssignment": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort",
+                    "description": "The physical port that this network device function is currently assigned to.",
+                    "longDescription": "The value of this property shall be the physical port that this network device function is currently assigned to. This value shall be one of the AssignablePhysicalPorts array members.",
+                    "readonly": true
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "VirtualFunctionsEnabled": {
+                    "description": "Whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "iSCSIBoot": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/iSCSIBoot"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "iSCSI Boot.",
+                    "longDescription": "This object shall contain iSCSI boot capabilities, status, and configuration values for this network device function."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "NetworkDeviceTechnology": {
+            "enum": [
+                "Disabled",
+                "Ethernet",
+                "FibreChannel",
+                "iSCSI",
+                "FibreChannelOverEthernet"
+            ],
+            "enumDescriptions": {
+                "Disabled": "Neither enumerated nor visible to the operating system.",
+                "Ethernet": "Appears to the operating system as an Ethernet device.",
+                "FibreChannel": "Appears to the operating system as a Fibre Channel device.",
+                "FibreChannelOverEthernet": "Appears to the operating system as an FCoE device.",
+                "iSCSI": "Appears to the operating system as an iSCSI device."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "WWNSource": {
+            "enum": [
+                "ConfiguredLocally",
+                "ProvidedByFabric"
+            ],
+            "enumDescriptions": {
+                "ConfiguredLocally": "The set of FC/FCoE boot targets was applied locally through API or UI.",
+                "ProvidedByFabric": "The set of FC/FCoE boot targets was applied by the Fibre Channel fabric."
+            },
+            "type": "string"
+        },
+        "iSCSIBoot": {
+            "additionalProperties": false,
+            "description": "This type describes iSCSI boot capabilities, status, and configuration of a network device function.",
+            "longDescription": "This type shall describe the iSCSI boot capabilities, status, and configuration values for a network device function.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AuthenticationMethod": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/AuthenticationMethod"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The iSCSI boot authentication method for this network device function.",
+                    "longDescription": "The value of this property shall be the iSCSI boot authentication method for this network device function.",
+                    "readonly": false
+                },
+                "CHAPSecret": {
+                    "description": "The shared secret for CHAP authentication.",
+                    "longDescription": "The value of this property shall be the shared secret for CHAP authentication.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "CHAPUsername": {
+                    "description": "The username for CHAP authentication.",
+                    "longDescription": "The value of this property shall behe username for CHAP authentication.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "IPAddressType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/IPAddressType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields.",
+                    "longDescription": "The value of this property shall behe type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields.  Mixing of IPv6 and IPv4 addresses on the same network device function shall not be permissible.",
+                    "readonly": false
+                },
+                "IPMaskDNSViaDHCP": {
+                    "description": "Whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "InitiatorDefaultGateway": {
+                    "description": "The IPv6 or IPv4 iSCSI boot default gateway.",
+                    "longDescription": "The value of this property shall be the IPv6 or IPv4 iSCSI boot default gateway.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "InitiatorIPAddress": {
+                    "description": "The IPv6 or IPv4 address of the iSCSI initiator.",
+                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the iSCSI boot initiator.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "InitiatorName": {
+                    "description": "The iSCSI initiator name.",
+                    "longDescription": "The value of this property shall be the iSCSI boot initiator name.  The value of this property should match formats defined in RFC3720 or RFC3721.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "InitiatorNetmask": {
+                    "description": "The IPv6 or IPv4 netmask of the iSCSI boot initiator.",
+                    "longDescription": "The value of this property shall be the IPv6 or IPv4 netmask of the iSCSI boot initiator.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MutualCHAPSecret": {
+                    "description": "The CHAP Secret for 2-way CHAP authentication.",
+                    "longDescription": "The value of this property shall be the CHAP Secret for 2-way CHAP authentication.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MutualCHAPUsername": {
+                    "description": "The CHAP Username for 2-way CHAP authentication.",
+                    "longDescription": "The value of this property shall be the CHAP Username for 2-way CHAP authentication.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PrimaryDNS": {
+                    "description": "The IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.",
+                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PrimaryLUN": {
+                    "description": "The logical unit number (LUN) for the primary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the logical unit number (LUN) for the primary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PrimaryTargetIPAddress": {
+                    "description": "The IP address (IPv6 or IPv4) for the primary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the primary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PrimaryTargetName": {
+                    "description": "The name of the iSCSI primary boot target.",
+                    "longDescription": "The value of this property shall be the name of the primary iSCSI boot target.  The value of this property should match formats defined in RFC3720 or RFC3721.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PrimaryTargetTCPPort": {
+                    "description": "The TCP port for the primary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the TCP port for the primary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "PrimaryVLANEnable": {
+                    "description": "This indicates if the primary VLAN is enabled.",
+                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the primary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "PrimaryVLANId": {
+                    "description": "The 802.1q VLAN ID to use for iSCSI boot from the primary target.",
+                    "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the primary target.  This VLAN ID is only used if PrimaryVLANEnable is true.",
+                    "maximum": 4094,
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "RouterAdvertisementEnabled": {
+                    "description": "Whether IPv6 router advertisement is enabled for the iSCSI boot target.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether IPv6 router advertisement is enabled for the iSCSI boot target.  This setting shall only apply to IPv6 configurations.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SecondaryDNS": {
+                    "description": "The IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.",
+                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SecondaryLUN": {
+                    "description": "The logical unit number (LUN) for the secondary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the logical unit number (LUN) for the secondary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "SecondaryTargetIPAddress": {
+                    "description": "The IP address (IPv6 or IPv4) for the secondary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the secondary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SecondaryTargetName": {
+                    "description": "The name of the iSCSI secondary boot target.",
+                    "longDescription": "The value of this property shall be the name of the secondary iSCSI boot target.  The value of this property should match formats defined in RFC3720 or RFC3721.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SecondaryTargetTCPPort": {
+                    "description": "The TCP port for the secondary iSCSI boot target.",
+                    "longDescription": "The value of this property shall be the TCP port for the secondary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "SecondaryVLANEnable": {
+                    "description": "This indicates if the secondary VLAN is enabled.",
+                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the secondary iSCSI boot target.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SecondaryVLANId": {
+                    "description": "The 802.1q VLAN ID to use for iSCSI boot from the secondary target.",
+                    "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the secondary target.  This VLAN ID is only used if SecondaryVLANEnable is true.",
+                    "maximum": 4094,
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "TargetInfoViaDHCP": {
+                    "description": "Whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#NetworkDeviceFunction.v1_2_1.NetworkDeviceFunction"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/index.json b/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/index.json
index f942f51..701e443 100644
--- a/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/index.json
+++ b/static/redfish/v1/JsonSchemas/NetworkDeviceFunction/index.json
@@ -1,852 +1,21 @@
 {
-    "$ref": "#/definitions/NetworkDeviceFunction",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "AuthenticationMethod": {
-            "enum": [
-                "None",
-                "CHAP",
-                "MutualCHAP"
-            ],
-            "enumDescriptions": {
-                "CHAP": "iSCSI Challenge Handshake Authentication Protocol (CHAP) authentication is used.",
-                "MutualCHAP": "iSCSI Mutual Challenge Handshake Authentication Protocol (CHAP) authentication is used.",
-                "None": "No iSCSI authentication is used."
-            },
-            "type": "string"
-        },
-        "BootMode": {
-            "enum": [
-                "Disabled",
-                "PXE",
-                "iSCSI",
-                "FibreChannel",
-                "FibreChannelOverEthernet"
-            ],
-            "enumDescriptions": {
-                "Disabled": "Do not indicate to UEFI/BIOS that this device is bootable.",
-                "FibreChannel": "Boot this device using the embedded Fibre Channel support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to FibreChannel.",
-                "FibreChannelOverEthernet": "Boot this device using the embedded Fibre Channel over Ethernet (FCoE) boot support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to FibreChannelOverEthernet.",
-                "PXE": "Boot this device using the embedded PXE support.  Only applicable if the NetworkDeviceFunctionType is set to Ethernet.",
-                "iSCSI": "Boot this device using the embedded iSCSI boot support and configuration.  Only applicable if the NetworkDeviceFunctionType is set to iSCSI."
-            },
-            "type": "string"
-        },
-        "BootTargets": {
-            "additionalProperties": false,
-            "description": "A Fibre Channel boot target configured for a network device function.",
-            "longDescription": "This type shall describe a Fibre Channel boot target configured for a network device function.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "BootPriority": {
-                    "description": "The relative priority for this entry in the boot targets array.",
-                    "longDescription": "The value of this property shall be the relative priority for this entry in the boot targets array.  Lower numbers shall represent higher priority, with zero being the highest priority.  The BootPriority shall be unique for all entries of the BootTargets array.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "LUNID": {
-                    "description": "The Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.",
-                    "longDescription": "The value of this property shall be the Logical Unit Number (LUN) ID to boot from on the device referred to by the corresponding WWPN.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "WWPN": {
-                    "description": "The World-Wide Port Name to boot from.",
-                    "longDescription": "The value of this property shall be World-Wide Port Name (WWPN) to boot from.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "Ethernet": {
-            "additionalProperties": false,
-            "description": "This type describes Ethernet capabilities, status, and configuration of a network device function.",
-            "longDescription": "This type shall describe the Ethernet capabilities, status, and configuration values for a network device function.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MACAddress": {
-                    "description": "This is the currently configured MAC address of the (logical port) network device function.",
-                    "longDescription": "The value of this property shall be the effective current MAC Address of this network device function. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MTUSize": {
-                    "description": "The Maximum Transmission Unit (MTU) configured for this network device function.",
-                    "longDescription": "The Maximum Transmission Unit (MTU) configured for this Network Device Function.  This value serves as a default for the OS driver when booting.  The value only takes-effect on boot.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PermanentMACAddress": {
-                    "description": "This is the permanent MAC address assigned to this network device function (physical function).",
-                    "longDescription": "The value of this property shall be the Permanent MAC Address of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "FibreChannel": {
-            "additionalProperties": false,
-            "description": "This type describes Fibre Channel capabilities, status, and configuration of a network device function.",
-            "longDescription": "This object shall describe the Fibre Channel capabilities, status, and configuration values for a network device function.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AllowFIPVLANDiscovery": {
-                    "description": "Whether the FCoE Initialization Protocol (FIP) is used for populating the FCoE VLAN Id.",
-                    "longDescription": "For FCoE connections, the value of this property shall be a boolean indicating whether the FIP VLAN Discovery Protocol is used to determine the FCoE VLAN ID selected by the network device function for the FCoE connection.  If true, and the FIP VLAN Discovery succeeds, the FCoEActiveVLANId property shall reflect the FCoE VLAN ID to be used for all FCoE traffic.  If false, or if the FIP VLAN Discovery protocol fails, the FCoELocalVLANId shall be used for all FCoE traffic and the FCoEActiveVLANId shall reflect the FCoELocalVLANId.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "BootTargets": {
-                    "description": "An array of Fibre Channel boot targets configured for this network device function.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/BootTargets"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "The value of this property shall be an array of Fibre Channel boot targets configured for this network device function.",
-                    "type": "array"
-                },
-                "FCoEActiveVLANId": {
-                    "description": "The active FCoE VLAN ID.",
-                    "longDescription": "For FCoE connections, the value of this property shall be null or a VLAN ID currently being used for FCoE traffic.  When the FCoE link is down this value shall be null.  When the FCoE link is up this value shall be either the FCoELocalVLANId property or a VLAN discovered via the FIP protocol.",
-                    "maximum": 4094,
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "FCoELocalVLANId": {
-                    "description": "The locally configured FCoE VLAN ID.",
-                    "longDescription": "For FCoE connections, the value of this property shall be the VLAN ID configured locally by setting this property.  This value shall be used for FCoE traffic to this network device function during boot unless AllowFIPVLANDiscovery is true and a valid FCoE VLAN ID is found via the FIP VLAN Discovery Protocol.",
-                    "maximum": 4094,
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PermanentWWNN": {
-                    "description": "This is the permanent WWNN address assigned to this network device function (physical function).",
-                    "longDescription": "The value of this property shall be the permanent World-Wide Node Name (WWNN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PermanentWWPN": {
-                    "description": "This is the permanent WWPN address assigned to this network device function (physical function).",
-                    "longDescription": "The value of this property shall be the permanent World-Wide Port Name (WWPN) of this network device function (physical function). This value is typically programmed during the manufacturing time. This address is not assignable.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "WWNN": {
-                    "description": "This is the currently configured WWNN address of the network device function (physical function).",
-                    "longDescription": "The value of this property shall be the effective current World-Wide Node Name (WWNN) of this network device function (physical function). If an assignable WWNN is not supported, this is a read only alias of the PermanentWWNN.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "WWNSource": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/WWNSource"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The configuration source of the WWNs for this connection (WWPN and WWNN).",
-                    "longDescription": "The value of this property shall be the configuration source of the World-Wide Names (WWNs) for this connection (WWPN and WWNN).",
-                    "readonly": false
-                },
-                "WWPN": {
-                    "description": "This is the currently configured WWPN address of the network device function (physical function).",
-                    "longDescription": "The value of this property shall be the effective current World-Wide Port Name (WWPN) of this network device function (physical function). If an assignable WWPN is not supported, this is a read only alias of the PermanentWWPN.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "IPAddressType": {
-            "enum": [
-                "IPv4",
-                "IPv6"
-            ],
-            "enumDescriptions": {
-                "IPv4": "IPv4 addressing is used for all IP-fields in this object.",
-                "IPv6": "IPv6 addressing is used for all IP-fields in this object."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Endpoints": {
-                    "description": "An array of references to endpoints associated with this network device function.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The type shall contain an array property who's members reference resources, of type Endpoint, which are associated with this network device function.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "PCIeFunction": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction",
-                    "description": "Contains the members of this collection.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "NetworkDeviceFunction": {
-            "additionalProperties": false,
-            "description": "A Network Device Function represents a logical interface exposed by the network adapter.",
-            "longDescription": "A Network Device Function represents a logical interface exposed by the network adapter.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AssignablePhysicalPorts": {
-                    "description": "The array of physical port references that this network device function may be assigned to.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort"
-                    },
-                    "longDescription": "The value of this property shall be an array of physical port references that this network device function may be assigned to.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "AssignablePhysicalPorts@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "BootMode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/BootMode"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The boot mode configured for this network device function.",
-                    "longDescription": "The value of this property shall be the boot mode configured for this network device function.  If the value is not quot;Disabled\", this network device function shall be configured for boot using the specified technology.",
-                    "readonly": false
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DeviceEnabled": {
-                    "description": "Whether the network device function is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether the network device function is enabled.  Disabled network device functions shall not be enumerated or seen by the operating system.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Ethernet": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Ethernet"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Ethernet.",
-                    "longDescription": "This object shall contain Ethernet capabilities, status, and configuration values for this network device function."
-                },
-                "FibreChannel": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/FibreChannel"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Fibre Channel.",
-                    "longDescription": "This object shall contain Fibre Channel capabilities, status, and configuration values for this network device function."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Links.",
-                    "longDescription": "Links for this NetworkDeviceFunction."
-                },
-                "MaxVirtualFunctions": {
-                    "description": "The number of virtual functions (VFs) that are available for this Network Device Function.",
-                    "longDescription": "The value of this property shall be the number of virtual functions (VFs) that are available for this Network Device Function.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetDevFuncCapabilities": {
-                    "description": "Capabilities of this network device function.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/NetworkDeviceTechnology"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "This object shall contain an array of capabilities of this network device function.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetDevFuncType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/NetworkDeviceTechnology"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The configured capability of this network device function.",
-                    "longDescription": "The value of this property shall be the configured capability of this network device function.",
-                    "readonly": false
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PhysicalPortAssignment": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort",
-                    "description": "The physical port that this network device function is currently assigned to.",
-                    "longDescription": "The value of this property shall be the physical port that this network device function is currently assigned to. This value shall be one of the AssignablePhysicalPorts array members.",
-                    "readonly": true
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                },
-                "VirtualFunctionsEnabled": {
-                    "description": "Whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether Single Root I/O Virtualization (SR-IOV) Virual Functions (VFs) are enabled for this Network Device Function.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "iSCSIBoot": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/iSCSIBoot"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "iSCSI Boot.",
-                    "longDescription": "This object shall contain iSCSI boot capabilities, status, and configuration values for this network device function."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "NetworkDeviceTechnology": {
-            "enum": [
-                "Disabled",
-                "Ethernet",
-                "FibreChannel",
-                "iSCSI",
-                "FibreChannelOverEthernet"
-            ],
-            "enumDescriptions": {
-                "Disabled": "Neither enumerated nor visible to the operating system.",
-                "Ethernet": "Appears to the operating system as an Ethernet device.",
-                "FibreChannel": "Appears to the operating system as a Fibre Channel device.",
-                "FibreChannelOverEthernet": "Appears to the operating system as an FCoE device.",
-                "iSCSI": "Appears to the operating system as an iSCSI device."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "WWNSource": {
-            "enum": [
-                "ConfiguredLocally",
-                "ProvidedByFabric"
-            ],
-            "enumDescriptions": {
-                "ConfiguredLocally": "The set of FC/FCoE boot targets was applied locally through API or UI.",
-                "ProvidedByFabric": "The set of FC/FCoE boot targets was applied by the Fibre Channel fabric."
-            },
-            "type": "string"
-        },
-        "iSCSIBoot": {
-            "additionalProperties": false,
-            "description": "This type describes iSCSI boot capabilities, status, and configuration of a network device function.",
-            "longDescription": "This type shall describe the iSCSI boot capabilities, status, and configuration values for a network device function.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AuthenticationMethod": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/AuthenticationMethod"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The iSCSI boot authentication method for this network device function.",
-                    "longDescription": "The value of this property shall be the iSCSI boot authentication method for this network device function.",
-                    "readonly": false
-                },
-                "CHAPSecret": {
-                    "description": "The shared secret for CHAP authentication.",
-                    "longDescription": "The value of this property shall be the shared secret for CHAP authentication.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "CHAPUsername": {
-                    "description": "The username for CHAP authentication.",
-                    "longDescription": "The value of this property shall behe username for CHAP authentication.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "IPAddressType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/IPAddressType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields.",
-                    "longDescription": "The value of this property shall behe type of IP address (IPv6 or IPv4) being populated in the iSCSIBoot IP address fields.  Mixing of IPv6 and IPv4 addresses on the same network device function shall not be permissible.",
-                    "readonly": false
-                },
-                "IPMaskDNSViaDHCP": {
-                    "description": "Whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot initiator uses DHCP to obtain the iniator name, IP address, and netmask.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "InitiatorDefaultGateway": {
-                    "description": "The IPv6 or IPv4 iSCSI boot default gateway.",
-                    "longDescription": "The value of this property shall be the IPv6 or IPv4 iSCSI boot default gateway.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "InitiatorIPAddress": {
-                    "description": "The IPv6 or IPv4 address of the iSCSI initiator.",
-                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the iSCSI boot initiator.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "InitiatorName": {
-                    "description": "The iSCSI initiator name.",
-                    "longDescription": "The value of this property shall be the iSCSI boot initiator name.  The value of this property should match formats defined in RFC3720 or RFC3721.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "InitiatorNetmask": {
-                    "description": "The IPv6 or IPv4 netmask of the iSCSI boot initiator.",
-                    "longDescription": "The value of this property shall be the IPv6 or IPv4 netmask of the iSCSI boot initiator.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MutualCHAPSecret": {
-                    "description": "The CHAP Secret for 2-way CHAP authentication.",
-                    "longDescription": "The value of this property shall be the CHAP Secret for 2-way CHAP authentication.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MutualCHAPUsername": {
-                    "description": "The CHAP Username for 2-way CHAP authentication.",
-                    "longDescription": "The value of this property shall be the CHAP Username for 2-way CHAP authentication.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PrimaryDNS": {
-                    "description": "The IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.",
-                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the primary DNS server for the iSCSI boot initiator.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PrimaryLUN": {
-                    "description": "The logical unit number (LUN) for the primary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the logical unit number (LUN) for the primary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PrimaryTargetIPAddress": {
-                    "description": "The IP address (IPv6 or IPv4) for the primary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the primary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PrimaryTargetName": {
-                    "description": "The name of the iSCSI primary boot target.",
-                    "longDescription": "The value of this property shall be the name of the primary iSCSI boot target.  The value of this property should match formats defined in RFC3720 or RFC3721.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PrimaryTargetTCPPort": {
-                    "description": "The TCP port for the primary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the TCP port for the primary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "PrimaryVLANEnable": {
-                    "description": "This indicates if the primary VLAN is enabled.",
-                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the primary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "PrimaryVLANId": {
-                    "description": "The 802.1q VLAN ID to use for iSCSI boot from the primary target.",
-                    "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the primary target.  This VLAN ID is only used if PrimaryVLANEnable is true.",
-                    "maximum": 4094,
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "RouterAdvertisementEnabled": {
-                    "description": "Whether IPv6 router advertisement is enabled for the iSCSI boot target.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether IPv6 router advertisement is enabled for the iSCSI boot target.  This setting shall only apply to IPv6 configurations.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SecondaryDNS": {
-                    "description": "The IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.",
-                    "longDescription": "The value of this property shall be the IPv6 or IPv4 address of the secondary DNS server for the iSCSI boot initiator.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SecondaryLUN": {
-                    "description": "The logical unit number (LUN) for the secondary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the logical unit number (LUN) for the secondary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "SecondaryTargetIPAddress": {
-                    "description": "The IP address (IPv6 or IPv4) for the secondary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the IP address (IPv6 or IPv4) for the secondary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SecondaryTargetName": {
-                    "description": "The name of the iSCSI secondary boot target.",
-                    "longDescription": "The value of this property shall be the name of the secondary iSCSI boot target.  The value of this property should match formats defined in RFC3720 or RFC3721.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SecondaryTargetTCPPort": {
-                    "description": "The TCP port for the secondary iSCSI boot target.",
-                    "longDescription": "The value of this property shall be the TCP port for the secondary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "SecondaryVLANEnable": {
-                    "description": "This indicates if the secondary VLAN is enabled.",
-                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for the secondary iSCSI boot target.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SecondaryVLANId": {
-                    "description": "The 802.1q VLAN ID to use for iSCSI boot from the secondary target.",
-                    "longDescription": "The value of this property shall be the 802.1q VLAN ID to use for iSCSI boot from the secondary target.  This VLAN ID is only used if SecondaryVLANEnable is true.",
-                    "maximum": 4094,
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "TargetInfoViaDHCP": {
-                    "description": "Whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether the iSCSI boot target name, LUN, IP address, and netmask should be obtained from DHCP.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/NetworkDeviceFunction",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "NetworkDeviceFunction Schema File",
+    "Schema": "#NetworkDeviceFunction.NetworkDeviceFunction",
+    "Description": "NetworkDeviceFunction Schema File Location",
+    "Id": "NetworkDeviceFunction",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json",
+            "Uri": "/redfish/v1/JSONSchemas/NetworkDeviceFunction/NetworkDeviceFunction.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#NetworkDeviceFunction.v1_2_1.NetworkDeviceFunction"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json b/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json
new file mode 100644
index 0000000..6b2d54c
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/NetworkInterface/NetworkInterface.json
@@ -0,0 +1,150 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#NetworkInterface.v1_1_0.NetworkInterface",
+    "$ref": "#/definitions/NetworkInterface",
+    "definitions": {
+        "NetworkInterface": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Status": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"},
+                        {"type": "null"}
+                    ]
+                },
+                "Links": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                            "description": "Oem extension object.",
+                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                        },
+                        "NetworkAdapter": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapter.json#/definitions/NetworkAdapter",
+                            "readonly": true,
+                            "description": "Contains the members of this collection."
+                        }
+                    },
+                    "description": "Links.",
+                    "longDescription": "Links for this controller."
+                },
+                "NetworkPorts": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection",
+                    "readonly": true,
+                    "description": "Contains the members of this collection."
+                },
+                "NetworkDeviceFunctions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection",
+                    "readonly": true,
+                    "description": "Contains the members of this collection."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system.",
+            "longDescription": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/NetworkInterface/index.json b/static/redfish/v1/JsonSchemas/NetworkInterface/index.json
index 6b2d54c..1d3499c 100644
--- a/static/redfish/v1/JsonSchemas/NetworkInterface/index.json
+++ b/static/redfish/v1/JsonSchemas/NetworkInterface/index.json
@@ -1,150 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#NetworkInterface.v1_1_0.NetworkInterface",
-    "$ref": "#/definitions/NetworkInterface",
-    "definitions": {
-        "NetworkInterface": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Status": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"},
-                        {"type": "null"}
-                    ]
-                },
-                "Links": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                            "description": "Oem extension object.",
-                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                        },
-                        "NetworkAdapter": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkAdapter.json#/definitions/NetworkAdapter",
-                            "readonly": true,
-                            "description": "Contains the members of this collection."
-                        }
-                    },
-                    "description": "Links.",
-                    "longDescription": "Links for this controller."
-                },
-                "NetworkPorts": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json#/definitions/NetworkPortCollection",
-                    "readonly": true,
-                    "description": "Contains the members of this collection."
-                },
-                "NetworkDeviceFunctions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json#/definitions/NetworkDeviceFunctionCollection",
-                    "readonly": true,
-                    "description": "Contains the members of this collection."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system.",
-            "longDescription": "A NetworkInterface contains references linking NetworkAdapter, NetworkPort, and NetworkDeviceFunction resources and represents the functionality available to the containing system."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/NetworkInterface",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "NetworkInterface Schema File",
+    "Schema": "#NetworkInterface.NetworkInterface",
+    "Description": "NetworkInterface Schema File Location",
+    "Id": "NetworkInterface",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/NetworkInterface.json",
+            "Uri": "/redfish/v1/JSONSchemas/NetworkInterface/NetworkInterface.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json b/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json
new file mode 100644
index 0000000..b6743ac
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/NetworkPort/NetworkPort.json
@@ -0,0 +1,406 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#NetworkPort.v1_1_0.NetworkPort",
+    "$ref": "#/definitions/NetworkPort",
+    "definitions": {
+        "FlowControl": {
+            "type": "string",
+            "enum": [
+                "None",
+                "TX",
+                "RX",
+                "TX_RX"
+            ],
+            "enumDescriptions": {
+                "None": "No IEEE 802.3x flow control is enabled on this port.",
+                "TX": "IEEE 802.3x flow control may be initiated by this station.",
+                "RX": "IEEE 802.3x flow control may be initiated by the link partner.",
+                "TX_RX": "IEEE 802.3x flow control may be initiated by this station or the link partner."
+            }
+        },
+        "LinkNetworkTechnology": {
+            "type": "string",
+            "enum": [
+                "Ethernet",
+                "InfiniBand",
+                "FibreChannel"
+            ],
+            "enumDescriptions": {
+                "Ethernet": "The port is capable of connecting to an Ethernet network.",
+                "InfiniBand": "The port is capable of connecting to an InfiniBand network.",
+                "FibreChannel": "The port is capable of connecting to a Fibre Channel network."
+            }
+        },
+        "LinkStatus": {
+            "type": "string",
+            "enum": [
+                "Down",
+                "Up"
+            ],
+            "enumDescriptions": {
+                "Down": "The port is enabled but link is down.",
+                "Up": "The port is enabled and link is good (up)."
+            }
+        },
+        "NetDevFuncMaxBWAlloc": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": true,
+            "properties": {
+                "MaxBWAllocPercent": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "The maximum bandwidth allocation percentage allocated to the corresponding network device function instance.",
+                    "longDescription": "The value of this property shall be the maximum bandwidth percentage allocation for the associated network device function."
+                },
+                "NetworkDeviceFunction": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
+                    "readonly": true,
+                    "description": "Contains the members of this collection."
+                }
+            },
+            "description": "A maximum bandwidth allocation percentage for a Network Device Functions associated a port.",
+            "longDescription": "This type shall describe a maximum bandwidth percentage allocation for a network device function associated with a port."
+        },
+        "NetDevFuncMinBWAlloc": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": true,
+            "properties": {
+                "MinBWAllocPercent": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "The minimum bandwidth allocation percentage allocated to the corresponding network device function instance.",
+                    "longDescription": "The value of this property shall be the minimum bandwidth percentage allocation for the associated network device function.  The sum total of all minimum percentages shall not exceed 100."
+                },
+                "NetworkDeviceFunction": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
+                    "readonly": true,
+                    "description": "Contains the members of this collection."
+                }
+            },
+            "description": "A minimum bandwidth allocation percentage for a Network Device Functions associated a port.",
+            "longDescription": "This type shall describe a minimum bandwidth percentage allocation for a network device function associated with a port."
+        },
+        "SupportedEthernetCapabilities": {
+            "type": "string",
+            "enum": [
+                "WakeOnLAN",
+                "EEE"
+            ],
+            "enumDescriptions": {
+                "WakeOnLAN": "Wake on LAN (WoL) is supported on this port.",
+                "EEE": "IEEE 802.3az Energy Efficient Ethernet (EEE) is supported on this port."
+            }
+        },
+        "SupportedLinkCapabilities": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": true,
+            "properties": {
+                "LinkNetworkTechnology": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/LinkNetworkTechnology"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true,
+                    "description": "The self-described link network technology capabilities of this port.",
+                    "longDescription": "The value of this property shall be a network technology capability of this port."
+                },
+                "LinkSpeedMbps": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The speed of the link in Mbps when this link network technology is active.",
+                    "longDescription": "The value of this property shall be the speed of the link in megabits per second (Mbps) for this port when this link network technology is active."
+                }
+            },
+            "description": "The self-described link capabilities of an assocaited port.",
+            "longDescription": "This type shall describe the static capabilities of an associated port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration."
+        },
+        "NetworkPort": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Status": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"},
+                        {"type": "null"}
+                    ]
+                },
+                "PhysicalPortNumber": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The physical port number label for this port.",
+                    "longDescription": "The value of this property shall be the physical port number on the network adapter hardware that this Network Port corresponds to.  This value should match a value visible on the hardware.  When HostPortEnabled and ManagementPortEnabled are both \"false\", the port shall not establish physical link."
+                },
+                "LinkStatus": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/LinkStatus"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true,
+                    "description": "The status of the link between this port and its link partner.",
+                    "longDescription": "The value of this property shall be the link status between this port and its link partner."
+                },
+                "SupportedLinkCapabilities": {
+                    "type": "array",
+                    "items": {
+                        "anyOf": [
+                            {"$ref": "#/definitions/SupportedLinkCapabilities"},
+                            {"type": "null"}
+                        ]
+                    },
+                    "description": "The self-described link capabilities of this port.",
+                    "longDescription": "This object shall describe the static capabilities of the port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration."
+                },
+                "ActiveLinkTechnology": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/LinkNetworkTechnology"},
+                        {"type": "null"}
+                    ],
+                    "readonly": false,
+                    "description": "Network Port Active Link Technology.",
+                    "longDescription": "The value of this property shall be the configured link technology of this port."
+                },
+                "SupportedEthernetCapabilities": {
+                    "type": "array",
+                    "items": {
+                        "anyOf": [
+                            {"$ref": "#/definitions/SupportedEthernetCapabilities"},
+                            {"type": "null"}
+                        ]
+                    },
+                    "readonly": true,
+                    "description": "The set of Ethernet capabilities that this port supports.",
+                    "longDescription": "The value of this property shall be an array of zero or more Ethernet capabilities supported by this port."
+                },
+                "NetDevFuncMinBWAlloc": {
+                    "type": "array",
+                    "items": {
+                        "anyOf": [
+                            {"$ref": "#/definitions/NetDevFuncMinBWAlloc"},
+                            {"type": "null"}
+                        ]
+                    },
+                    "description": "The array of minimum bandwidth allocation percentages for the Network Device Functions associated with this port.",
+                    "longDescription": "The value of this property shall be an array of minimum bandwidth percentage allocations for each of the network device functions associated with this port."
+                },
+                "NetDevFuncMaxBWAlloc": {
+                    "type": "array",
+                    "items": {
+                        "anyOf": [
+                            {"$ref": "#/definitions/NetDevFuncMaxBWAlloc"},
+                            {"type": "null"}
+                        ]
+                    },
+                    "description": "The array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port.",
+                    "longDescription": "The value of this property shall be an array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port."
+                },
+                "AssociatedNetworkAddresses": {
+                    "type": "array",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "readonly": true,
+                    "description": "The array of configured network addresses (MAC or WWN) that are associated with this Network Port, including the programmed address of the lowest numbered Network Device Function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
+                    "longDescription": "The value of this property shall be an array of configured network addresses that are associated with this network port, including the programmed address of the lowest numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses."
+                },
+                "EEEEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port."
+                },
+                "WakeOnLANEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Whether Wake on LAN (WoL) is enabled for this network port.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether Wake on LAN (WoL) is enabled for this network port."
+                },
+                "PortMaximumMTU": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The largest maximum transmission unit (MTU) that can be configured for this network port.",
+                    "longDescription": "The value of this property shall be the largest maximum transmission unit (MTU) that can be configured for this network port."
+                },
+                "FlowControlStatus": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/FlowControl"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true,
+                    "description": "The 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only).",
+                    "longDescription": "The value of this property shall be the 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only)."
+                },
+                "FlowControlConfiguration": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/FlowControl"},
+                        {"type": "null"}
+                    ],
+                    "readonly": false,
+                    "description": "The locally configured 802.3x flow control setting for this network port.",
+                    "longDescription": "The value of this property shall be the locally configured 802.3x flow control setting for this network port."
+                },
+                "SignalDetected": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "Whether or not the port has detected enough signal on enough lanes to establish link.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether the port has detected enough signal on enough lanes to establish link."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "A Network Port represents a discrete physical port capable of connecting to a network.",
+            "longDescription": "A Network Port represents a discrete physical port capable of connecting to a network."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/NetworkPort/index.json b/static/redfish/v1/JsonSchemas/NetworkPort/index.json
index b6743ac..78ecd67 100644
--- a/static/redfish/v1/JsonSchemas/NetworkPort/index.json
+++ b/static/redfish/v1/JsonSchemas/NetworkPort/index.json
@@ -1,406 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#NetworkPort.v1_1_0.NetworkPort",
-    "$ref": "#/definitions/NetworkPort",
-    "definitions": {
-        "FlowControl": {
-            "type": "string",
-            "enum": [
-                "None",
-                "TX",
-                "RX",
-                "TX_RX"
-            ],
-            "enumDescriptions": {
-                "None": "No IEEE 802.3x flow control is enabled on this port.",
-                "TX": "IEEE 802.3x flow control may be initiated by this station.",
-                "RX": "IEEE 802.3x flow control may be initiated by the link partner.",
-                "TX_RX": "IEEE 802.3x flow control may be initiated by this station or the link partner."
-            }
-        },
-        "LinkNetworkTechnology": {
-            "type": "string",
-            "enum": [
-                "Ethernet",
-                "InfiniBand",
-                "FibreChannel"
-            ],
-            "enumDescriptions": {
-                "Ethernet": "The port is capable of connecting to an Ethernet network.",
-                "InfiniBand": "The port is capable of connecting to an InfiniBand network.",
-                "FibreChannel": "The port is capable of connecting to a Fibre Channel network."
-            }
-        },
-        "LinkStatus": {
-            "type": "string",
-            "enum": [
-                "Down",
-                "Up"
-            ],
-            "enumDescriptions": {
-                "Down": "The port is enabled but link is down.",
-                "Up": "The port is enabled and link is good (up)."
-            }
-        },
-        "NetDevFuncMaxBWAlloc": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": true,
-            "properties": {
-                "MaxBWAllocPercent": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "The maximum bandwidth allocation percentage allocated to the corresponding network device function instance.",
-                    "longDescription": "The value of this property shall be the maximum bandwidth percentage allocation for the associated network device function."
-                },
-                "NetworkDeviceFunction": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
-                    "readonly": true,
-                    "description": "Contains the members of this collection."
-                }
-            },
-            "description": "A maximum bandwidth allocation percentage for a Network Device Functions associated a port.",
-            "longDescription": "This type shall describe a maximum bandwidth percentage allocation for a network device function associated with a port."
-        },
-        "NetDevFuncMinBWAlloc": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": true,
-            "properties": {
-                "MinBWAllocPercent": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "The minimum bandwidth allocation percentage allocated to the corresponding network device function instance.",
-                    "longDescription": "The value of this property shall be the minimum bandwidth percentage allocation for the associated network device function.  The sum total of all minimum percentages shall not exceed 100."
-                },
-                "NetworkDeviceFunction": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction",
-                    "readonly": true,
-                    "description": "Contains the members of this collection."
-                }
-            },
-            "description": "A minimum bandwidth allocation percentage for a Network Device Functions associated a port.",
-            "longDescription": "This type shall describe a minimum bandwidth percentage allocation for a network device function associated with a port."
-        },
-        "SupportedEthernetCapabilities": {
-            "type": "string",
-            "enum": [
-                "WakeOnLAN",
-                "EEE"
-            ],
-            "enumDescriptions": {
-                "WakeOnLAN": "Wake on LAN (WoL) is supported on this port.",
-                "EEE": "IEEE 802.3az Energy Efficient Ethernet (EEE) is supported on this port."
-            }
-        },
-        "SupportedLinkCapabilities": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": true,
-            "properties": {
-                "LinkNetworkTechnology": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/LinkNetworkTechnology"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true,
-                    "description": "The self-described link network technology capabilities of this port.",
-                    "longDescription": "The value of this property shall be a network technology capability of this port."
-                },
-                "LinkSpeedMbps": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The speed of the link in Mbps when this link network technology is active.",
-                    "longDescription": "The value of this property shall be the speed of the link in megabits per second (Mbps) for this port when this link network technology is active."
-                }
-            },
-            "description": "The self-described link capabilities of an assocaited port.",
-            "longDescription": "This type shall describe the static capabilities of an associated port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration."
-        },
-        "NetworkPort": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Status": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"},
-                        {"type": "null"}
-                    ]
-                },
-                "PhysicalPortNumber": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The physical port number label for this port.",
-                    "longDescription": "The value of this property shall be the physical port number on the network adapter hardware that this Network Port corresponds to.  This value should match a value visible on the hardware.  When HostPortEnabled and ManagementPortEnabled are both \"false\", the port shall not establish physical link."
-                },
-                "LinkStatus": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/LinkStatus"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true,
-                    "description": "The status of the link between this port and its link partner.",
-                    "longDescription": "The value of this property shall be the link status between this port and its link partner."
-                },
-                "SupportedLinkCapabilities": {
-                    "type": "array",
-                    "items": {
-                        "anyOf": [
-                            {"$ref": "#/definitions/SupportedLinkCapabilities"},
-                            {"type": "null"}
-                        ]
-                    },
-                    "description": "The self-described link capabilities of this port.",
-                    "longDescription": "This object shall describe the static capabilities of the port, irrespective of transient conditions such as cabling, interface module presence, or remote link parter status or configuration."
-                },
-                "ActiveLinkTechnology": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/LinkNetworkTechnology"},
-                        {"type": "null"}
-                    ],
-                    "readonly": false,
-                    "description": "Network Port Active Link Technology.",
-                    "longDescription": "The value of this property shall be the configured link technology of this port."
-                },
-                "SupportedEthernetCapabilities": {
-                    "type": "array",
-                    "items": {
-                        "anyOf": [
-                            {"$ref": "#/definitions/SupportedEthernetCapabilities"},
-                            {"type": "null"}
-                        ]
-                    },
-                    "readonly": true,
-                    "description": "The set of Ethernet capabilities that this port supports.",
-                    "longDescription": "The value of this property shall be an array of zero or more Ethernet capabilities supported by this port."
-                },
-                "NetDevFuncMinBWAlloc": {
-                    "type": "array",
-                    "items": {
-                        "anyOf": [
-                            {"$ref": "#/definitions/NetDevFuncMinBWAlloc"},
-                            {"type": "null"}
-                        ]
-                    },
-                    "description": "The array of minimum bandwidth allocation percentages for the Network Device Functions associated with this port.",
-                    "longDescription": "The value of this property shall be an array of minimum bandwidth percentage allocations for each of the network device functions associated with this port."
-                },
-                "NetDevFuncMaxBWAlloc": {
-                    "type": "array",
-                    "items": {
-                        "anyOf": [
-                            {"$ref": "#/definitions/NetDevFuncMaxBWAlloc"},
-                            {"type": "null"}
-                        ]
-                    },
-                    "description": "The array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port.",
-                    "longDescription": "The value of this property shall be an array of maximum bandwidth allocation percentages for the Network Device Functions associated with this port."
-                },
-                "AssociatedNetworkAddresses": {
-                    "type": "array",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "readonly": true,
-                    "description": "The array of configured network addresses (MAC or WWN) that are associated with this Network Port, including the programmed address of the lowest numbered Network Device Function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses.",
-                    "longDescription": "The value of this property shall be an array of configured network addresses that are associated with this network port, including the programmed address of the lowest numbered network device function, the configured but not active address if applicable, the address for hardware port teaming, or other network addresses."
-                },
-                "EEEEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether IEEE 802.3az Energy Efficient Ethernet (EEE) is enabled for this network port."
-                },
-                "WakeOnLANEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Whether Wake on LAN (WoL) is enabled for this network port.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether Wake on LAN (WoL) is enabled for this network port."
-                },
-                "PortMaximumMTU": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The largest maximum transmission unit (MTU) that can be configured for this network port.",
-                    "longDescription": "The value of this property shall be the largest maximum transmission unit (MTU) that can be configured for this network port."
-                },
-                "FlowControlStatus": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/FlowControl"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true,
-                    "description": "The 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only).",
-                    "longDescription": "The value of this property shall be the 802.3x flow control behavior negotiated with the link partner for this network port (Ethernet-only)."
-                },
-                "FlowControlConfiguration": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/FlowControl"},
-                        {"type": "null"}
-                    ],
-                    "readonly": false,
-                    "description": "The locally configured 802.3x flow control setting for this network port.",
-                    "longDescription": "The value of this property shall be the locally configured 802.3x flow control setting for this network port."
-                },
-                "SignalDetected": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "Whether or not the port has detected enough signal on enough lanes to establish link.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether the port has detected enough signal on enough lanes to establish link."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "A Network Port represents a discrete physical port capable of connecting to a network.",
-            "longDescription": "A Network Port represents a discrete physical port capable of connecting to a network."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/NetworkPort",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "NetworkPort Schema File",
+    "Schema": "#NetworkPort.NetworkPort",
+    "Description": "NetworkPort Schema File Location",
+    "Id": "NetworkPort",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json",
+            "Uri": "/redfish/v1/JSONSchemas/NetworkPort/NetworkPort.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json b/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json
new file mode 100644
index 0000000..824a52a
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json
@@ -0,0 +1,266 @@
+{
+    "$ref": "#/definitions/PCIeDevice",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "DeviceType": {
+            "enum": [
+                "SingleFunction",
+                "MultiFunction",
+                "Simulated"
+            ],
+            "enumDescriptions": {
+                "MultiFunction": "A multi-function PCIe device.",
+                "Simulated": "A PCIe device which is not currently physically present, but is being simulated by the PCIe infrastructure.",
+                "SingleFunction": "A single-function PCIe device."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "description": "An array of references to the chassis in which the PCIe device is contained.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Chassis@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "PCIeFunctions": {
+                    "description": "An array of references to PCIeFunctions exposed by this device.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this device exposes and shall reference a resource of type PCIeFunction.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "PCIeFunctions@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PCIeDevice": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the PCIeDevice resource.  It represents the properties of a PCIeDevice attached to a System.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this PCIe device.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "AssetTag": {
+                    "description": "The user assigned asset tag for this PCIe device.",
+                    "longDescription": "The value of this property shall be an identifying string used to track the PCIe device for inventory purposes.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DeviceType": {
+                    "$ref": "#/definitions/DeviceType",
+                    "description": "The device type for this PCIe device.",
+                    "longDescription": "The value of this property shall be the device type of the PCIe device such as SingleFunction or MultiFunction.",
+                    "readonly": true
+                },
+                "FirmwareVersion": {
+                    "description": "The version of firmware for this PCIe device.",
+                    "longDescription": "The value of this property shall be the firmware version of the PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "The links object contains the links to other resources that are related to this resource."
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this PCIe device.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the PCIe device. This organization might be the entity from whom the PCIe device is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "This is the model number for the PCIe device.",
+                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number for this PCIe device.",
+                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SKU": {
+                    "description": "This is the SKU for this PCIe device.",
+                    "longDescription": "The value of this property shall be the stock-keeping unit number for this PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this PCIe device.",
+                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#PCIeDevice.v1_2_0.PCIeDevice"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PCIeDevice/index.json b/static/redfish/v1/JsonSchemas/PCIeDevice/index.json
index 824a52a..daca30b 100644
--- a/static/redfish/v1/JsonSchemas/PCIeDevice/index.json
+++ b/static/redfish/v1/JsonSchemas/PCIeDevice/index.json
@@ -1,266 +1,21 @@
 {
-    "$ref": "#/definitions/PCIeDevice",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "DeviceType": {
-            "enum": [
-                "SingleFunction",
-                "MultiFunction",
-                "Simulated"
-            ],
-            "enumDescriptions": {
-                "MultiFunction": "A multi-function PCIe device.",
-                "Simulated": "A PCIe device which is not currently physically present, but is being simulated by the PCIe infrastructure.",
-                "SingleFunction": "A single-function PCIe device."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "description": "An array of references to the chassis in which the PCIe device is contained.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical container associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Chassis@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "PCIeFunctions": {
-                    "description": "An array of references to PCIeFunctions exposed by this device.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this device exposes and shall reference a resource of type PCIeFunction.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "PCIeFunctions@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PCIeDevice": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the PCIeDevice resource.  It represents the properties of a PCIeDevice attached to a System.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this PCIe device.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "AssetTag": {
-                    "description": "The user assigned asset tag for this PCIe device.",
-                    "longDescription": "The value of this property shall be an identifying string used to track the PCIe device for inventory purposes.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DeviceType": {
-                    "$ref": "#/definitions/DeviceType",
-                    "description": "The device type for this PCIe device.",
-                    "longDescription": "The value of this property shall be the device type of the PCIe device such as SingleFunction or MultiFunction.",
-                    "readonly": true
-                },
-                "FirmwareVersion": {
-                    "description": "The version of firmware for this PCIe device.",
-                    "longDescription": "The value of this property shall be the firmware version of the PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "The links object contains the links to other resources that are related to this resource."
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this PCIe device.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the PCIe device. This organization might be the entity from whom the PCIe device is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "This is the model number for the PCIe device.",
-                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number for this PCIe device.",
-                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SKU": {
-                    "description": "This is the SKU for this PCIe device.",
-                    "longDescription": "The value of this property shall be the stock-keeping unit number for this PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this PCIe device.",
-                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/PCIeDevice",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "PCIeDevice Schema File",
+    "Schema": "#PCIeDevice.PCIeDevice",
+    "Description": "PCIeDevice Schema File Location",
+    "Id": "PCIeDevice",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json",
+            "Uri": "/redfish/v1/JSONSchemas/PCIeDevice/PCIeDevice.json"
         }
-    },
-    "title": "#PCIeDevice.v1_2_0.PCIeDevice"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json b/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json
new file mode 100644
index 0000000..1ba6eb8
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json
@@ -0,0 +1,364 @@
+{
+    "$ref": "#/definitions/PCIeFunction",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "DeviceClass": {
+            "enum": [
+                "UnclassifiedDevice",
+                "MassStorageController",
+                "NetworkController",
+                "DisplayController",
+                "MultimediaController",
+                "MemoryController",
+                "Bridge",
+                "CommunicationController",
+                "GenericSystemPeripheral",
+                "InputDeviceController",
+                "DockingStation",
+                "Processor",
+                "SerialBusController",
+                "WirelessController",
+                "IntelligentController",
+                "SatelliteCommunicationsController",
+                "EncryptionController",
+                "SignalProcessingController",
+                "ProcessingAccelerators",
+                "NonEssentialInstrumentation",
+                "Coprocessor",
+                "UnassignedClass",
+                "Other"
+            ],
+            "enumDescriptions": {
+                "Bridge": "A bridge.",
+                "CommunicationController": "A communication controller.",
+                "Coprocessor": "A coprocessor.",
+                "DisplayController": "A display controller.",
+                "DockingStation": "A docking station.",
+                "EncryptionController": "An encryption controller.",
+                "GenericSystemPeripheral": "A generic system peripheral.",
+                "InputDeviceController": "An input device controller.",
+                "IntelligentController": "An intelligent controller.",
+                "MassStorageController": "A mass storage controller.",
+                "MemoryController": "A memory controller.",
+                "MultimediaController": "A multimedia controller.",
+                "NetworkController": "A network controller.",
+                "NonEssentialInstrumentation": "A non-essential instrumentation.",
+                "Other": "A other class. The function Device Class Id needs to be verified.",
+                "ProcessingAccelerators": "A processing accelerators.",
+                "Processor": "A processor.",
+                "SatelliteCommunicationsController": "A satellite communications controller.",
+                "SerialBusController": "A serial bus controller.",
+                "SignalProcessingController": "A signal processing controller.",
+                "UnassignedClass": "An unassigned class.",
+                "UnclassifiedDevice": "An unclassified device.",
+                "WirelessController": "A wireless controller."
+            },
+            "type": "string"
+        },
+        "FunctionType": {
+            "enum": [
+                "Physical",
+                "Virtual"
+            ],
+            "enumDescriptions": {
+                "Physical": "A physical PCie function.",
+                "Virtual": "A virtual PCIe function."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Drives": {
+                    "description": "An array of references to the drives which the PCIe device produces.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type Drive that represents the storage drives associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Drives@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "EthernetInterfaces": {
+                    "description": "An array of references to the ethernet interfaces which the PCIe device produces.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type EthernetInterface that represents the network interfaces associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "EthernetInterfaces@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "NetworkDeviceFunctions": {
+                    "description": "An array of references to the Network Device Functions which the PCIe device produces.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
+                    },
+                    "longDescription": "The value of this property shall be an array of references to resources of type NetworkDeviceFunction that represents the network device functions associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetworkDeviceFunctions@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "PCIeDevice": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "A reference to the PCIeDevice on which this function resides.",
+                    "longDescription": "The value of this property shall be a reference to the resource that this function is a part of and shall reference a resource of type PCIeDevice.",
+                    "readonly": true
+                },
+                "StorageControllers": {
+                    "description": "An array of references to the storage controllers which the PCIe device produces.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type StorageController that represents the storage controllers associated with this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "StorageControllers@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PCIeFunction": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the PCIeFunction resource.  It represents the properties of a PCIeFunction attached to a System.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "ClassCode": {
+                    "description": "The Class Code of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Class Code of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DeviceClass": {
+                    "$ref": "#/definitions/DeviceClass",
+                    "description": "The class for this PCIe Function.",
+                    "longDescription": "The value of this property shall be the device class of the PCIe device function such as Storage, Network, Memory etc.",
+                    "readonly": true
+                },
+                "DeviceId": {
+                    "description": "The Device ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Device ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FunctionId": {
+                    "description": "The the PCIe Function identifier.",
+                    "longDescription": "The value of this property shall the PCIe device function number within a given PCIe device.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "FunctionType": {
+                    "$ref": "#/definitions/FunctionType",
+                    "description": "The type of the PCIe Function.",
+                    "longDescription": "The value of this property shall be the function type of the PCIe device function such as Physical or Virtual.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "The links object contains the links to other resources that are related to this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "RevisionId": {
+                    "description": "The Revision ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Revision ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){1}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "SubsystemId": {
+                    "description": "The Subsystem ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Subsystem ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SubsystemVendorId": {
+                    "description": "The Subsystem Vendor ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VendorId": {
+                    "description": "The Vendor ID of this PCIe function.",
+                    "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.",
+                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#PCIeFunction.v1_2_0.PCIeFunction"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PCIeFunction/index.json b/static/redfish/v1/JsonSchemas/PCIeFunction/index.json
index 1ba6eb8..afda2dc 100644
--- a/static/redfish/v1/JsonSchemas/PCIeFunction/index.json
+++ b/static/redfish/v1/JsonSchemas/PCIeFunction/index.json
@@ -1,364 +1,21 @@
 {
-    "$ref": "#/definitions/PCIeFunction",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "DeviceClass": {
-            "enum": [
-                "UnclassifiedDevice",
-                "MassStorageController",
-                "NetworkController",
-                "DisplayController",
-                "MultimediaController",
-                "MemoryController",
-                "Bridge",
-                "CommunicationController",
-                "GenericSystemPeripheral",
-                "InputDeviceController",
-                "DockingStation",
-                "Processor",
-                "SerialBusController",
-                "WirelessController",
-                "IntelligentController",
-                "SatelliteCommunicationsController",
-                "EncryptionController",
-                "SignalProcessingController",
-                "ProcessingAccelerators",
-                "NonEssentialInstrumentation",
-                "Coprocessor",
-                "UnassignedClass",
-                "Other"
-            ],
-            "enumDescriptions": {
-                "Bridge": "A bridge.",
-                "CommunicationController": "A communication controller.",
-                "Coprocessor": "A coprocessor.",
-                "DisplayController": "A display controller.",
-                "DockingStation": "A docking station.",
-                "EncryptionController": "An encryption controller.",
-                "GenericSystemPeripheral": "A generic system peripheral.",
-                "InputDeviceController": "An input device controller.",
-                "IntelligentController": "An intelligent controller.",
-                "MassStorageController": "A mass storage controller.",
-                "MemoryController": "A memory controller.",
-                "MultimediaController": "A multimedia controller.",
-                "NetworkController": "A network controller.",
-                "NonEssentialInstrumentation": "A non-essential instrumentation.",
-                "Other": "A other class. The function Device Class Id needs to be verified.",
-                "ProcessingAccelerators": "A processing accelerators.",
-                "Processor": "A processor.",
-                "SatelliteCommunicationsController": "A satellite communications controller.",
-                "SerialBusController": "A serial bus controller.",
-                "SignalProcessingController": "A signal processing controller.",
-                "UnassignedClass": "An unassigned class.",
-                "UnclassifiedDevice": "An unclassified device.",
-                "WirelessController": "A wireless controller."
-            },
-            "type": "string"
-        },
-        "FunctionType": {
-            "enum": [
-                "Physical",
-                "Virtual"
-            ],
-            "enumDescriptions": {
-                "Physical": "A physical PCie function.",
-                "Virtual": "A virtual PCIe function."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Drives": {
-                    "description": "An array of references to the drives which the PCIe device produces.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type Drive that represents the storage drives associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Drives@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "EthernetInterfaces": {
-                    "description": "An array of references to the ethernet interfaces which the PCIe device produces.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type EthernetInterface that represents the network interfaces associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "EthernetInterfaces@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "NetworkDeviceFunctions": {
-                    "description": "An array of references to the Network Device Functions which the PCIe device produces.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
-                    },
-                    "longDescription": "The value of this property shall be an array of references to resources of type NetworkDeviceFunction that represents the network device functions associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetworkDeviceFunctions@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "PCIeDevice": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "A reference to the PCIeDevice on which this function resides.",
-                    "longDescription": "The value of this property shall be a reference to the resource that this function is a part of and shall reference a resource of type PCIeDevice.",
-                    "readonly": true
-                },
-                "StorageControllers": {
-                    "description": "An array of references to the storage controllers which the PCIe device produces.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type StorageController that represents the storage controllers associated with this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "StorageControllers@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PCIeFunction": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the PCIeFunction resource.  It represents the properties of a PCIeFunction attached to a System.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "ClassCode": {
-                    "description": "The Class Code of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Class Code of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){3}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DeviceClass": {
-                    "$ref": "#/definitions/DeviceClass",
-                    "description": "The class for this PCIe Function.",
-                    "longDescription": "The value of this property shall be the device class of the PCIe device function such as Storage, Network, Memory etc.",
-                    "readonly": true
-                },
-                "DeviceId": {
-                    "description": "The Device ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Device ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FunctionId": {
-                    "description": "The the PCIe Function identifier.",
-                    "longDescription": "The value of this property shall the PCIe device function number within a given PCIe device.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "FunctionType": {
-                    "$ref": "#/definitions/FunctionType",
-                    "description": "The type of the PCIe Function.",
-                    "longDescription": "The value of this property shall be the function type of the PCIe device function such as Physical or Virtual.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "The links object contains the links to other resources that are related to this resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "RevisionId": {
-                    "description": "The Revision ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Revision ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){1}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                },
-                "SubsystemId": {
-                    "description": "The Subsystem ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Subsystem ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SubsystemVendorId": {
-                    "description": "The Subsystem Vendor ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VendorId": {
-                    "description": "The Vendor ID of this PCIe function.",
-                    "longDescription": "The value of this property shall be the PCI Vendor ID of the PCIe device function.",
-                    "pattern": "^0[xX](([a-fA-F]|[0-9]){2}){2}$",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/PCIeFunction",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "PCIeFunction Schema File",
+    "Schema": "#PCIeFunction.PCIeFunction",
+    "Description": "PCIeFunction Schema File Location",
+    "Id": "PCIeFunction",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json",
+            "Uri": "/redfish/v1/JSONSchemas/PCIeFunction/PCIeFunction.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#PCIeFunction.v1_2_0.PCIeFunction"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PhysicalContext/PhysicalContext.json b/static/redfish/v1/JsonSchemas/PhysicalContext/PhysicalContext.json
new file mode 100644
index 0000000..b26e8ee
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/PhysicalContext/PhysicalContext.json
@@ -0,0 +1,61 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "PhysicalContext": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "Room",
+                "Intake",
+                "Exhaust",
+                "Front",
+                "Back",
+                "Upper",
+                "Lower",
+                "CPU",
+                "GPU",
+                "Backplane",
+                "SystemBoard",
+                "PowerSupply",
+                "VoltageRegulator",
+                "StorageDevice",
+                "NetworkingDevice",
+                "ComputeBay",
+                "StorageBay",
+                "NetworkBay",
+                "ExpansionBay",
+                "PowerSupplyBay",
+                "Memory",
+                "Chassis",
+                "Fan"
+            ],
+            "enumDescriptions": {
+                "Back": "The back of the chassis.",
+                "Backplane": "A backplane within the chassis.",
+                "CPU": "A Processor (CPU).",
+                "Chassis": "The entire chassis.",
+                "ComputeBay": "Within a compute bay.",
+                "Exhaust": "The exhaust point of the chassis.",
+                "ExpansionBay": "Within an expansion bay.",
+                "Fan": "A fan.",
+                "Front": "The front of the chassis.",
+                "GPU": "A Graphics Processor (GPU).",
+                "Intake": "The intake point of the chassis.",
+                "Lower": "The lower portion of the chassis.",
+                "Memory": "A memory device.",
+                "NetworkBay": "Within a networking bay.",
+                "NetworkingDevice": "A networking device.",
+                "PowerSupply": "A power supply.",
+                "PowerSupplyBay": "Within a power supply bay.",
+                "Room": "The room.",
+                "StorageBay": "Within a storage bay.",
+                "StorageDevice": "A storage device.",
+                "SystemBoard": "The system board (PCB).",
+                "Upper": "The upper portion of the chassis.",
+                "VoltageRegulator": "A voltage regulator device."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#PhysicalContext.v1_3_0"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PhysicalContext/index.json b/static/redfish/v1/JsonSchemas/PhysicalContext/index.json
index b26e8ee..10b6fc9 100644
--- a/static/redfish/v1/JsonSchemas/PhysicalContext/index.json
+++ b/static/redfish/v1/JsonSchemas/PhysicalContext/index.json
@@ -1,61 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "PhysicalContext": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "Room",
-                "Intake",
-                "Exhaust",
-                "Front",
-                "Back",
-                "Upper",
-                "Lower",
-                "CPU",
-                "GPU",
-                "Backplane",
-                "SystemBoard",
-                "PowerSupply",
-                "VoltageRegulator",
-                "StorageDevice",
-                "NetworkingDevice",
-                "ComputeBay",
-                "StorageBay",
-                "NetworkBay",
-                "ExpansionBay",
-                "PowerSupplyBay",
-                "Memory",
-                "Chassis",
-                "Fan"
-            ],
-            "enumDescriptions": {
-                "Back": "The back of the chassis.",
-                "Backplane": "A backplane within the chassis.",
-                "CPU": "A Processor (CPU).",
-                "Chassis": "The entire chassis.",
-                "ComputeBay": "Within a compute bay.",
-                "Exhaust": "The exhaust point of the chassis.",
-                "ExpansionBay": "Within an expansion bay.",
-                "Fan": "A fan.",
-                "Front": "The front of the chassis.",
-                "GPU": "A Graphics Processor (GPU).",
-                "Intake": "The intake point of the chassis.",
-                "Lower": "The lower portion of the chassis.",
-                "Memory": "A memory device.",
-                "NetworkBay": "Within a networking bay.",
-                "NetworkingDevice": "A networking device.",
-                "PowerSupply": "A power supply.",
-                "PowerSupplyBay": "Within a power supply bay.",
-                "Room": "The room.",
-                "StorageBay": "Within a storage bay.",
-                "StorageDevice": "A storage device.",
-                "SystemBoard": "The system board (PCB).",
-                "Upper": "The upper portion of the chassis.",
-                "VoltageRegulator": "A voltage regulator device."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/PhysicalContext",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "PhysicalContext Schema File",
+    "Schema": "#PhysicalContext.PhysicalContext",
+    "Description": "PhysicalContext Schema File Location",
+    "Id": "PhysicalContext",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json",
+            "Uri": "/redfish/v1/JSONSchemas/PhysicalContext/PhysicalContext.json"
         }
-    },
-    "title": "#PhysicalContext.v1_3_0"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Port/Port.json b/static/redfish/v1/JsonSchemas/Port/Port.json
new file mode 100644
index 0000000..47eed75
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Port/Port.json
@@ -0,0 +1,311 @@
+{
+    "$ref": "#/definitions/Port",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Port.Reset": {
+                    "$ref": "#/definitions/Reset"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AssociatedEndpoints": {
+                    "description": "An array of references to the endpoints that connect to the switch through this port.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "AssociatedEndpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "ConnectedSwitchPorts": {
+                    "description": "An array of references to the ports that connect to the switch through this port.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Port.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ConnectedSwitchPorts@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "ConnectedSwitches": {
+                    "description": "An array of references to the switches that connect to the switch through this port.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Switch.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ConnectedSwitches@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Port": {
+            "additionalProperties": false,
+            "description": "Port contains properties describing a port of a switch.",
+            "longDescription": "This resource shall be used to represent a simple switch port for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "CurrentSpeedGbps": {
+                    "description": "The current speed of this port.",
+                    "longDescription": "The value of this property shall be the speed of this port currently negotiated and running.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Gbit/s"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "MaxSpeedGbps": {
+                    "description": "The maximum speed of this port as currently configured.",
+                    "longDescription": "The value of this property shall be the maximum speed of which this port is capable of being configured.  If capable of auto-negotiation, the system shall attempt to negotiate at the maximum speed set.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Gbit/s"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PortId": {
+                    "description": "This is the label of this port on the physical switch package.",
+                    "longDescription": "The value of this property shall be the name of the switch port as indicated on the outside of the switch.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PortProtocol": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The protocol being sent over this port.",
+                    "longDescription": "The value of this property shall contain the protocol being sent over this port.",
+                    "readonly": true
+                },
+                "PortType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PortType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the type of this port.",
+                    "longDescription": "The value of this property shall be the port type for this port.",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Width": {
+                    "description": "The number of lanes, phys, or other physical transport links that this port contains.",
+                    "longDescription": "The value of this property shall be the number of physical transport links that this port contains.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "PortType": {
+            "enum": [
+                "UpstreamPort",
+                "DownstreamPort",
+                "InterswitchPort",
+                "ManagementPort",
+                "BidirectionalPort",
+                "UnconfiguredPort"
+            ],
+            "enumDescriptions": {
+                "BidirectionalPort": "This port connects to any type of device.",
+                "DownstreamPort": "This port connects to a target device.",
+                "InterswitchPort": "This port connects to another switch.",
+                "ManagementPort": "This port connects to a switch manager.",
+                "UnconfiguredPort": "This port has not yet been configured.",
+                "UpstreamPort": "This port connects to a host device."
+            },
+            "type": "string"
+        },
+        "Reset": {
+            "additionalProperties": false,
+            "description": "This action is used to reset this port.",
+            "longDescription": "This action shall perform a reset of this port.",
+            "parameters": {
+                "ResetType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
+                    "description": "The type of reset to be performed.",
+                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#Port.v1_1_0.Port"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Port/index.json b/static/redfish/v1/JsonSchemas/Port/index.json
index 47eed75..f7b75e7 100644
--- a/static/redfish/v1/JsonSchemas/Port/index.json
+++ b/static/redfish/v1/JsonSchemas/Port/index.json
@@ -1,311 +1,21 @@
 {
-    "$ref": "#/definitions/Port",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Port.Reset": {
-                    "$ref": "#/definitions/Reset"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AssociatedEndpoints": {
-                    "description": "An array of references to the endpoints that connect to the switch through this port.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "AssociatedEndpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "ConnectedSwitchPorts": {
-                    "description": "An array of references to the ports that connect to the switch through this port.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Port.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ConnectedSwitchPorts@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "ConnectedSwitches": {
-                    "description": "An array of references to the switches that connect to the switch through this port.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this port is associated with and shall reference a resource of type Switch.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ConnectedSwitches@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Port": {
-            "additionalProperties": false,
-            "description": "Port contains properties describing a port of a switch.",
-            "longDescription": "This resource shall be used to represent a simple switch port for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "CurrentSpeedGbps": {
-                    "description": "The current speed of this port.",
-                    "longDescription": "The value of this property shall be the speed of this port currently negotiated and running.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Gbit/s"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "MaxSpeedGbps": {
-                    "description": "The maximum speed of this port as currently configured.",
-                    "longDescription": "The value of this property shall be the maximum speed of which this port is capable of being configured.  If capable of auto-negotiation, the system shall attempt to negotiate at the maximum speed set.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Gbit/s"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PortId": {
-                    "description": "This is the label of this port on the physical switch package.",
-                    "longDescription": "The value of this property shall be the name of the switch port as indicated on the outside of the switch.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PortProtocol": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The protocol being sent over this port.",
-                    "longDescription": "The value of this property shall contain the protocol being sent over this port.",
-                    "readonly": true
-                },
-                "PortType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PortType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the type of this port.",
-                    "longDescription": "The value of this property shall be the port type for this port.",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Width": {
-                    "description": "The number of lanes, phys, or other physical transport links that this port contains.",
-                    "longDescription": "The value of this property shall be the number of physical transport links that this port contains.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "PortType": {
-            "enum": [
-                "UpstreamPort",
-                "DownstreamPort",
-                "InterswitchPort",
-                "ManagementPort",
-                "BidirectionalPort",
-                "UnconfiguredPort"
-            ],
-            "enumDescriptions": {
-                "BidirectionalPort": "This port connects to any type of device.",
-                "DownstreamPort": "This port connects to a target device.",
-                "InterswitchPort": "This port connects to another switch.",
-                "ManagementPort": "This port connects to a switch manager.",
-                "UnconfiguredPort": "This port has not yet been configured.",
-                "UpstreamPort": "This port connects to a host device."
-            },
-            "type": "string"
-        },
-        "Reset": {
-            "additionalProperties": false,
-            "description": "This action is used to reset this port.",
-            "longDescription": "This action shall perform a reset of this port.",
-            "parameters": {
-                "ResetType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
-                    "description": "The type of reset to be performed.",
-                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Port",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Port Schema File",
+    "Schema": "#Port.Port",
+    "Description": "Port Schema File Location",
+    "Id": "Port",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Port.json",
+            "Uri": "/redfish/v1/JSONSchemas/Port/Port.json"
         }
-    },
-    "title": "#Port.v1_1_0.Port"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Power/Power.json b/static/redfish/v1/JsonSchemas/Power/Power.json
new file mode 100644
index 0000000..8634c7c
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Power/Power.json
@@ -0,0 +1,1126 @@
+{
+    "$ref": "#/definitions/Power",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "InputRange": {
+            "additionalProperties": false,
+            "description": "This type describes an input range for a power supply.",
+            "longDescription": "This type shall describe an input range that the associated power supply is able to utilize.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "InputType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/InputType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Input type (AC or DC).",
+                    "longDescription": "This property shall contain the input type (AC or DC) of the associated range.",
+                    "readonly": true
+                },
+                "MaximumFrequencyHz": {
+                    "description": "The maximum line input frequency at which this power supply input range is effective.",
+                    "longDescription": "This property shall contain the value in Hertz of the maximum line input frequency which the power supply is capable of consuming for this range.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Hz"
+                },
+                "MaximumVoltage": {
+                    "description": "The maximum line input voltage at which this power supply input range is effective.",
+                    "longDescription": "This property shall contain the value in Volts of the maximum line input voltage which the power supply is capable of consuming for this range.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "MinimumFrequencyHz": {
+                    "description": "The minimum line input frequency at which this power supply input range is effective.",
+                    "longDescription": "This property shall contain the value in Hertz of the minimum line input frequency which the power supply is capable of consuming for this range.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Hz"
+                },
+                "MinimumVoltage": {
+                    "description": "The minimum line input voltage at which this power supply input range is effective.",
+                    "longDescription": "This property shall contain the value in Volts of the minimum line input voltage which the power supply is capable of consuming for this range.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "OutputWattage": {
+                    "description": "The maximum capacity of this Power Supply when operating in this input range.",
+                    "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver while operating in this input range.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                }
+            },
+            "type": "object"
+        },
+        "InputType": {
+            "enum": [
+                "AC",
+                "DC"
+            ],
+            "enumDescriptions": {
+                "AC": "Alternating Current (AC) input range.",
+                "DC": "Direct Current (DC) input range."
+            },
+            "type": "string"
+        },
+        "LineInputVoltageType": {
+            "enum": [
+                "Unknown",
+                "ACLowLine",
+                "ACMidLine",
+                "ACHighLine",
+                "DCNeg48V",
+                "DC380V",
+                "AC120V",
+                "AC240V",
+                "AC277V",
+                "ACandDCWideRange",
+                "ACWideRange",
+                "DC240V"
+            ],
+            "enumDeprecated": {
+                "ACHighLine": "This value has been Deprecated in favor of AC277V.",
+                "ACLowLine": "This value has been Deprecated in favor of AC120V.",
+                "ACMidLine": "This value has been Deprecated in favor of AC240V."
+            },
+            "enumDescriptions": {
+                "AC120V": "AC 120V nominal input.",
+                "AC240V": "AC 240V nominal input.",
+                "AC277V": "AC 277V nominal input.",
+                "ACHighLine": "277V AC input.",
+                "ACLowLine": "100-127V AC input.",
+                "ACMidLine": "200-240V AC input.",
+                "ACWideRange": "Wide range AC input.",
+                "ACandDCWideRange": "Wide range AC or DC input.",
+                "DC240V": "DC 240V nominal input.",
+                "DC380V": "High Voltage DC input (380V).",
+                "DCNeg48V": "-48V DC input.",
+                "Unknown": "The power supply line input voltage type cannot be determined."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Power": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Power Metrics.  It represents the properties for Power Consumption and Power Limiting.",
+            "longDescription": "This resource shall be used to represent a power metrics resource for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PowerControl": {
+                    "description": "This is the definition for power control function (power reading/limiting).",
+                    "items": {
+                        "$ref": "#/definitions/PowerControl"
+                    },
+                    "longDescription": "These properties shall be the definition for power control (power reading and limiting) for a Redfish implementation.",
+                    "type": "array"
+                },
+                "PowerControl@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "PowerSupplies": {
+                    "description": "Details of the power supplies associated with this system or device.",
+                    "items": {
+                        "$ref": "#/definitions/PowerSupply"
+                    },
+                    "longDescription": "This object shall contain details of the power supplies associated with this system or device.",
+                    "type": "array"
+                },
+                "PowerSupplies@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Redundancy": {
+                    "description": "Redundancy information for the power subsystem of this system or device.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Voltages": {
+                    "description": "This is the definition for voltage sensors.",
+                    "items": {
+                        "$ref": "#/definitions/Voltage"
+                    },
+                    "longDescription": "These properties shall be the definition for voltage sensors for a Redfish implementation.",
+                    "type": "array"
+                },
+                "Voltages@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "PowerControl": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/PowerControlActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Name": {
+                    "description": "Power Control Function name.",
+                    "longDescription": "The value of this property shall be the name of the Voltage sensor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PhysicalContext": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
+                    "description": "Describes the area, device, or set of devices to which this power control applies.",
+                    "longDescription": "The value of this property shall be a description of the affected device(s) or region within the chassis to which this power control applies.",
+                    "readonly": true
+                },
+                "PowerAllocatedWatts": {
+                    "description": "The total amount of power that has been allocated (or budegeted)to  chassis resources.",
+                    "longDescription": "The value of this property shall represent the total power currently allocated to chassis resources.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerAvailableWatts": {
+                    "description": "The amount of power not already budgeted and therefore available for additional allocation. (powerCapacity - powerAllocated).  This indicates how much reserve power capacity is left.",
+                    "longDescription": "The value of this property shall represent the amount of power capacity (in Watts) not already allocated and shall equal PowerCapacityWatts - PowerAllocatedWatts.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerCapacityWatts": {
+                    "description": "The total amount of power available to the chassis for allocation. This may the power supply capacity, or power budget assigned to the chassis from an up-stream chassis.",
+                    "longDescription": "The value of this property shall represent the total power capacity that is available for allocation to the chassis resources.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerConsumedWatts": {
+                    "description": "The actual power being consumed by the chassis.",
+                    "longDescription": "The value of this property shall represent the actual power being consumed (in Watts) by the chassis.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerLimit": {
+                    "$ref": "#/definitions/PowerLimit",
+                    "description": "Power limit status and configuration information for this chassis.",
+                    "longDescription": "This object shall contain power limit status and configuration information for this chassis."
+                },
+                "PowerMetrics": {
+                    "$ref": "#/definitions/PowerMetric",
+                    "description": "Power readings for this chassis.",
+                    "longDescription": "This object shall contain power metrics for power readings (interval, min/max/ave power consumption) for the chassis."
+                },
+                "PowerRequestedWatts": {
+                    "description": "The potential power that the chassis resources are requesting which may be higher than the current level being consumed since requested power includes budget that the chassis resource wants for future use.",
+                    "longDescription": "The value of this property shall represent the amount of power (in Watts) that the chassis resource is currently requesting be budgeted to it for future use.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "RelatedItem": {
+                    "description": "The ID(s) of the resources associated with this Power Limit.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "type": "object"
+        },
+        "PowerControlActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/PowerControlOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "PowerControlOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PowerLimit": {
+            "additionalProperties": false,
+            "description": "This object contains power limit status and configuration information for the chassis.",
+            "longDescription": "This type shall contain power limit status and configuration information for this chassis.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "CorrectionInMs": {
+                    "description": "The time required for the limiting process to reduce power consumption to below the limit.",
+                    "longDescription": "The value of this property shall represent the time interval in ms required for the limiting process to react and reduce the power consumption below the limit.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "ms"
+                },
+                "LimitException": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PowerLimitException"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The action that is taken if the power cannot be maintained below the LimitInWatts.",
+                    "longDescription": "The value of this property shall represent the action to be taken if the resource power consumption can not be limited below the specified limit after several correction time periods.",
+                    "readonly": false
+                },
+                "LimitInWatts": {
+                    "description": "The Power limit in watts. Set to null to disable power capping.",
+                    "longDescription": "The value of this property shall represent the power cap limit in watts for the resource.  If set to null, power capping shall be disabled.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                }
+            },
+            "type": "object"
+        },
+        "PowerLimitException": {
+            "enum": [
+                "NoAction",
+                "HardPowerOff",
+                "LogEventOnly",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "HardPowerOff": "Turn the power off immediately when the limit is exceeded.",
+                "LogEventOnly": "Log an event when the limit is exceeded, but take no further action.",
+                "NoAction": "Take no action when the limit is exceeded.",
+                "Oem": "Take an OEM-defined action."
+            },
+            "type": "string"
+        },
+        "PowerMetric": {
+            "additionalProperties": false,
+            "description": "This type describe the power metrics for a resource.",
+            "longDescription": "This type shall contain power metrics for power readings (interval, min/max/ave power consumption) for a resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AverageConsumedWatts": {
+                    "description": "The average power level over the measurement window (the last IntervalInMin minutes).",
+                    "longDescription": "The value of this property shall represent the average power level that occured averaged over the last IntervalInMin minutes.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "IntervalInMin": {
+                    "description": "The time interval (or window) in which the PowerMetrics are measured over.",
+                    "longDescription": "The value of this property shall represent the time interval (or window), in minutes, in which the PowerMetrics properties are measured over.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "min"
+                },
+                "MaxConsumedWatts": {
+                    "description": "The highest power consumption level that has occured over the measurement window (the last IntervalInMin minutes).",
+                    "longDescription": "The value of this property shall represent the maximum power level in watts that occured within the last IntervalInMin minutes.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "MinConsumedWatts": {
+                    "description": "The lowest power consumption level over the measurement window (the last IntervalInMin minutes).",
+                    "longDescription": "The value of this property shall represent the minimum power level in watts that occured within the last IntervalInMin minutes.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                }
+            },
+            "type": "object"
+        },
+        "PowerSupply": {
+            "additionalProperties": false,
+            "description": "Details of a power supplies associated with this system or device.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/PowerSupplyActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this power supply.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "EfficiencyPercent": {
+                    "description": "The measured efficiency of this Power Supply as a percentage.",
+                    "longDescription": "This property shall contain the value of the measured power efficiency, as a percentage, of the associated power supply.",
+                    "maximum": 100,
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "%"
+                },
+                "FirmwareVersion": {
+                    "description": "The firmware version for this Power Supply.",
+                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "HotPluggable": {
+                    "description": "Indicates if this device can be inserted or removed while the equipment is in operation.",
+                    "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state.  Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify the power supply.",
+                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this power supply.",
+                    "readonly": false
+                },
+                "InputRanges": {
+                    "description": "This is the input ranges that the power supply can use.",
+                    "items": {
+                        "$ref": "#/definitions/InputRange"
+                    },
+                    "longDescription": "The value of this property shall be a collection of ranges usable by the power supply unit.",
+                    "type": "array"
+                },
+                "LastPowerOutputWatts": {
+                    "description": "The average power output of this Power Supply.",
+                    "longDescription": "This property shall contain the average power output, measured in Watts, of the associated power supply.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "LineInputVoltage": {
+                    "description": "The line input voltage at which the Power Supply is operating.",
+                    "longDescription": "This property shall contain the value in Volts of the line input voltage (measured or configured for) that the power supply has been configured to operate with or is currently receiving.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "LineInputVoltageType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LineInputVoltageType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The line voltage type supported as an input to this Power Supply.",
+                    "longDescription": "This property shall contain the type of input line voltage supported by the associated power supply.",
+                    "readonly": true
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this power supply.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the power supply. This organization might be the entity from whom the power supply is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Model": {
+                    "description": "The model number for this Power Supply.",
+                    "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "description": "The name of the Power Supply.",
+                    "longDescription": "This property shall contain a descriptive name for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number for this Power Supply.",
+                    "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PowerCapacityWatts": {
+                    "description": "The maximum capacity of this Power Supply.",
+                    "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerInputWatts": {
+                    "description": "The measured input power of this Power Supply.",
+                    "longDescription": "This property shall contain the value of the measured input power, in Watts, of the associated power supply.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerOutputWatts": {
+                    "description": "The measured output power of this Power Supply.",
+                    "longDescription": "This property shall contain the value of the measured output power, in Watts, of the associated power supply.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "W"
+                },
+                "PowerSupplyType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PowerSupplyType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The Power Supply type (AC or DC).",
+                    "longDescription": "This property shall contain the input power type (AC or DC) of the associated power supply.",
+                    "readonly": true
+                },
+                "Redundancy": {
+                    "description": "This structure is used to show redundancy for power supplies.  The Component ids will reference the members of the redundancy groups.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "longDescription": "The values of the properties in this array shall be used to show redundancy for power supplies and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "RelatedItem": {
+                    "description": "The ID(s) of the resources associated with this Power Limit.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.",
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this Power Supply.",
+                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SparePartNumber": {
+                    "description": "The spare part number for this Power Supply.",
+                    "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated power supply.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "type": "object"
+        },
+        "PowerSupplyActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/PowerSupplyOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "PowerSupplyOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "PowerSupplyType": {
+            "enum": [
+                "Unknown",
+                "AC",
+                "DC",
+                "ACorDC"
+            ],
+            "enumDescriptions": {
+                "AC": "Alternating Current (AC) power supply.",
+                "ACorDC": "Power Supply supports both DC or AC.",
+                "DC": "Direct Current (DC) power supply.",
+                "Unknown": "The power supply type cannot be determined."
+            },
+            "type": "string"
+        },
+        "Voltage": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/VoltageActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "LowerThresholdCritical": {
+                    "description": "Below normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "LowerThresholdFatal": {
+                    "description": "Below normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the present reading is below the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "LowerThresholdNonCritical": {
+                    "description": "Below normal range.",
+                    "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "MaxReadingRange": {
+                    "description": "Maximum value for this Voltage sensor.",
+                    "longDescription": "The value of this property shall indicate the highest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MinReadingRange": {
+                    "description": "Minimum value for this Voltage sensor.",
+                    "longDescription": "The value of this property shall indicate the lowest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "Name": {
+                    "description": "Voltage sensor name.",
+                    "longDescription": "The value of this property shall be the name of the Voltage sensor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PhysicalContext": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
+                    "description": "Describes the area or device to which this voltage measurement applies.",
+                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this voltage measurement applies.",
+                    "readonly": true
+                },
+                "ReadingVolts": {
+                    "description": "The present reading of the voltage sensor.",
+                    "longDescription": "The value of this property shall be the present reading of the voltage sensor's reading.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "RelatedItem": {
+                    "description": "Describes the areas or devices to which this voltage measurement applies.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the areas or devices to which this voltage measurement applies.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SensorNumber": {
+                    "description": "A numerical identifier to represent the voltage sensor.",
+                    "longDescription": "The value of this property shall be a numerical identifier for this voltage sensor that is unique within this resource.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "UpperThresholdCritical": {
+                    "description": "Above normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "UpperThresholdFatal": {
+                    "description": "Above normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the present reading is above the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                },
+                "UpperThresholdNonCritical": {
+                    "description": "Above normal range.",
+                    "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "V"
+                }
+            },
+            "type": "object"
+        },
+        "VoltageActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/VoltageOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "VoltageOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#Power.v1_5_0.Power"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Power/index.json b/static/redfish/v1/JsonSchemas/Power/index.json
index 8634c7c..9ac3e32 100644
--- a/static/redfish/v1/JsonSchemas/Power/index.json
+++ b/static/redfish/v1/JsonSchemas/Power/index.json
@@ -1,1126 +1,21 @@
 {
-    "$ref": "#/definitions/Power",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "InputRange": {
-            "additionalProperties": false,
-            "description": "This type describes an input range for a power supply.",
-            "longDescription": "This type shall describe an input range that the associated power supply is able to utilize.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "InputType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/InputType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Input type (AC or DC).",
-                    "longDescription": "This property shall contain the input type (AC or DC) of the associated range.",
-                    "readonly": true
-                },
-                "MaximumFrequencyHz": {
-                    "description": "The maximum line input frequency at which this power supply input range is effective.",
-                    "longDescription": "This property shall contain the value in Hertz of the maximum line input frequency which the power supply is capable of consuming for this range.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Hz"
-                },
-                "MaximumVoltage": {
-                    "description": "The maximum line input voltage at which this power supply input range is effective.",
-                    "longDescription": "This property shall contain the value in Volts of the maximum line input voltage which the power supply is capable of consuming for this range.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "MinimumFrequencyHz": {
-                    "description": "The minimum line input frequency at which this power supply input range is effective.",
-                    "longDescription": "This property shall contain the value in Hertz of the minimum line input frequency which the power supply is capable of consuming for this range.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Hz"
-                },
-                "MinimumVoltage": {
-                    "description": "The minimum line input voltage at which this power supply input range is effective.",
-                    "longDescription": "This property shall contain the value in Volts of the minimum line input voltage which the power supply is capable of consuming for this range.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "OutputWattage": {
-                    "description": "The maximum capacity of this Power Supply when operating in this input range.",
-                    "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver while operating in this input range.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                }
-            },
-            "type": "object"
-        },
-        "InputType": {
-            "enum": [
-                "AC",
-                "DC"
-            ],
-            "enumDescriptions": {
-                "AC": "Alternating Current (AC) input range.",
-                "DC": "Direct Current (DC) input range."
-            },
-            "type": "string"
-        },
-        "LineInputVoltageType": {
-            "enum": [
-                "Unknown",
-                "ACLowLine",
-                "ACMidLine",
-                "ACHighLine",
-                "DCNeg48V",
-                "DC380V",
-                "AC120V",
-                "AC240V",
-                "AC277V",
-                "ACandDCWideRange",
-                "ACWideRange",
-                "DC240V"
-            ],
-            "enumDeprecated": {
-                "ACHighLine": "This value has been Deprecated in favor of AC277V.",
-                "ACLowLine": "This value has been Deprecated in favor of AC120V.",
-                "ACMidLine": "This value has been Deprecated in favor of AC240V."
-            },
-            "enumDescriptions": {
-                "AC120V": "AC 120V nominal input.",
-                "AC240V": "AC 240V nominal input.",
-                "AC277V": "AC 277V nominal input.",
-                "ACHighLine": "277V AC input.",
-                "ACLowLine": "100-127V AC input.",
-                "ACMidLine": "200-240V AC input.",
-                "ACWideRange": "Wide range AC input.",
-                "ACandDCWideRange": "Wide range AC or DC input.",
-                "DC240V": "DC 240V nominal input.",
-                "DC380V": "High Voltage DC input (380V).",
-                "DCNeg48V": "-48V DC input.",
-                "Unknown": "The power supply line input voltage type cannot be determined."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Power": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Power Metrics.  It represents the properties for Power Consumption and Power Limiting.",
-            "longDescription": "This resource shall be used to represent a power metrics resource for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PowerControl": {
-                    "description": "This is the definition for power control function (power reading/limiting).",
-                    "items": {
-                        "$ref": "#/definitions/PowerControl"
-                    },
-                    "longDescription": "These properties shall be the definition for power control (power reading and limiting) for a Redfish implementation.",
-                    "type": "array"
-                },
-                "PowerControl@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "PowerSupplies": {
-                    "description": "Details of the power supplies associated with this system or device.",
-                    "items": {
-                        "$ref": "#/definitions/PowerSupply"
-                    },
-                    "longDescription": "This object shall contain details of the power supplies associated with this system or device.",
-                    "type": "array"
-                },
-                "PowerSupplies@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Redundancy": {
-                    "description": "Redundancy information for the power subsystem of this system or device.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Voltages": {
-                    "description": "This is the definition for voltage sensors.",
-                    "items": {
-                        "$ref": "#/definitions/Voltage"
-                    },
-                    "longDescription": "These properties shall be the definition for voltage sensors for a Redfish implementation.",
-                    "type": "array"
-                },
-                "Voltages@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "PowerControl": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/PowerControlActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Name": {
-                    "description": "Power Control Function name.",
-                    "longDescription": "The value of this property shall be the name of the Voltage sensor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PhysicalContext": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
-                    "description": "Describes the area, device, or set of devices to which this power control applies.",
-                    "longDescription": "The value of this property shall be a description of the affected device(s) or region within the chassis to which this power control applies.",
-                    "readonly": true
-                },
-                "PowerAllocatedWatts": {
-                    "description": "The total amount of power that has been allocated (or budegeted)to  chassis resources.",
-                    "longDescription": "The value of this property shall represent the total power currently allocated to chassis resources.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerAvailableWatts": {
-                    "description": "The amount of power not already budgeted and therefore available for additional allocation. (powerCapacity - powerAllocated).  This indicates how much reserve power capacity is left.",
-                    "longDescription": "The value of this property shall represent the amount of power capacity (in Watts) not already allocated and shall equal PowerCapacityWatts - PowerAllocatedWatts.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerCapacityWatts": {
-                    "description": "The total amount of power available to the chassis for allocation. This may the power supply capacity, or power budget assigned to the chassis from an up-stream chassis.",
-                    "longDescription": "The value of this property shall represent the total power capacity that is available for allocation to the chassis resources.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerConsumedWatts": {
-                    "description": "The actual power being consumed by the chassis.",
-                    "longDescription": "The value of this property shall represent the actual power being consumed (in Watts) by the chassis.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerLimit": {
-                    "$ref": "#/definitions/PowerLimit",
-                    "description": "Power limit status and configuration information for this chassis.",
-                    "longDescription": "This object shall contain power limit status and configuration information for this chassis."
-                },
-                "PowerMetrics": {
-                    "$ref": "#/definitions/PowerMetric",
-                    "description": "Power readings for this chassis.",
-                    "longDescription": "This object shall contain power metrics for power readings (interval, min/max/ave power consumption) for the chassis."
-                },
-                "PowerRequestedWatts": {
-                    "description": "The potential power that the chassis resources are requesting which may be higher than the current level being consumed since requested power includes budget that the chassis resource wants for future use.",
-                    "longDescription": "The value of this property shall represent the amount of power (in Watts) that the chassis resource is currently requesting be budgeted to it for future use.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "RelatedItem": {
-                    "description": "The ID(s) of the resources associated with this Power Limit.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "type": "object"
-        },
-        "PowerControlActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/PowerControlOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "PowerControlOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PowerLimit": {
-            "additionalProperties": false,
-            "description": "This object contains power limit status and configuration information for the chassis.",
-            "longDescription": "This type shall contain power limit status and configuration information for this chassis.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "CorrectionInMs": {
-                    "description": "The time required for the limiting process to reduce power consumption to below the limit.",
-                    "longDescription": "The value of this property shall represent the time interval in ms required for the limiting process to react and reduce the power consumption below the limit.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "ms"
-                },
-                "LimitException": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PowerLimitException"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The action that is taken if the power cannot be maintained below the LimitInWatts.",
-                    "longDescription": "The value of this property shall represent the action to be taken if the resource power consumption can not be limited below the specified limit after several correction time periods.",
-                    "readonly": false
-                },
-                "LimitInWatts": {
-                    "description": "The Power limit in watts. Set to null to disable power capping.",
-                    "longDescription": "The value of this property shall represent the power cap limit in watts for the resource.  If set to null, power capping shall be disabled.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                }
-            },
-            "type": "object"
-        },
-        "PowerLimitException": {
-            "enum": [
-                "NoAction",
-                "HardPowerOff",
-                "LogEventOnly",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "HardPowerOff": "Turn the power off immediately when the limit is exceeded.",
-                "LogEventOnly": "Log an event when the limit is exceeded, but take no further action.",
-                "NoAction": "Take no action when the limit is exceeded.",
-                "Oem": "Take an OEM-defined action."
-            },
-            "type": "string"
-        },
-        "PowerMetric": {
-            "additionalProperties": false,
-            "description": "This type describe the power metrics for a resource.",
-            "longDescription": "This type shall contain power metrics for power readings (interval, min/max/ave power consumption) for a resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AverageConsumedWatts": {
-                    "description": "The average power level over the measurement window (the last IntervalInMin minutes).",
-                    "longDescription": "The value of this property shall represent the average power level that occured averaged over the last IntervalInMin minutes.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "IntervalInMin": {
-                    "description": "The time interval (or window) in which the PowerMetrics are measured over.",
-                    "longDescription": "The value of this property shall represent the time interval (or window), in minutes, in which the PowerMetrics properties are measured over.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "min"
-                },
-                "MaxConsumedWatts": {
-                    "description": "The highest power consumption level that has occured over the measurement window (the last IntervalInMin minutes).",
-                    "longDescription": "The value of this property shall represent the maximum power level in watts that occured within the last IntervalInMin minutes.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "MinConsumedWatts": {
-                    "description": "The lowest power consumption level over the measurement window (the last IntervalInMin minutes).",
-                    "longDescription": "The value of this property shall represent the minimum power level in watts that occured within the last IntervalInMin minutes.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                }
-            },
-            "type": "object"
-        },
-        "PowerSupply": {
-            "additionalProperties": false,
-            "description": "Details of a power supplies associated with this system or device.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/PowerSupplyActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this power supply.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "EfficiencyPercent": {
-                    "description": "The measured efficiency of this Power Supply as a percentage.",
-                    "longDescription": "This property shall contain the value of the measured power efficiency, as a percentage, of the associated power supply.",
-                    "maximum": 100,
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "%"
-                },
-                "FirmwareVersion": {
-                    "description": "The firmware version for this Power Supply.",
-                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "HotPluggable": {
-                    "description": "Indicates if this device can be inserted or removed while the equipment is in operation.",
-                    "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state.  Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify the power supply.",
-                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this power supply.",
-                    "readonly": false
-                },
-                "InputRanges": {
-                    "description": "This is the input ranges that the power supply can use.",
-                    "items": {
-                        "$ref": "#/definitions/InputRange"
-                    },
-                    "longDescription": "The value of this property shall be a collection of ranges usable by the power supply unit.",
-                    "type": "array"
-                },
-                "LastPowerOutputWatts": {
-                    "description": "The average power output of this Power Supply.",
-                    "longDescription": "This property shall contain the average power output, measured in Watts, of the associated power supply.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "LineInputVoltage": {
-                    "description": "The line input voltage at which the Power Supply is operating.",
-                    "longDescription": "This property shall contain the value in Volts of the line input voltage (measured or configured for) that the power supply has been configured to operate with or is currently receiving.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "LineInputVoltageType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LineInputVoltageType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The line voltage type supported as an input to this Power Supply.",
-                    "longDescription": "This property shall contain the type of input line voltage supported by the associated power supply.",
-                    "readonly": true
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this power supply.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the power supply. This organization might be the entity from whom the power supply is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Model": {
-                    "description": "The model number for this Power Supply.",
-                    "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "description": "The name of the Power Supply.",
-                    "longDescription": "This property shall contain a descriptive name for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number for this Power Supply.",
-                    "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PowerCapacityWatts": {
-                    "description": "The maximum capacity of this Power Supply.",
-                    "longDescription": "This property shall contiain the maximum amount of power, in Watts, that the associated power supply is rated to deliver.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerInputWatts": {
-                    "description": "The measured input power of this Power Supply.",
-                    "longDescription": "This property shall contain the value of the measured input power, in Watts, of the associated power supply.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerOutputWatts": {
-                    "description": "The measured output power of this Power Supply.",
-                    "longDescription": "This property shall contain the value of the measured output power, in Watts, of the associated power supply.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "W"
-                },
-                "PowerSupplyType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PowerSupplyType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The Power Supply type (AC or DC).",
-                    "longDescription": "This property shall contain the input power type (AC or DC) of the associated power supply.",
-                    "readonly": true
-                },
-                "Redundancy": {
-                    "description": "This structure is used to show redundancy for power supplies.  The Component ids will reference the members of the redundancy groups.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "longDescription": "The values of the properties in this array shall be used to show redundancy for power supplies and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "RelatedItem": {
-                    "description": "The ID(s) of the resources associated with this Power Limit.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that is being limited.",
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this Power Supply.",
-                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SparePartNumber": {
-                    "description": "The spare part number for this Power Supply.",
-                    "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated power supply.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "type": "object"
-        },
-        "PowerSupplyActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/PowerSupplyOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "PowerSupplyOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "PowerSupplyType": {
-            "enum": [
-                "Unknown",
-                "AC",
-                "DC",
-                "ACorDC"
-            ],
-            "enumDescriptions": {
-                "AC": "Alternating Current (AC) power supply.",
-                "ACorDC": "Power Supply supports both DC or AC.",
-                "DC": "Direct Current (DC) power supply.",
-                "Unknown": "The power supply type cannot be determined."
-            },
-            "type": "string"
-        },
-        "Voltage": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/VoltageActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "LowerThresholdCritical": {
-                    "description": "Below normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "LowerThresholdFatal": {
-                    "description": "Below normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the present reading is below the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "LowerThresholdNonCritical": {
-                    "description": "Below normal range.",
-                    "longDescription": "The value of this property shall indicate the present reading is below the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "MaxReadingRange": {
-                    "description": "Maximum value for this Voltage sensor.",
-                    "longDescription": "The value of this property shall indicate the highest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MinReadingRange": {
-                    "description": "Minimum value for this Voltage sensor.",
-                    "longDescription": "The value of this property shall indicate the lowest possible value for ReadingVolts. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "Name": {
-                    "description": "Voltage sensor name.",
-                    "longDescription": "The value of this property shall be the name of the Voltage sensor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PhysicalContext": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
-                    "description": "Describes the area or device to which this voltage measurement applies.",
-                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this voltage measurement applies.",
-                    "readonly": true
-                },
-                "ReadingVolts": {
-                    "description": "The present reading of the voltage sensor.",
-                    "longDescription": "The value of this property shall be the present reading of the voltage sensor's reading.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "RelatedItem": {
-                    "description": "Describes the areas or devices to which this voltage measurement applies.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the areas or devices to which this voltage measurement applies.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SensorNumber": {
-                    "description": "A numerical identifier to represent the voltage sensor.",
-                    "longDescription": "The value of this property shall be a numerical identifier for this voltage sensor that is unique within this resource.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "UpperThresholdCritical": {
-                    "description": "Above normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not yet fatal. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "UpperThresholdFatal": {
-                    "description": "Above normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the present reading is above the normal range and is fatal. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                },
-                "UpperThresholdNonCritical": {
-                    "description": "Above normal range.",
-                    "longDescription": "The value of this property shall indicate the present reading is above the normal range but is not critical. Units shall use the same units as the related ReadingVolts propoerty.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "V"
-                }
-            },
-            "type": "object"
-        },
-        "VoltageActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/VoltageOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "VoltageOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Power",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Power Schema File",
+    "Schema": "#Power.Power",
+    "Description": "Power Schema File Location",
+    "Id": "Power",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Power.json",
+            "Uri": "/redfish/v1/JSONSchemas/Power/Power.json"
         }
-    },
-    "title": "#Power.v1_5_0.Power"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json b/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json
new file mode 100644
index 0000000..b285361
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/PrivilegeRegistry/PrivilegeRegistry.json
@@ -0,0 +1,358 @@
+{
+    "$ref": "#/definitions/PrivilegeRegistry",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Mapping": {
+            "additionalProperties": false,
+            "description": "This type describes a mapping between an entity and the relevant privileges used to access it.",
+            "longDescription": "This type shall describe a mapping between an entity and the relevant privileges used to access it.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Entity": {
+                    "description": "Indicates entity name. e.g., Manager.",
+                    "longDescription": "Indicates entity name. e.g., Manager.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "OperationMap": {
+                    "$ref": "#/definitions/OperationMap",
+                    "description": "List mapping between HTTP method and privilege required for entity.",
+                    "longDescription": "List mapping between HTTP method and privilege required for entity."
+                },
+                "PropertyOverrides": {
+                    "description": "Indicates privilege overrides of property or element within a entity.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/Target_PrivilegeMap"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Indicates privilege overrides of property or element. e.g., password property.",
+                    "type": "array"
+                },
+                "ResourceURIOverrides": {
+                    "description": "Indicates privilege overrides of Resource URI.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/Target_PrivilegeMap"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Indicates privilege overrides of Resource URI. Target lists Resource URI.",
+                    "type": "array"
+                },
+                "SubordinateOverrides": {
+                    "description": "Indicates privilege overrides of subordinate resource.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "#/definitions/Target_PrivilegeMap"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Indicates privilege overrides of subordinate resource. Target lists referenced by Entity.",
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OperationMap": {
+            "additionalProperties": false,
+            "description": "Used for describing the specific privileges for a set of HTTP operations.",
+            "longDescription": "This type shall describe the specific privileges required for a set of HTTP operations.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DELETE": {
+                    "description": "Indicates privilege required for HTTP DELETE operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP DELETE operation.",
+                    "type": "array"
+                },
+                "GET": {
+                    "description": "Indicates privilege required for HTTP GET operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP GET operation.",
+                    "type": "array"
+                },
+                "HEAD": {
+                    "description": "Indicates privilege required for HTTP HEAD operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP HEAD operation.",
+                    "type": "array"
+                },
+                "PATCH": {
+                    "description": "Indicates privilege required for HTTP PATCH operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP PATCH operation.",
+                    "type": "array"
+                },
+                "POST": {
+                    "description": "Indicates privilege required for HTTP POST operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP POST operation.",
+                    "type": "array"
+                },
+                "PUT": {
+                    "description": "Indicates privilege required for HTTP PUT operation.",
+                    "items": {
+                        "$ref": "#/definitions/OperationPrivilege"
+                    },
+                    "longDescription": "Indicates privilege required for HTTP PUT operation.",
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "OperationPrivilege": {
+            "additionalProperties": false,
+            "description": "Used for describing the specific privileges for a given type of HTTP operation.",
+            "longDescription": "This type shall describe the specific privileges required for a given type of HTTP operation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Privilege": {
+                    "description": "Lists the privileges that are allowed to perform the given type of HTTP operation on the entity type.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "This array shall contain a set of strings that match 0 or more of the strings found in the PrivilegesUsed and OEMPrivilegesUsed properties.",
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "PrivilegeRegistry": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for Operation to Privilege mapping.",
+            "longDescription": "This resource shall be used to represent operation to privilege mappings.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Mappings": {
+                    "items": {
+                        "$ref": "#/definitions/Mapping"
+                    },
+                    "type": "array"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "OEMPrivilegesUsed": {
+                    "description": "Lists the set of OEM Priviliges used in building this mapping.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PrivilegesUsed": {
+                    "description": "Lists the set of Redfish standard priviliges used in building this mapping.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType"
+                    },
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "Target_PrivilegeMap": {
+            "additionalProperties": false,
+            "description": "This type describes a mapping between one or more targets and the HTTP operations associated with them.",
+            "longDescription": "This type shall describe a mapping between one or more targets and the HTTP operations associated with them.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "OperationMap": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/OperationMap"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "List mapping between HTTP operation and privilege needed to perform operation.",
+                    "longDescription": "List mapping between HTTP operation and privilege needed to perform operation."
+                },
+                "Targets": {
+                    "description": "Indicates the URI or Entity.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "Indicates the set of URI(s) or Entity(s) or property(s). e.g./redfish/v1/Systems/1, Manager, Password. When targets property is not mentioned, then there is no override.",
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#PrivilegeRegistry.v1_1_1.PrivilegeRegistry"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/PrivilegeRegistry/index.json b/static/redfish/v1/JsonSchemas/PrivilegeRegistry/index.json
index b285361..3a1430d 100644
--- a/static/redfish/v1/JsonSchemas/PrivilegeRegistry/index.json
+++ b/static/redfish/v1/JsonSchemas/PrivilegeRegistry/index.json
@@ -1,358 +1,21 @@
 {
-    "$ref": "#/definitions/PrivilegeRegistry",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Mapping": {
-            "additionalProperties": false,
-            "description": "This type describes a mapping between an entity and the relevant privileges used to access it.",
-            "longDescription": "This type shall describe a mapping between an entity and the relevant privileges used to access it.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Entity": {
-                    "description": "Indicates entity name. e.g., Manager.",
-                    "longDescription": "Indicates entity name. e.g., Manager.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "OperationMap": {
-                    "$ref": "#/definitions/OperationMap",
-                    "description": "List mapping between HTTP method and privilege required for entity.",
-                    "longDescription": "List mapping between HTTP method and privilege required for entity."
-                },
-                "PropertyOverrides": {
-                    "description": "Indicates privilege overrides of property or element within a entity.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/Target_PrivilegeMap"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Indicates privilege overrides of property or element. e.g., password property.",
-                    "type": "array"
-                },
-                "ResourceURIOverrides": {
-                    "description": "Indicates privilege overrides of Resource URI.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/Target_PrivilegeMap"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Indicates privilege overrides of Resource URI. Target lists Resource URI.",
-                    "type": "array"
-                },
-                "SubordinateOverrides": {
-                    "description": "Indicates privilege overrides of subordinate resource.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "#/definitions/Target_PrivilegeMap"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Indicates privilege overrides of subordinate resource. Target lists referenced by Entity.",
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OperationMap": {
-            "additionalProperties": false,
-            "description": "Used for describing the specific privileges for a set of HTTP operations.",
-            "longDescription": "This type shall describe the specific privileges required for a set of HTTP operations.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DELETE": {
-                    "description": "Indicates privilege required for HTTP DELETE operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP DELETE operation.",
-                    "type": "array"
-                },
-                "GET": {
-                    "description": "Indicates privilege required for HTTP GET operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP GET operation.",
-                    "type": "array"
-                },
-                "HEAD": {
-                    "description": "Indicates privilege required for HTTP HEAD operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP HEAD operation.",
-                    "type": "array"
-                },
-                "PATCH": {
-                    "description": "Indicates privilege required for HTTP PATCH operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP PATCH operation.",
-                    "type": "array"
-                },
-                "POST": {
-                    "description": "Indicates privilege required for HTTP POST operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP POST operation.",
-                    "type": "array"
-                },
-                "PUT": {
-                    "description": "Indicates privilege required for HTTP PUT operation.",
-                    "items": {
-                        "$ref": "#/definitions/OperationPrivilege"
-                    },
-                    "longDescription": "Indicates privilege required for HTTP PUT operation.",
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "OperationPrivilege": {
-            "additionalProperties": false,
-            "description": "Used for describing the specific privileges for a given type of HTTP operation.",
-            "longDescription": "This type shall describe the specific privileges required for a given type of HTTP operation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Privilege": {
-                    "description": "Lists the privileges that are allowed to perform the given type of HTTP operation on the entity type.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "This array shall contain a set of strings that match 0 or more of the strings found in the PrivilegesUsed and OEMPrivilegesUsed properties.",
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "PrivilegeRegistry": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for Operation to Privilege mapping.",
-            "longDescription": "This resource shall be used to represent operation to privilege mappings.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Mappings": {
-                    "items": {
-                        "$ref": "#/definitions/Mapping"
-                    },
-                    "type": "array"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "OEMPrivilegesUsed": {
-                    "description": "Lists the set of OEM Priviliges used in building this mapping.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PrivilegesUsed": {
-                    "description": "Lists the set of Redfish standard priviliges used in building this mapping.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType"
-                    },
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "Target_PrivilegeMap": {
-            "additionalProperties": false,
-            "description": "This type describes a mapping between one or more targets and the HTTP operations associated with them.",
-            "longDescription": "This type shall describe a mapping between one or more targets and the HTTP operations associated with them.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "OperationMap": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/OperationMap"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "List mapping between HTTP operation and privilege needed to perform operation.",
-                    "longDescription": "List mapping between HTTP operation and privilege needed to perform operation."
-                },
-                "Targets": {
-                    "description": "Indicates the URI or Entity.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "Indicates the set of URI(s) or Entity(s) or property(s). e.g./redfish/v1/Systems/1, Manager, Password. When targets property is not mentioned, then there is no override.",
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/PrivilegeRegistry",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "PrivilegeRegistry Schema File",
+    "Schema": "#PrivilegeRegistry.PrivilegeRegistry",
+    "Description": "PrivilegeRegistry Schema File Location",
+    "Id": "PrivilegeRegistry",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.json",
+            "Uri": "/redfish/v1/JSONSchemas/PrivilegeRegistry/PrivilegeRegistry.json"
         }
-    },
-    "title": "#PrivilegeRegistry.v1_1_1.PrivilegeRegistry"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Privileges/Privileges.json b/static/redfish/v1/JsonSchemas/Privileges/Privileges.json
new file mode 100644
index 0000000..bd2265d
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Privileges/Privileges.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "PrivilegeType": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "Login",
+                "ConfigureManager",
+                "ConfigureUsers",
+                "ConfigureSelf",
+                "ConfigureComponents"
+            ],
+            "enumDescriptions": {
+                "ConfigureComponents": "Able to configure components managed by this service.",
+                "ConfigureManager": "Able to configure Manager resources.",
+                "ConfigureSelf": "Able to change the password for the current user Account.",
+                "ConfigureUsers": "Able to configure Users and their Accounts.",
+                "Login": "Able to log into the service and read resources."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#Privileges.v1_0_4"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Privileges/index.json b/static/redfish/v1/JsonSchemas/Privileges/index.json
index bd2265d..6cad326 100644
--- a/static/redfish/v1/JsonSchemas/Privileges/index.json
+++ b/static/redfish/v1/JsonSchemas/Privileges/index.json
@@ -1,25 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "PrivilegeType": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "Login",
-                "ConfigureManager",
-                "ConfigureUsers",
-                "ConfigureSelf",
-                "ConfigureComponents"
-            ],
-            "enumDescriptions": {
-                "ConfigureComponents": "Able to configure components managed by this service.",
-                "ConfigureManager": "Able to configure Manager resources.",
-                "ConfigureSelf": "Able to change the password for the current user Account.",
-                "ConfigureUsers": "Able to configure Users and their Accounts.",
-                "Login": "Able to log into the service and read resources."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Privileges",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Privileges Schema File",
+    "Schema": "#Privileges.Privileges",
+    "Description": "Privileges Schema File Location",
+    "Id": "Privileges",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Privileges.json",
+            "Uri": "/redfish/v1/JSONSchemas/Privileges/Privileges.json"
         }
-    },
-    "title": "#Privileges.v1_0_4"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Processor/Processor.json b/static/redfish/v1/JsonSchemas/Processor/Processor.json
new file mode 100644
index 0000000..64c3bc8
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Processor/Processor.json
@@ -0,0 +1,409 @@
+{
+    "$ref": "#/definitions/Processor",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "InstructionSet": {
+            "enum": [
+                "x86",
+                "x86-64",
+                "IA-64",
+                "ARM-A32",
+                "ARM-A64",
+                "MIPS32",
+                "MIPS64",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "ARM-A32": "ARM 32-bit.",
+                "ARM-A64": "ARM 64-bit.",
+                "IA-64": "Intel IA-64.",
+                "MIPS32": "MIPS 32-bit.",
+                "MIPS64": "MIPS 64-bit.",
+                "OEM": "OEM-defined.",
+                "x86": "x86 32-bit.",
+                "x86-64": "x86 64-bit."
+            },
+            "type": "string"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the Chassis which contains this Processor.",
+                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Processor.",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Processor": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Processor resource.  It represents the properties of a processor attached to a System.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this processor.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "InstructionSet": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/InstructionSet"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The instruction set of the processor.",
+                    "longDescription": "This property shall contain the string which identifies the instruction set of the processor contained in this socket.",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "Manufacturer": {
+                    "description": "The processor manufacturer.",
+                    "longDescription": "This property shall contain a string which identifies the manufacturer of the processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MaxSpeedMHz": {
+                    "description": "The maximum clock speed of the processor.",
+                    "longDescription": "This property shall indicate the maximum rated clock speed of the processor in MHz.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The product model number of this device.",
+                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "ProcessorArchitecture": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ProcessorArchitecture"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The architecture of the processor.",
+                    "longDescription": "This property shall contain the string which identifies the architecture of the processor contained in this Socket.",
+                    "readonly": true
+                },
+                "ProcessorId": {
+                    "$ref": "#/definitions/ProcessorId",
+                    "description": "Identification information for this processor.",
+                    "longDescription": "This object shall contain identification information for this processor."
+                },
+                "ProcessorType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ProcessorType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of processor.",
+                    "longDescription": "This property shall contain the string which identifies the type of processor contained in this Socket.",
+                    "readonly": true
+                },
+                "Socket": {
+                    "description": "The socket or location of the processor.",
+                    "longDescription": "This property shall contain the string which identifies the physical location or socket of the processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "SubProcessors": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection",
+                    "description": "A reference to the collection of Sub-Processors associated with this system, such as cores or threads that are part of a processor.",
+                    "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.",
+                    "readonly": true
+                },
+                "TotalCores": {
+                    "description": "The total number of cores contained in this processor.",
+                    "longDescription": "This property shall indicate the total count of independent processor cores contained within this processor.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "TotalThreads": {
+                    "description": "The total number of execution threads supported by this processor.",
+                    "longDescription": "This property shall indicate the total count of independent execution threads supported by this processor.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ProcessorArchitecture": {
+            "enum": [
+                "x86",
+                "IA-64",
+                "ARM",
+                "MIPS",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "ARM": "ARM.",
+                "IA-64": "Intel Itanium.",
+                "MIPS": "MIPS.",
+                "OEM": "OEM-defined.",
+                "x86": "x86 or x86-64."
+            },
+            "type": "string"
+        },
+        "ProcessorId": {
+            "additionalProperties": false,
+            "description": "This type describes the Identification information for a processor.",
+            "longDescription": "This type shall contain identification information for a processor.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "EffectiveFamily": {
+                    "description": "The effective Family for this processor.",
+                    "longDescription": "This property shall indicate the effective Family information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "EffectiveModel": {
+                    "description": "The effective Model for this processor.",
+                    "longDescription": "This property shall indicate the effective Model information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "IdentificationRegisters": {
+                    "description": "The contents of the Identification Registers (CPUID) for this processor.",
+                    "longDescription": "This property shall include the raw CPUID instruction output as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MicrocodeInfo": {
+                    "description": "The Microcode Information for this processor.",
+                    "longDescription": "This property shall indicate the Microcode Information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Step": {
+                    "description": "The Step value for this processor.",
+                    "longDescription": "This property shall indicate the Step or revision string information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "VendorId": {
+                    "description": "The Vendor Identification for this processor.",
+                    "longDescription": "This property shall indicate the Vendor Identification string information as provided by the manufacturer of this processor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "ProcessorType": {
+            "enum": [
+                "CPU",
+                "GPU",
+                "FPGA",
+                "DSP",
+                "Accelerator",
+                "Core",
+                "Thread",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "Accelerator": "An Accelerator.",
+                "CPU": "A Central Processing Unit.",
+                "Core": "A Core in a Processor.",
+                "DSP": "A Digital Signal Processor.",
+                "FPGA": "A Field Programmable Gate Array.",
+                "GPU": "A Graphics Processing Unit.",
+                "OEM": "An OEM-defined Processing Unit.",
+                "Thread": "A Thread in a Processor."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Processor.v1_3_0.Processor"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Processor/index.json b/static/redfish/v1/JsonSchemas/Processor/index.json
index 64c3bc8..dac5de9 100644
--- a/static/redfish/v1/JsonSchemas/Processor/index.json
+++ b/static/redfish/v1/JsonSchemas/Processor/index.json
@@ -1,409 +1,21 @@
 {
-    "$ref": "#/definitions/Processor",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "InstructionSet": {
-            "enum": [
-                "x86",
-                "x86-64",
-                "IA-64",
-                "ARM-A32",
-                "ARM-A64",
-                "MIPS32",
-                "MIPS64",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "ARM-A32": "ARM 32-bit.",
-                "ARM-A64": "ARM 64-bit.",
-                "IA-64": "Intel IA-64.",
-                "MIPS32": "MIPS 32-bit.",
-                "MIPS64": "MIPS 64-bit.",
-                "OEM": "OEM-defined.",
-                "x86": "x86 32-bit.",
-                "x86-64": "x86 64-bit."
-            },
-            "type": "string"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the Chassis which contains this Processor.",
-                    "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Processor.",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Processor": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Processor resource.  It represents the properties of a processor attached to a System.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this processor.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "InstructionSet": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/InstructionSet"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The instruction set of the processor.",
-                    "longDescription": "This property shall contain the string which identifies the instruction set of the processor contained in this socket.",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "Manufacturer": {
-                    "description": "The processor manufacturer.",
-                    "longDescription": "This property shall contain a string which identifies the manufacturer of the processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MaxSpeedMHz": {
-                    "description": "The maximum clock speed of the processor.",
-                    "longDescription": "This property shall indicate the maximum rated clock speed of the processor in MHz.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The product model number of this device.",
-                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "ProcessorArchitecture": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ProcessorArchitecture"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The architecture of the processor.",
-                    "longDescription": "This property shall contain the string which identifies the architecture of the processor contained in this Socket.",
-                    "readonly": true
-                },
-                "ProcessorId": {
-                    "$ref": "#/definitions/ProcessorId",
-                    "description": "Identification information for this processor.",
-                    "longDescription": "This object shall contain identification information for this processor."
-                },
-                "ProcessorType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ProcessorType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of processor.",
-                    "longDescription": "This property shall contain the string which identifies the type of processor contained in this Socket.",
-                    "readonly": true
-                },
-                "Socket": {
-                    "description": "The socket or location of the processor.",
-                    "longDescription": "This property shall contain the string which identifies the physical location or socket of the processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "SubProcessors": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ProcessorCollection.json#/definitions/ProcessorCollection",
-                    "description": "A reference to the collection of Sub-Processors associated with this system, such as cores or threads that are part of a processor.",
-                    "longDescription": "The value of this property shall be a link to a collection of type ProcessorCollection.",
-                    "readonly": true
-                },
-                "TotalCores": {
-                    "description": "The total number of cores contained in this processor.",
-                    "longDescription": "This property shall indicate the total count of independent processor cores contained within this processor.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "TotalThreads": {
-                    "description": "The total number of execution threads supported by this processor.",
-                    "longDescription": "This property shall indicate the total count of independent execution threads supported by this processor.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ProcessorArchitecture": {
-            "enum": [
-                "x86",
-                "IA-64",
-                "ARM",
-                "MIPS",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "ARM": "ARM.",
-                "IA-64": "Intel Itanium.",
-                "MIPS": "MIPS.",
-                "OEM": "OEM-defined.",
-                "x86": "x86 or x86-64."
-            },
-            "type": "string"
-        },
-        "ProcessorId": {
-            "additionalProperties": false,
-            "description": "This type describes the Identification information for a processor.",
-            "longDescription": "This type shall contain identification information for a processor.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "EffectiveFamily": {
-                    "description": "The effective Family for this processor.",
-                    "longDescription": "This property shall indicate the effective Family information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "EffectiveModel": {
-                    "description": "The effective Model for this processor.",
-                    "longDescription": "This property shall indicate the effective Model information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "IdentificationRegisters": {
-                    "description": "The contents of the Identification Registers (CPUID) for this processor.",
-                    "longDescription": "This property shall include the raw CPUID instruction output as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MicrocodeInfo": {
-                    "description": "The Microcode Information for this processor.",
-                    "longDescription": "This property shall indicate the Microcode Information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Step": {
-                    "description": "The Step value for this processor.",
-                    "longDescription": "This property shall indicate the Step or revision string information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "VendorId": {
-                    "description": "The Vendor Identification for this processor.",
-                    "longDescription": "This property shall indicate the Vendor Identification string information as provided by the manufacturer of this processor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "ProcessorType": {
-            "enum": [
-                "CPU",
-                "GPU",
-                "FPGA",
-                "DSP",
-                "Accelerator",
-                "Core",
-                "Thread",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "Accelerator": "An Accelerator.",
-                "CPU": "A Central Processing Unit.",
-                "Core": "A Core in a Processor.",
-                "DSP": "A Digital Signal Processor.",
-                "FPGA": "A Field Programmable Gate Array.",
-                "GPU": "A Graphics Processing Unit.",
-                "OEM": "An OEM-defined Processing Unit.",
-                "Thread": "A Thread in a Processor."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Processor",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Processor Schema File",
+    "Schema": "#Processor.Processor",
+    "Description": "Processor Schema File Location",
+    "Id": "Processor",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Processor.json",
+            "Uri": "/redfish/v1/JSONSchemas/Processor/Processor.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Processor.v1_3_0.Processor"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json b/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json
new file mode 100644
index 0000000..4085619
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json
@@ -0,0 +1,174 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Redundancy": {
+            "additionalProperties": false,
+            "description": "This is the redundancy definition to be used in other resource schemas.",
+            "longDescription": "This object represents the Redundancy element property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.  The value of this string shall be of the format for the reserved word *Redundancy*.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "MaxNumSupported": {
+                    "description": "This is the maximum number of members allowable for this particular redundancy group.",
+                    "longDescription": "The value of this property shall contain the maximum number of members allowed in the redundancy group.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MinNumNeeded": {
+                    "description": "This is the minumum number of members needed for this group to be redundant.",
+                    "longDescription": "The value of this property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Mode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/RedundancyMode"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the redundancy mode of the group.",
+                    "longDescription": "The value of this property shall contain the information about the redundancy mode of this subsystem.",
+                    "readonly": false
+                },
+                "Name": {
+                    "description": "The name of the resource or array element.",
+                    "longDescription": "This object represents the Name property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "RedundancyEnabled": {
+                    "description": "This indicates whether redundancy is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether the redundancy is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "RedundancySet": {
+                    "description": "Contains any ids that represent components of this redundancy set.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall contain the ids of components that are part of this redundancy set. The id values may or may not be dereferenceable.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RedundancySet@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "required": [
+                "Name",
+                "Mode",
+                "MaxNumSupported",
+                "MinNumNeeded",
+                "Status",
+                "RedundancySet"
+            ],
+            "type": "object"
+        },
+        "RedundancyMode": {
+            "enum": [
+                "Failover",
+                "N+m",
+                "Sharing",
+                "Sparing",
+                "NotRedundant"
+            ],
+            "enumDescriptions": {
+                "Failover": "Failure of one unit will automatically cause its functions to be taken over by a standby or offline unit in the redundancy set.",
+                "N+m": "Multiple units are available and active such that normal operation will continue if one or more units fail.",
+                "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.",
+                "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.",
+                "Sparing": "One or more spare units are available to take over the function of a failed unit, but takeover is not automatic."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#Redundancy.v1_3_0"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Redundancy/index.json b/static/redfish/v1/JsonSchemas/Redundancy/index.json
index 4085619..533d272 100644
--- a/static/redfish/v1/JsonSchemas/Redundancy/index.json
+++ b/static/redfish/v1/JsonSchemas/Redundancy/index.json
@@ -1,174 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Redundancy": {
-            "additionalProperties": false,
-            "description": "This is the redundancy definition to be used in other resource schemas.",
-            "longDescription": "This object represents the Redundancy element property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.  The value of this string shall be of the format for the reserved word *Redundancy*.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "MaxNumSupported": {
-                    "description": "This is the maximum number of members allowable for this particular redundancy group.",
-                    "longDescription": "The value of this property shall contain the maximum number of members allowed in the redundancy group.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MinNumNeeded": {
-                    "description": "This is the minumum number of members needed for this group to be redundant.",
-                    "longDescription": "The value of this property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Mode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/RedundancyMode"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the redundancy mode of the group.",
-                    "longDescription": "The value of this property shall contain the information about the redundancy mode of this subsystem.",
-                    "readonly": false
-                },
-                "Name": {
-                    "description": "The name of the resource or array element.",
-                    "longDescription": "This object represents the Name property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "RedundancyEnabled": {
-                    "description": "This indicates whether redundancy is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether the redundancy is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "RedundancySet": {
-                    "description": "Contains any ids that represent components of this redundancy set.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall contain the ids of components that are part of this redundancy set. The id values may or may not be dereferenceable.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RedundancySet@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "required": [
-                "Name",
-                "Mode",
-                "MaxNumSupported",
-                "MinNumNeeded",
-                "Status",
-                "RedundancySet"
-            ],
-            "type": "object"
-        },
-        "RedundancyMode": {
-            "enum": [
-                "Failover",
-                "N+m",
-                "Sharing",
-                "Sparing",
-                "NotRedundant"
-            ],
-            "enumDescriptions": {
-                "Failover": "Failure of one unit will automatically cause its functions to be taken over by a standby or offline unit in the redundancy set.",
-                "N+m": "Multiple units are available and active such that normal operation will continue if one or more units fail.",
-                "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.",
-                "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.",
-                "Sparing": "One or more spare units are available to take over the function of a failed unit, but takeover is not automatic."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Redundancy",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Redundancy Schema File",
+    "Schema": "#Redundancy.Redundancy",
+    "Description": "Redundancy Schema File Location",
+    "Id": "Redundancy",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Redundancy.json",
+            "Uri": "/redfish/v1/JSONSchemas/Redundancy/Redundancy.json"
         }
-    },
-    "title": "#Redundancy.v1_3_0"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Resource/Resource.json b/static/redfish/v1/JsonSchemas/Resource/Resource.json
new file mode 100644
index 0000000..45064cb
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Resource/Resource.json
@@ -0,0 +1,912 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "DurableNameFormat": {
+            "enum": [
+                "NAA",
+                "iQN",
+                "FC_WWN",
+                "UUID",
+                "EUI",
+                "NQN",
+                "NSID"
+            ],
+            "enumDescriptions": {
+                "EUI": "IEEE-defined 64-bit Extended Unique Identifier.",
+                "FC_WWN": "Fibre Channel World Wide Name.",
+                "NAA": "Name Address Authority Format.",
+                "NQN": "NVMe Qualified Name.",
+                "NSID": "NVM Namespace Identifier.",
+                "UUID": "Universally Unique Identifier.",
+                "iQN": "iSCSI Qualified Name."
+            },
+            "enumLongDescriptions": {
+                "EUI": "This durable name shall be the hexadecimal representation of the IEEE-defined 64-bit Extended Unique Identifier as defined in the IEEE's Guidelines for 64-bit Global Identifier (EUI-64) Specification.",
+                "FC_WWN": "This durable name shall be a hexadecimal representation of the World Wide Name format as defined in the T11 Fibre Channel Physical and Signaling Interface Specification.",
+                "NAA": "This durable name shall be a hexadecimal representation of the Name Address Authority structure as defined in the T11 Fibre Channel - Framing and Signaling - 3 (FC-FS-3) specification.",
+                "NQN": "This durable name shall be in the NVMe Qualified Name format as defined in the NVN Express over Fabric Specification.",
+                "NSID": "This durable name shall be in the NVM Namespace Identifier format as defined in the NVN Express Specification.",
+                "UUID": "This durable name shall be the hexadecimal representation of the Universal Unique Identifier as defined in the Internation Telecom Union's OSI networking and system aspects - Naming, Addressing and Registration Specification.",
+                "iQN": "This durable name shall be in the iSCSI Qualified Name format as defined in RFC 3720 and RFC 3721."
+            },
+            "type": "string"
+        },
+        "Identifier": {
+            "additionalProperties": false,
+            "description": "This type describes any additional identifiers for a resource.",
+            "longDescription": "This type shall contain any additional identifiers of a resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "DurableName": {
+                    "description": "This indicates the world wide, persistent name of the resource.",
+                    "longDescription": "This property shall contain the world wide unique identifier for the resource. The string shall be in the format described by the value of the Identifier.DurableNameFormat property.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "DurableNameFormat": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/DurableNameFormat"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This represents the format of the DurableName property.",
+                    "longDescription": "This property shall represent the format of the DurableName property.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "IndicatorLED": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "Lit",
+                "Blinking",
+                "Off"
+            ],
+            "enumDescriptions": {
+                "Blinking": "The Indicator LED is blinking.",
+                "Lit": "The Indicator LED is lit.",
+                "Off": "The Indicator LED is off."
+            },
+            "enumLongDescriptions": {
+                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
+                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
+            },
+            "type": "string"
+        },
+        "Location": {
+            "additionalProperties": false,
+            "description": "This type describes the location of a resource.",
+            "longDescription": "This type shall describe the location of a resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AltitudeMeters": {
+                    "description": "The altitude of the resource in meters.",
+                    "longDescription": "The altitude of the resource in meters.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "m"
+                },
+                "Info": {
+                    "deprecated": "This property has been Deprecated in favor of new properties defined in Resource.v1_3_0.Location and Resource.v1_5_0.Location.",
+                    "description": "This indicates the location of the resource.",
+                    "longDescription": "This property shall represent the location of the resource.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "InfoFormat": {
+                    "deprecated": "This property has been Deprecated in favor of new properties defined in Resource.v1_3_0.Location and Resource.v1_5_0.Location.",
+                    "description": "This represents the format of the Info property.",
+                    "longDescription": "This property shall represent the format of the Info property.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Latitude": {
+                    "description": "The latitude resource.",
+                    "longDescription": "The value shall be the latitude of the resource specified in degrees using a decimal format and not minutes or seconds.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "deg"
+                },
+                "Longitude": {
+                    "description": "The longitude resource in degrees.",
+                    "longDescription": "The value shall be the longitude of the resource specified in degrees using a decimal format and not minutes or seconds.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "deg"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "PartLocation": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PartLocation"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Postal address of the addressed resource.",
+                    "longDescription": "The value shall be a postal address of the resource."
+                },
+                "Placement": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Placement"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "A place within the addressed location.",
+                    "longDescription": "The value shall be a place within the addressed location."
+                },
+                "PostalAddress": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PostalAddress"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Postal address of the addressed resource.",
+                    "longDescription": "The value shall be a postal address of the resource."
+                }
+            },
+            "type": "object"
+        },
+        "LocationType": {
+            "description": "Defines the location types for PartLocation.",
+            "enum": [
+                "Slot",
+                "Bay",
+                "Connector",
+                "Socket"
+            ],
+            "enumDescriptions": {
+                "Bay": "Defines a bay as the type of location.",
+                "Connector": "Defines a connector as the type of location.",
+                "Slot": "Defines a slot as the type of location.",
+                "Socket": "Defines a socket as the type of location."
+            },
+            "enumLongDescriptions": {
+                "Bay": "Bay shall be used to indicate the type of PartLocation is of type bay.",
+                "Connector": "Connector shall be used to indicate the type of PartLocation is of type connector.",
+                "Slot": "Slot shall be used to indicate the type of PartLocation is of type slot.",
+                "Socket": "Socket shall be used to indicate the type of PartLocation is of type socket."
+            },
+            "longDescription": "Enumeration literals shall name the type of location in use.",
+            "type": "string"
+        },
+        "Orientation": {
+            "description": "Defines a orientation for the ordering of the ordinal value of the part location.",
+            "enum": [
+                "FrontToBack",
+                "BackToFront",
+                "TopToBottom",
+                "BottomToTop",
+                "LeftToRight",
+                "RightToLeft"
+            ],
+            "enumDescriptions": {
+                "BackToFront": "Defines the ordering for the LocationOrdinalValue is back to front.",
+                "BottomToTop": "Defines the ordering for the LocationOrdinalValue is bottom to top.",
+                "FrontToBack": "Defines the ordering for the LocationOrdinalValue is front to back.",
+                "LeftToRight": "Defines the ordering for the LocationOrdinalValue is left to right.",
+                "RightToLeft": "Defines the ordering for the LocationOrdinalValue is right to left.",
+                "TopToBottom": "Defines the ordering for the LocationOrdinalValue is top to bottom."
+            },
+            "enumLongDescriptions": {
+                "BackToFront": "This value shall be used to specify the ordering for LocationOrdinalValue is back to front.",
+                "BottomToTop": "This value shall be used to specify the ordering for LocationOrdinalValue is bottom to top.",
+                "FrontToBack": "This value shall be used to specify the ordering for LocationOrdinalValue is front to back.",
+                "LeftToRight": "This value shall be used to specify the ordering for LocationOrdinalValue is left to right.",
+                "RightToLeft": "This value shall be used to specify the ordering for LocationOrdinalValue is right to left.",
+                "TopToBottom": "This value shall be used to specify the ordering for LocationOrdinalValue is top to bottom."
+            },
+            "longDescription": "Enumeration literals shall name the orientation for the location type ordering in determining the LocationOrdinalValue.",
+            "type": "string"
+        },
+        "PartLocation": {
+            "additionalProperties": false,
+            "description": "The part location within the placement.",
+            "longDescription": "The value shall describe a location within a resource.  This representation shall be used to indicate the location within the Placement.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "LocationOrdinalValue": {
+                    "description": "The number that represents the location of the part.  If LocationType is slot and this unit is in slot 2 then the LocationOrdinalValue will be 2.",
+                    "longDescription": "The value shall be the number that represents the location of the part based on the LocationType.  LocationOrdinalValue shall be measured based on the Orientation value starting with 0.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "LocationType": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/LocationType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of location of the part, such as slot, bay, socket and slot.",
+                    "longDescription": "The value shall be a LocationType enumeration literal indicating the type of rack units in use.",
+                    "readonly": true
+                },
+                "Orientation": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Orientation"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The orientation for the ordering of the slot enumeration used by the LocationOrdinalValue property.",
+                    "longDescription": "The value shall be a Orientation enumeration literal indicating the orientation for the ordering used by the LocationOrdinalValue property.",
+                    "readonly": true
+                },
+                "Reference": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/Reference"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The reference point for the part location.  This is used to give guidance as to the general location of the part.",
+                    "longDescription": "The value shall be a Reference enumeration literal indicating the general location within the unit of the part.",
+                    "readonly": true
+                },
+                "ServiceLabel": {
+                    "description": "This is the label of the part location, such as a silk screened name or a printed label.",
+                    "longDescription": "The value shall be the label assigned for service at the part location.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "Placement": {
+            "additionalProperties": false,
+            "description": "The placement within the addressed location.",
+            "longDescription": "The value shall describe a location within a resource.  Examples include a shelf in a rack.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Rack": {
+                    "description": "Name of a rack location within a row.",
+                    "longDescription": "The value shall be the name of the rack within a row.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RackOffset": {
+                    "description": "Vertical location of the item in terms of RackOffsetUnits.",
+                    "longDescription": "Vertical location of the item in the rack. Rack offset units shall be measured from bottom to top starting with 0.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "RackOffsetUnits": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/RackUnits"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The type of Rack Units in use.",
+                    "longDescription": "The value shall be a RackUnit enumeration literal indicating the type of rack units in use.",
+                    "readonly": false
+                },
+                "Row": {
+                    "description": "Name of row.",
+                    "longDescription": "The value shall be the name of the row.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "PostalAddress": {
+            "additionalProperties": false,
+            "description": "The PostalAddress for a resource.",
+            "longDescription": "Instances shall describe a postal address for a resource. For more information see RFC5139. Depending on use, the instance may represent a past, current, or future location.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "AdditionalCode": {
+                    "description": "Additional code.",
+                    "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Building": {
+                    "description": "Name of the building.",
+                    "longDescription": "The value shall conform the requirements of the BLD field as defined in RFC5139.  The value shall be name a building used to locate the resource.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "City": {
+                    "description": "City, township, or shi (JP).",
+                    "longDescription": "The value shall conform the requirements of the A3 field as defined in RFC5139.  It is used to name a city, township, or shi (JP).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Community": {
+                    "description": "Postal community name.",
+                    "longDescription": "The value shall conform the requirements of the PCN field as defined in RFC5139.  The value shall be a postal community name.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Country": {
+                    "description": "Country.",
+                    "longDescription": "The value shall conform the requirements of the Country field as defined in RFC5139.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "District": {
+                    "description": "A county, parish, gun (JP), or  district (IN).",
+                    "longDescription": "The value shall conform the requirements of the A2 field as defined in RFC5139.  It is used to name a county, parish, gun (JP), or  district (IN).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Division": {
+                    "description": "City division, borough, dity district, ward, chou (JP).",
+                    "longDescription": "The value shall conform the requirements of the A4 field as defined in RFC5139.  It is used to name a city division, borough, dity district, ward, chou (JP).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Floor": {
+                    "description": "Floor.",
+                    "longDescription": "The value shall conform the requirements of the FLR field as defined in RFC5139.  It is used to provide a floor designation.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "GPSCoords": {
+                    "deprecated": "This property has been Deprecated in favor of Location.v1_6_0.Longitude and Location.v1_6_0.Latitude",
+                    "description": "The GPS coordinates of the part.",
+                    "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139. The value shall be the GPS coordinates of the location. If furnished, this shall be expressed in the format '[-][nn]n.nnnnnn, [-][nn]n.nnnnn', i.e. two numbers, either positive or negative, with six decimal places of precision, comma-separated.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "HouseNumber": {
+                    "description": "Numeric portion of house number.",
+                    "longDescription": "The value shall conform the requirements of the HNO field as defined in RFC5139.  It is the numeric portion of the house number.",
+                    "readonly": false,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "HouseNumberSuffix": {
+                    "description": "House number suffix.",
+                    "longDescription": "The value shall conform the requirements of the HNS field as defined in RFC5139.  It is used to provide a suffix to a house number, (F, B, 1/2).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Landmark": {
+                    "description": "Landmark.",
+                    "longDescription": "The value shall conform the requirements of the LMK field as defined in RFC5139.  It is used to identify a landmark or vanity address.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "LeadingStreetDirection": {
+                    "description": "A leading street direction.",
+                    "longDescription": "The value shall conform the requirements of the PRD field as defined in RFC5139.  It is used to name a leading street direction, (N, W, SE).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Location": {
+                    "description": "Room designation or other additional info.",
+                    "longDescription": "The value shall conform the requirements of the LOC field as defined in RFC5139.  It is used to provide additional information.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "description": "Name.",
+                    "longDescription": "The value shall conform the requirements of the NAM field as defined in RFC5139.  It is used to name the occupant.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Neighborhood": {
+                    "description": "Neighborhood or block.",
+                    "longDescription": "The value shall conform the requirements of the A5 field as defined in RFC5139.  It is used to name a neighborhood or block.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "POBox": {
+                    "description": "Post office box (P.O. box).",
+                    "longDescription": "The value shall conform the requirements of the POBOX field as defined in RFC5139.  The value shall be a Post office box (P.O. box).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PlaceType": {
+                    "description": "A description of the type of place that is addressed.",
+                    "longDescription": "The value shall conform the requirements of the PLC field as defined in RFC5139.  Examples include: office, residence,...).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PostalCode": {
+                    "description": "Postal code (or zip code).",
+                    "longDescription": "The value shall conform the requirements of the PC field as defined in RFC5139. The value shall be a Postal code (or zip code).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Road": {
+                    "description": "A primary road or street.",
+                    "longDescription": "The value shall conform the requirements of the RD field as defined in RFC5139.  The value designates a primary road or street.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoadBranch": {
+                    "description": "Road branch.",
+                    "longDescription": "The value shall conform the requirements of the RDBR field as defined in RFC5139.  The value shall be a Post office box (P.O. box)road branch.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoadPostModifier": {
+                    "description": "Road post-modifier.",
+                    "longDescription": "The value shall conform the requirements of the POM field as defined in RFC5139.  (Extended).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoadPreModifier": {
+                    "description": "Road pre-modifier.",
+                    "longDescription": "The value shall conform the requirements of the PRM field as defined in RFC5139.  (Old, New).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoadSection": {
+                    "description": "Road Section.",
+                    "longDescription": "The value shall conform the requirements of the RDSEC field as defined in RFC5139.  The value shall be a road section.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "RoadSubBranch": {
+                    "description": "Road sub branch.",
+                    "longDescription": "The value shall conform the requirements of the RDSUBBR field as defined in RFC5139.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Room": {
+                    "description": "Name or number of the room.",
+                    "longDescription": "The value shall conform the requirements of the ROOM field as defined in RFC5139.  The value shall be a name or number of a room used to locate the resource within the unit.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Seat": {
+                    "description": "Seat (desk, cubicle, workstation).",
+                    "longDescription": "The value shall conform the requirements of the SEAT field as defined in RFC5139.  The value shall be a name or number of a Seat (desk, cubicle, workstation).",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Street": {
+                    "description": "Street name.",
+                    "longDescription": "The value shall conform the requirements of the A6 field as defined in RFC5139.  It is used to name a street.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "StreetSuffix": {
+                    "description": "Avenue, Platz, Street, Circle.",
+                    "longDescription": "The value shall conform the requirements of the STS field as defined in RFC5139.  It is used to name a  street suffix.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Territory": {
+                    "description": "A top-level subdivision within a country.",
+                    "longDescription": "The value shall conform the requirements of the A1 field as defined in RFC5139 when used to name a territory, state, region, province, or prefecture within a country.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "TrailingStreetSuffix": {
+                    "description": "A trailing street suffix.",
+                    "longDescription": "The value shall conform the requirements of the POD field as defined in RFC5139.  It is used to name a trailing street suffix.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Unit": {
+                    "description": "Name or number of the unit (apartment, suite).",
+                    "longDescription": "The value shall conform the requirements of the UNIT field as defined in RFC5139.  The value shall be a name or number of a unit (apartment, suite) used to locate the resource.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "PowerState": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "On",
+                "Off",
+                "PoweringOn",
+                "PoweringOff"
+            ],
+            "enumDescriptions": {
+                "Off": "The state is powered Off.",
+                "On": "The state is powered On.",
+                "PoweringOff": "A temporary state between On and Off.",
+                "PoweringOn": "A temporary state between Off and On."
+            },
+            "type": "string"
+        },
+        "RackUnits": {
+            "description": "Defines a rack unit.",
+            "enum": [
+                "OpenU",
+                "EIA_310"
+            ],
+            "enumDescriptions": {
+                "EIA_310": "Defines a rack unit as being equal to 1.75 in (44.45 mm).",
+                "OpenU": "Defines a rack unit as being equal to 48 mm (1.89 in)."
+            },
+            "enumLongDescriptions": {
+                "EIA_310": "Rack units shall be specified as defined by the EIA-310 standard.",
+                "OpenU": "Rack units shall be specifie3d in terms of the Open Compute Open Rack specification."
+            },
+            "longDescription": "Enumeration literals shall name the type of rack units in use.",
+            "type": "string"
+        },
+        "Reference": {
+            "description": "Defines a reference area for the location of the part.",
+            "enum": [
+                "Top",
+                "Bottom",
+                "Front",
+                "Rear",
+                "Left",
+                "Right",
+                "Middle"
+            ],
+            "enumDescriptions": {
+                "Bottom": "Defines the part as being in the bottom of the unit.",
+                "Front": "Defines the part as being in the front of the unit.",
+                "Left": "Defines the part as being in the left of the unit.",
+                "Middle": "Defines the part as being in the middle of the unit.",
+                "Rear": "Defines the part as being in the rear of the unit.",
+                "Right": "Defines the part as being in the right of the unit.",
+                "Top": "Defines the part as being in the top of the unit."
+            },
+            "enumLongDescriptions": {
+                "Bottom": "Top shall be used to specify the part location is in the bottom of the unit.",
+                "Front": "Top shall be used to specify the part location is in the front of the unit.",
+                "Left": "Top shall be used to specify the part location is in the left of the unit.",
+                "Middle": "Top shall be used to specify the part location is in the middle of the unit.",
+                "Rear": "Top shall be used to specify the part location is in the rear of the unit.",
+                "Right": "Top shall be used to specify the part location is in the right of the unit.",
+                "Top": "Top shall be used to specify the part location is in the top of the unit."
+            },
+            "longDescription": "Enumeration literals shall name the reference for the part location.",
+            "type": "string"
+        },
+        "ReferenceableMember": {
+            "additionalProperties": false,
+            "description": "This is the base type for addressable members of an array.",
+            "longDescription": "Array members can be referenced using the value returned in the @odata.id property which may or may not be a dereferenceable URL. The @odata.id of this entity shall be the location of this element within an Item.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "type": "object"
+        },
+        "Resource": {
+            "additionalProperties": false,
+            "description": "This is the base type for resources and referenceable members.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ResourceCollection": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                }
+            },
+            "type": "object"
+        }
+    },
+    "title": "#Resource.v1_6_0"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Resource/index.json b/static/redfish/v1/JsonSchemas/Resource/index.json
index 45064cb..9f52a51 100644
--- a/static/redfish/v1/JsonSchemas/Resource/index.json
+++ b/static/redfish/v1/JsonSchemas/Resource/index.json
@@ -1,912 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "DurableNameFormat": {
-            "enum": [
-                "NAA",
-                "iQN",
-                "FC_WWN",
-                "UUID",
-                "EUI",
-                "NQN",
-                "NSID"
-            ],
-            "enumDescriptions": {
-                "EUI": "IEEE-defined 64-bit Extended Unique Identifier.",
-                "FC_WWN": "Fibre Channel World Wide Name.",
-                "NAA": "Name Address Authority Format.",
-                "NQN": "NVMe Qualified Name.",
-                "NSID": "NVM Namespace Identifier.",
-                "UUID": "Universally Unique Identifier.",
-                "iQN": "iSCSI Qualified Name."
-            },
-            "enumLongDescriptions": {
-                "EUI": "This durable name shall be the hexadecimal representation of the IEEE-defined 64-bit Extended Unique Identifier as defined in the IEEE's Guidelines for 64-bit Global Identifier (EUI-64) Specification.",
-                "FC_WWN": "This durable name shall be a hexadecimal representation of the World Wide Name format as defined in the T11 Fibre Channel Physical and Signaling Interface Specification.",
-                "NAA": "This durable name shall be a hexadecimal representation of the Name Address Authority structure as defined in the T11 Fibre Channel - Framing and Signaling - 3 (FC-FS-3) specification.",
-                "NQN": "This durable name shall be in the NVMe Qualified Name format as defined in the NVN Express over Fabric Specification.",
-                "NSID": "This durable name shall be in the NVM Namespace Identifier format as defined in the NVN Express Specification.",
-                "UUID": "This durable name shall be the hexadecimal representation of the Universal Unique Identifier as defined in the Internation Telecom Union's OSI networking and system aspects - Naming, Addressing and Registration Specification.",
-                "iQN": "This durable name shall be in the iSCSI Qualified Name format as defined in RFC 3720 and RFC 3721."
-            },
-            "type": "string"
-        },
-        "Identifier": {
-            "additionalProperties": false,
-            "description": "This type describes any additional identifiers for a resource.",
-            "longDescription": "This type shall contain any additional identifiers of a resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "DurableName": {
-                    "description": "This indicates the world wide, persistent name of the resource.",
-                    "longDescription": "This property shall contain the world wide unique identifier for the resource. The string shall be in the format described by the value of the Identifier.DurableNameFormat property.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "DurableNameFormat": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/DurableNameFormat"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This represents the format of the DurableName property.",
-                    "longDescription": "This property shall represent the format of the DurableName property.",
-                    "readonly": true
-                }
-            },
-            "type": "object"
-        },
-        "IndicatorLED": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "Lit",
-                "Blinking",
-                "Off"
-            ],
-            "enumDescriptions": {
-                "Blinking": "The Indicator LED is blinking.",
-                "Lit": "The Indicator LED is lit.",
-                "Off": "The Indicator LED is off."
-            },
-            "enumLongDescriptions": {
-                "Blinking": "This value shall represent the Indicator LED is in a blinking state where the LED is being turned on and off in repetition.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Lit": "This value shall represent the Indicator LED is in a solid on state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request).",
-                "Off": "This value shall represent the Indicator LED is in a solid off state.  If this value is not supported by the service, the service shall reject PATCH or PUT requests containing this value by returning HTTP 400 (Bad Request)."
-            },
-            "type": "string"
-        },
-        "Location": {
-            "additionalProperties": false,
-            "description": "This type describes the location of a resource.",
-            "longDescription": "This type shall describe the location of a resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AltitudeMeters": {
-                    "description": "The altitude of the resource in meters.",
-                    "longDescription": "The altitude of the resource in meters.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "m"
-                },
-                "Info": {
-                    "deprecated": "This property has been Deprecated in favor of new properties defined in Resource.v1_3_0.Location and Resource.v1_5_0.Location.",
-                    "description": "This indicates the location of the resource.",
-                    "longDescription": "This property shall represent the location of the resource.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "InfoFormat": {
-                    "deprecated": "This property has been Deprecated in favor of new properties defined in Resource.v1_3_0.Location and Resource.v1_5_0.Location.",
-                    "description": "This represents the format of the Info property.",
-                    "longDescription": "This property shall represent the format of the Info property.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Latitude": {
-                    "description": "The latitude resource.",
-                    "longDescription": "The value shall be the latitude of the resource specified in degrees using a decimal format and not minutes or seconds.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "deg"
-                },
-                "Longitude": {
-                    "description": "The longitude resource in degrees.",
-                    "longDescription": "The value shall be the longitude of the resource specified in degrees using a decimal format and not minutes or seconds.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "deg"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "PartLocation": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PartLocation"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Postal address of the addressed resource.",
-                    "longDescription": "The value shall be a postal address of the resource."
-                },
-                "Placement": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Placement"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "A place within the addressed location.",
-                    "longDescription": "The value shall be a place within the addressed location."
-                },
-                "PostalAddress": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PostalAddress"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Postal address of the addressed resource.",
-                    "longDescription": "The value shall be a postal address of the resource."
-                }
-            },
-            "type": "object"
-        },
-        "LocationType": {
-            "description": "Defines the location types for PartLocation.",
-            "enum": [
-                "Slot",
-                "Bay",
-                "Connector",
-                "Socket"
-            ],
-            "enumDescriptions": {
-                "Bay": "Defines a bay as the type of location.",
-                "Connector": "Defines a connector as the type of location.",
-                "Slot": "Defines a slot as the type of location.",
-                "Socket": "Defines a socket as the type of location."
-            },
-            "enumLongDescriptions": {
-                "Bay": "Bay shall be used to indicate the type of PartLocation is of type bay.",
-                "Connector": "Connector shall be used to indicate the type of PartLocation is of type connector.",
-                "Slot": "Slot shall be used to indicate the type of PartLocation is of type slot.",
-                "Socket": "Socket shall be used to indicate the type of PartLocation is of type socket."
-            },
-            "longDescription": "Enumeration literals shall name the type of location in use.",
-            "type": "string"
-        },
-        "Orientation": {
-            "description": "Defines a orientation for the ordering of the ordinal value of the part location.",
-            "enum": [
-                "FrontToBack",
-                "BackToFront",
-                "TopToBottom",
-                "BottomToTop",
-                "LeftToRight",
-                "RightToLeft"
-            ],
-            "enumDescriptions": {
-                "BackToFront": "Defines the ordering for the LocationOrdinalValue is back to front.",
-                "BottomToTop": "Defines the ordering for the LocationOrdinalValue is bottom to top.",
-                "FrontToBack": "Defines the ordering for the LocationOrdinalValue is front to back.",
-                "LeftToRight": "Defines the ordering for the LocationOrdinalValue is left to right.",
-                "RightToLeft": "Defines the ordering for the LocationOrdinalValue is right to left.",
-                "TopToBottom": "Defines the ordering for the LocationOrdinalValue is top to bottom."
-            },
-            "enumLongDescriptions": {
-                "BackToFront": "This value shall be used to specify the ordering for LocationOrdinalValue is back to front.",
-                "BottomToTop": "This value shall be used to specify the ordering for LocationOrdinalValue is bottom to top.",
-                "FrontToBack": "This value shall be used to specify the ordering for LocationOrdinalValue is front to back.",
-                "LeftToRight": "This value shall be used to specify the ordering for LocationOrdinalValue is left to right.",
-                "RightToLeft": "This value shall be used to specify the ordering for LocationOrdinalValue is right to left.",
-                "TopToBottom": "This value shall be used to specify the ordering for LocationOrdinalValue is top to bottom."
-            },
-            "longDescription": "Enumeration literals shall name the orientation for the location type ordering in determining the LocationOrdinalValue.",
-            "type": "string"
-        },
-        "PartLocation": {
-            "additionalProperties": false,
-            "description": "The part location within the placement.",
-            "longDescription": "The value shall describe a location within a resource.  This representation shall be used to indicate the location within the Placement.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "LocationOrdinalValue": {
-                    "description": "The number that represents the location of the part.  If LocationType is slot and this unit is in slot 2 then the LocationOrdinalValue will be 2.",
-                    "longDescription": "The value shall be the number that represents the location of the part based on the LocationType.  LocationOrdinalValue shall be measured based on the Orientation value starting with 0.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "LocationType": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/LocationType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of location of the part, such as slot, bay, socket and slot.",
-                    "longDescription": "The value shall be a LocationType enumeration literal indicating the type of rack units in use.",
-                    "readonly": true
-                },
-                "Orientation": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Orientation"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The orientation for the ordering of the slot enumeration used by the LocationOrdinalValue property.",
-                    "longDescription": "The value shall be a Orientation enumeration literal indicating the orientation for the ordering used by the LocationOrdinalValue property.",
-                    "readonly": true
-                },
-                "Reference": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/Reference"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The reference point for the part location.  This is used to give guidance as to the general location of the part.",
-                    "longDescription": "The value shall be a Reference enumeration literal indicating the general location within the unit of the part.",
-                    "readonly": true
-                },
-                "ServiceLabel": {
-                    "description": "This is the label of the part location, such as a silk screened name or a printed label.",
-                    "longDescription": "The value shall be the label assigned for service at the part location.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "Placement": {
-            "additionalProperties": false,
-            "description": "The placement within the addressed location.",
-            "longDescription": "The value shall describe a location within a resource.  Examples include a shelf in a rack.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Rack": {
-                    "description": "Name of a rack location within a row.",
-                    "longDescription": "The value shall be the name of the rack within a row.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RackOffset": {
-                    "description": "Vertical location of the item in terms of RackOffsetUnits.",
-                    "longDescription": "Vertical location of the item in the rack. Rack offset units shall be measured from bottom to top starting with 0.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "RackOffsetUnits": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/RackUnits"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The type of Rack Units in use.",
-                    "longDescription": "The value shall be a RackUnit enumeration literal indicating the type of rack units in use.",
-                    "readonly": false
-                },
-                "Row": {
-                    "description": "Name of row.",
-                    "longDescription": "The value shall be the name of the row.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "PostalAddress": {
-            "additionalProperties": false,
-            "description": "The PostalAddress for a resource.",
-            "longDescription": "Instances shall describe a postal address for a resource. For more information see RFC5139. Depending on use, the instance may represent a past, current, or future location.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "AdditionalCode": {
-                    "description": "Additional code.",
-                    "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Building": {
-                    "description": "Name of the building.",
-                    "longDescription": "The value shall conform the requirements of the BLD field as defined in RFC5139.  The value shall be name a building used to locate the resource.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "City": {
-                    "description": "City, township, or shi (JP).",
-                    "longDescription": "The value shall conform the requirements of the A3 field as defined in RFC5139.  It is used to name a city, township, or shi (JP).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Community": {
-                    "description": "Postal community name.",
-                    "longDescription": "The value shall conform the requirements of the PCN field as defined in RFC5139.  The value shall be a postal community name.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Country": {
-                    "description": "Country.",
-                    "longDescription": "The value shall conform the requirements of the Country field as defined in RFC5139.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "District": {
-                    "description": "A county, parish, gun (JP), or  district (IN).",
-                    "longDescription": "The value shall conform the requirements of the A2 field as defined in RFC5139.  It is used to name a county, parish, gun (JP), or  district (IN).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Division": {
-                    "description": "City division, borough, dity district, ward, chou (JP).",
-                    "longDescription": "The value shall conform the requirements of the A4 field as defined in RFC5139.  It is used to name a city division, borough, dity district, ward, chou (JP).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Floor": {
-                    "description": "Floor.",
-                    "longDescription": "The value shall conform the requirements of the FLR field as defined in RFC5139.  It is used to provide a floor designation.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "GPSCoords": {
-                    "deprecated": "This property has been Deprecated in favor of Location.v1_6_0.Longitude and Location.v1_6_0.Latitude",
-                    "description": "The GPS coordinates of the part.",
-                    "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139. The value shall be the GPS coordinates of the location. If furnished, this shall be expressed in the format '[-][nn]n.nnnnnn, [-][nn]n.nnnnn', i.e. two numbers, either positive or negative, with six decimal places of precision, comma-separated.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "HouseNumber": {
-                    "description": "Numeric portion of house number.",
-                    "longDescription": "The value shall conform the requirements of the HNO field as defined in RFC5139.  It is the numeric portion of the house number.",
-                    "readonly": false,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "HouseNumberSuffix": {
-                    "description": "House number suffix.",
-                    "longDescription": "The value shall conform the requirements of the HNS field as defined in RFC5139.  It is used to provide a suffix to a house number, (F, B, 1/2).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Landmark": {
-                    "description": "Landmark.",
-                    "longDescription": "The value shall conform the requirements of the LMK field as defined in RFC5139.  It is used to identify a landmark or vanity address.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "LeadingStreetDirection": {
-                    "description": "A leading street direction.",
-                    "longDescription": "The value shall conform the requirements of the PRD field as defined in RFC5139.  It is used to name a leading street direction, (N, W, SE).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Location": {
-                    "description": "Room designation or other additional info.",
-                    "longDescription": "The value shall conform the requirements of the LOC field as defined in RFC5139.  It is used to provide additional information.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "description": "Name.",
-                    "longDescription": "The value shall conform the requirements of the NAM field as defined in RFC5139.  It is used to name the occupant.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Neighborhood": {
-                    "description": "Neighborhood or block.",
-                    "longDescription": "The value shall conform the requirements of the A5 field as defined in RFC5139.  It is used to name a neighborhood or block.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "POBox": {
-                    "description": "Post office box (P.O. box).",
-                    "longDescription": "The value shall conform the requirements of the POBOX field as defined in RFC5139.  The value shall be a Post office box (P.O. box).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PlaceType": {
-                    "description": "A description of the type of place that is addressed.",
-                    "longDescription": "The value shall conform the requirements of the PLC field as defined in RFC5139.  Examples include: office, residence,...).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PostalCode": {
-                    "description": "Postal code (or zip code).",
-                    "longDescription": "The value shall conform the requirements of the PC field as defined in RFC5139. The value shall be a Postal code (or zip code).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Road": {
-                    "description": "A primary road or street.",
-                    "longDescription": "The value shall conform the requirements of the RD field as defined in RFC5139.  The value designates a primary road or street.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoadBranch": {
-                    "description": "Road branch.",
-                    "longDescription": "The value shall conform the requirements of the RDBR field as defined in RFC5139.  The value shall be a Post office box (P.O. box)road branch.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoadPostModifier": {
-                    "description": "Road post-modifier.",
-                    "longDescription": "The value shall conform the requirements of the POM field as defined in RFC5139.  (Extended).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoadPreModifier": {
-                    "description": "Road pre-modifier.",
-                    "longDescription": "The value shall conform the requirements of the PRM field as defined in RFC5139.  (Old, New).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoadSection": {
-                    "description": "Road Section.",
-                    "longDescription": "The value shall conform the requirements of the RDSEC field as defined in RFC5139.  The value shall be a road section.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "RoadSubBranch": {
-                    "description": "Road sub branch.",
-                    "longDescription": "The value shall conform the requirements of the RDSUBBR field as defined in RFC5139.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Room": {
-                    "description": "Name or number of the room.",
-                    "longDescription": "The value shall conform the requirements of the ROOM field as defined in RFC5139.  The value shall be a name or number of a room used to locate the resource within the unit.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Seat": {
-                    "description": "Seat (desk, cubicle, workstation).",
-                    "longDescription": "The value shall conform the requirements of the SEAT field as defined in RFC5139.  The value shall be a name or number of a Seat (desk, cubicle, workstation).",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Street": {
-                    "description": "Street name.",
-                    "longDescription": "The value shall conform the requirements of the A6 field as defined in RFC5139.  It is used to name a street.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "StreetSuffix": {
-                    "description": "Avenue, Platz, Street, Circle.",
-                    "longDescription": "The value shall conform the requirements of the STS field as defined in RFC5139.  It is used to name a  street suffix.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Territory": {
-                    "description": "A top-level subdivision within a country.",
-                    "longDescription": "The value shall conform the requirements of the A1 field as defined in RFC5139 when used to name a territory, state, region, province, or prefecture within a country.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "TrailingStreetSuffix": {
-                    "description": "A trailing street suffix.",
-                    "longDescription": "The value shall conform the requirements of the POD field as defined in RFC5139.  It is used to name a trailing street suffix.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Unit": {
-                    "description": "Name or number of the unit (apartment, suite).",
-                    "longDescription": "The value shall conform the requirements of the UNIT field as defined in RFC5139.  The value shall be a name or number of a unit (apartment, suite) used to locate the resource.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "PowerState": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "On",
-                "Off",
-                "PoweringOn",
-                "PoweringOff"
-            ],
-            "enumDescriptions": {
-                "Off": "The state is powered Off.",
-                "On": "The state is powered On.",
-                "PoweringOff": "A temporary state between On and Off.",
-                "PoweringOn": "A temporary state between Off and On."
-            },
-            "type": "string"
-        },
-        "RackUnits": {
-            "description": "Defines a rack unit.",
-            "enum": [
-                "OpenU",
-                "EIA_310"
-            ],
-            "enumDescriptions": {
-                "EIA_310": "Defines a rack unit as being equal to 1.75 in (44.45 mm).",
-                "OpenU": "Defines a rack unit as being equal to 48 mm (1.89 in)."
-            },
-            "enumLongDescriptions": {
-                "EIA_310": "Rack units shall be specified as defined by the EIA-310 standard.",
-                "OpenU": "Rack units shall be specifie3d in terms of the Open Compute Open Rack specification."
-            },
-            "longDescription": "Enumeration literals shall name the type of rack units in use.",
-            "type": "string"
-        },
-        "Reference": {
-            "description": "Defines a reference area for the location of the part.",
-            "enum": [
-                "Top",
-                "Bottom",
-                "Front",
-                "Rear",
-                "Left",
-                "Right",
-                "Middle"
-            ],
-            "enumDescriptions": {
-                "Bottom": "Defines the part as being in the bottom of the unit.",
-                "Front": "Defines the part as being in the front of the unit.",
-                "Left": "Defines the part as being in the left of the unit.",
-                "Middle": "Defines the part as being in the middle of the unit.",
-                "Rear": "Defines the part as being in the rear of the unit.",
-                "Right": "Defines the part as being in the right of the unit.",
-                "Top": "Defines the part as being in the top of the unit."
-            },
-            "enumLongDescriptions": {
-                "Bottom": "Top shall be used to specify the part location is in the bottom of the unit.",
-                "Front": "Top shall be used to specify the part location is in the front of the unit.",
-                "Left": "Top shall be used to specify the part location is in the left of the unit.",
-                "Middle": "Top shall be used to specify the part location is in the middle of the unit.",
-                "Rear": "Top shall be used to specify the part location is in the rear of the unit.",
-                "Right": "Top shall be used to specify the part location is in the right of the unit.",
-                "Top": "Top shall be used to specify the part location is in the top of the unit."
-            },
-            "longDescription": "Enumeration literals shall name the reference for the part location.",
-            "type": "string"
-        },
-        "ReferenceableMember": {
-            "additionalProperties": false,
-            "description": "This is the base type for addressable members of an array.",
-            "longDescription": "Array members can be referenced using the value returned in the @odata.id property which may or may not be a dereferenceable URL. The @odata.id of this entity shall be the location of this element within an Item.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "type": "object"
-        },
-        "Resource": {
-            "additionalProperties": false,
-            "description": "This is the base type for resources and referenceable members.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ResourceCollection": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Resource",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Resource Schema File",
+    "Schema": "#Resource.Resource",
+    "Description": "Resource Schema File Location",
+    "Id": "Resource",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Resource.json",
+            "Uri": "/redfish/v1/JSONSchemas/Resource/Resource.json"
         }
-    },
-    "title": "#Resource.v1_6_0"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json b/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json
new file mode 100644
index 0000000..5c10443
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ResourceBlock/ResourceBlock.json
@@ -0,0 +1,409 @@
+{
+    "$ref": "#/definitions/ResourceBlock",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "CompositionState": {
+            "enum": [
+                "Composing",
+                "ComposedAndAvailable",
+                "Composed",
+                "Unused",
+                "Failed"
+            ],
+            "enumDescriptions": {
+                "Composed": "Final successful state of a Resource Block which has participated in composition.",
+                "ComposedAndAvailable": "Indicates the Resource Block is currently participating in one or more compositions, and is available to be used in more compositions.",
+                "Composing": "Intermediate state indicating composition is in progress.",
+                "Failed": "The final composition resulted in failure and manual intervention may be required to fix it.",
+                "Unused": "Indicates the Resource Block is free and can participate in composition."
+            },
+            "type": "string"
+        },
+        "CompositionStatus": {
+            "additionalProperties": false,
+            "description": "Composition status of the Resource Block.",
+            "longDescription": "This type shall contain properties that describe the high level composition status of the Resource Block.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "CompositionState": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/CompositionState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This property represents the current state of the Resource Block from a composition perspective.",
+                    "longDescription": "The value of this property shall be an enumerated value describing composition state of the Resource Block.",
+                    "readonly": true
+                },
+                "MaxCompositions": {
+                    "description": "The maximum number of compositions in which this Resource Block is capable of participating simultaneously.",
+                    "longDescription": "The value of this property shall be a number indicating the maximum number of compositions in which this Resource Block is capable of participating simultaneously.  Services may have additional constraints that prevent this value from being achieved, such as due to system topology and current composed resource utilization.  If SharingCapable is set to false, this value shall be set to 1.  The service shall support this property if SharingCapable supported.",
+                    "minimum": 1,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "NumberOfCompositions": {
+                    "description": "The number of compositions in which this Resource Block is currently participating.",
+                    "longDescription": "The value of this property shall be the number of compositions in which this Resource Block is currently participating.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Reserved": {
+                    "description": "This represents if the Resource Block is reserved by any client.",
+                    "longDescription": "This property shall be a boolean that is set by client once the Resource Block is identified to be composed.  It shall provide multiple clients a way to negotiate its ownership.  This will help clients to know if a Resource Block is reserved by other client.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SharingCapable": {
+                    "description": "Indicates if this Resource Block is capable of participating in multiple compositions simultaneously.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is capable of participating in multiple compositions simultaneously.  If this property is not provided, it shall be assumed that this Resource Block is not capable of being shared.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SharingEnabled": {
+                    "description": "Indicates if this Resource Block is allowed to participate in multiple compositions simultaneously.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is allowed to participate in multiple compositions simultaneously.  The service shall reject modifications of this property with HTTP 400 Bad Request if this Resource Block already being used as part of a composed resource.  If this property is set to false, the service shall not use the ComposedAndAvailable state for this Resource Block.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "CompositionState"
+            ],
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "description": "An array of references to the Chassis in which this Resource Block is contained.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Chassis that represent the physical container associated with this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Chassis@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ComputerSystems": {
+                    "description": "An array of references to the Computer Systems that are composed from this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type ComputerSystem that represent the Computer Systems composed from this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "Zones": {
+                    "description": "An array of references to the Zones in which this Resource Block is bound.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Zone.json#/definitions/Zone"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Zone that represent the binding constraints associated with this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Zones@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ResourceBlock": {
+            "additionalProperties": false,
+            "description": "This schema defines a Resource Block resource.",
+            "longDescription": "This resource shall be used to represent a Resource Block for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "CompositionStatus": {
+                    "$ref": "#/definitions/CompositionStatus",
+                    "description": "This property describes the composition status details for this Resource Block.",
+                    "longDescription": "The value of this property shall contain composition status information about this Resource Block."
+                },
+                "ComputerSystems": {
+                    "description": "An array of references to the Computer Systems available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type ComputerSystem that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ComputerSystems@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EthernetInterfaces": {
+                    "description": "An array of references to the Ethernet Interfaces available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type EthernetInterface that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "EthernetInterfaces@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Memory": {
+                    "description": "An array of references to the Memory available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Memory that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Memory@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "NetworkInterfaces": {
+                    "description": "An array of references to the Network Interfaces available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterface.json#/definitions/NetworkInterface"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type NetworkInterface that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "NetworkInterfaces@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Processors": {
+                    "description": "An array of references to the Processors available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Processor that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Processors@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ResourceBlockType": {
+                    "description": "This property represents the types of resources available on this Resource Block.",
+                    "items": {
+                        "$ref": "#/definitions/ResourceBlockType"
+                    },
+                    "longDescription": "The value of this property shall be an array of enumerated values describing type of resources available.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "SimpleStorage": {
+                    "description": "An array of references to the Simple Storage available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorage.json#/definitions/SimpleStorage"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type SimpleStorage that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "SimpleStorage@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Storage": {
+                    "description": "An array of references to the Storage available in this Resource Block.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type Storage that are in this Resource Block.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Storage@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                }
+            },
+            "required": [
+                "CompositionStatus",
+                "ResourceBlockType",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ResourceBlockType": {
+            "enum": [
+                "Compute",
+                "Processor",
+                "Memory",
+                "Network",
+                "Storage",
+                "ComputerSystem"
+            ],
+            "enumDescriptions": {
+                "Compute": "This Resource Block contains both Processor and Memory resources in a manner that creates a compute complex.",
+                "ComputerSystem": "This Resource Block contains ComputerSystem resources.",
+                "Memory": "This Resource Block contains Memory resources.",
+                "Network": "This Resource Block contains Network resources, such as Ethernet Interfaces.",
+                "Processor": "This Resource Block contains Processor resources.",
+                "Storage": "This Resource Block contains Storage resources, such as Storage and Simple Storage."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#ResourceBlock.v1_1_0.ResourceBlock"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ResourceBlock/index.json b/static/redfish/v1/JsonSchemas/ResourceBlock/index.json
index 5c10443..cf825cf 100644
--- a/static/redfish/v1/JsonSchemas/ResourceBlock/index.json
+++ b/static/redfish/v1/JsonSchemas/ResourceBlock/index.json
@@ -1,409 +1,21 @@
 {
-    "$ref": "#/definitions/ResourceBlock",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "CompositionState": {
-            "enum": [
-                "Composing",
-                "ComposedAndAvailable",
-                "Composed",
-                "Unused",
-                "Failed"
-            ],
-            "enumDescriptions": {
-                "Composed": "Final successful state of a Resource Block which has participated in composition.",
-                "ComposedAndAvailable": "Indicates the Resource Block is currently participating in one or more compositions, and is available to be used in more compositions.",
-                "Composing": "Intermediate state indicating composition is in progress.",
-                "Failed": "The final composition resulted in failure and manual intervention may be required to fix it.",
-                "Unused": "Indicates the Resource Block is free and can participate in composition."
-            },
-            "type": "string"
-        },
-        "CompositionStatus": {
-            "additionalProperties": false,
-            "description": "Composition status of the Resource Block.",
-            "longDescription": "This type shall contain properties that describe the high level composition status of the Resource Block.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "CompositionState": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/CompositionState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This property represents the current state of the Resource Block from a composition perspective.",
-                    "longDescription": "The value of this property shall be an enumerated value describing composition state of the Resource Block.",
-                    "readonly": true
-                },
-                "MaxCompositions": {
-                    "description": "The maximum number of compositions in which this Resource Block is capable of participating simultaneously.",
-                    "longDescription": "The value of this property shall be a number indicating the maximum number of compositions in which this Resource Block is capable of participating simultaneously.  Services may have additional constraints that prevent this value from being achieved, such as due to system topology and current composed resource utilization.  If SharingCapable is set to false, this value shall be set to 1.  The service shall support this property if SharingCapable supported.",
-                    "minimum": 1,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "NumberOfCompositions": {
-                    "description": "The number of compositions in which this Resource Block is currently participating.",
-                    "longDescription": "The value of this property shall be the number of compositions in which this Resource Block is currently participating.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Reserved": {
-                    "description": "This represents if the Resource Block is reserved by any client.",
-                    "longDescription": "This property shall be a boolean that is set by client once the Resource Block is identified to be composed.  It shall provide multiple clients a way to negotiate its ownership.  This will help clients to know if a Resource Block is reserved by other client.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SharingCapable": {
-                    "description": "Indicates if this Resource Block is capable of participating in multiple compositions simultaneously.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is capable of participating in multiple compositions simultaneously.  If this property is not provided, it shall be assumed that this Resource Block is not capable of being shared.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SharingEnabled": {
-                    "description": "Indicates if this Resource Block is allowed to participate in multiple compositions simultaneously.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this Resource Block is allowed to participate in multiple compositions simultaneously.  The service shall reject modifications of this property with HTTP 400 Bad Request if this Resource Block already being used as part of a composed resource.  If this property is set to false, the service shall not use the ComposedAndAvailable state for this Resource Block.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "CompositionState"
-            ],
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "description": "An array of references to the Chassis in which this Resource Block is contained.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Chassis that represent the physical container associated with this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Chassis@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ComputerSystems": {
-                    "description": "An array of references to the Computer Systems that are composed from this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type ComputerSystem that represent the Computer Systems composed from this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "Zones": {
-                    "description": "An array of references to the Zones in which this Resource Block is bound.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Zone.json#/definitions/Zone"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Zone that represent the binding constraints associated with this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Zones@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ResourceBlock": {
-            "additionalProperties": false,
-            "description": "This schema defines a Resource Block resource.",
-            "longDescription": "This resource shall be used to represent a Resource Block for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "CompositionStatus": {
-                    "$ref": "#/definitions/CompositionStatus",
-                    "description": "This property describes the composition status details for this Resource Block.",
-                    "longDescription": "The value of this property shall contain composition status information about this Resource Block."
-                },
-                "ComputerSystems": {
-                    "description": "An array of references to the Computer Systems available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type ComputerSystem that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ComputerSystems@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EthernetInterfaces": {
-                    "description": "An array of references to the Ethernet Interfaces available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type EthernetInterface that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "EthernetInterfaces@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Memory": {
-                    "description": "An array of references to the Memory available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Memory that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Memory@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "NetworkInterfaces": {
-                    "description": "An array of references to the Network Interfaces available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkInterface.json#/definitions/NetworkInterface"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type NetworkInterface that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "NetworkInterfaces@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Processors": {
-                    "description": "An array of references to the Processors available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Processor that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Processors@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ResourceBlockType": {
-                    "description": "This property represents the types of resources available on this Resource Block.",
-                    "items": {
-                        "$ref": "#/definitions/ResourceBlockType"
-                    },
-                    "longDescription": "The value of this property shall be an array of enumerated values describing type of resources available.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "SimpleStorage": {
-                    "description": "An array of references to the Simple Storage available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/SimpleStorage.json#/definitions/SimpleStorage"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type SimpleStorage that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "SimpleStorage@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Storage": {
-                    "description": "An array of references to the Storage available in this Resource Block.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type Storage that are in this Resource Block.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Storage@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                }
-            },
-            "required": [
-                "CompositionStatus",
-                "ResourceBlockType",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ResourceBlockType": {
-            "enum": [
-                "Compute",
-                "Processor",
-                "Memory",
-                "Network",
-                "Storage",
-                "ComputerSystem"
-            ],
-            "enumDescriptions": {
-                "Compute": "This Resource Block contains both Processor and Memory resources in a manner that creates a compute complex.",
-                "ComputerSystem": "This Resource Block contains ComputerSystem resources.",
-                "Memory": "This Resource Block contains Memory resources.",
-                "Network": "This Resource Block contains Network resources, such as Ethernet Interfaces.",
-                "Processor": "This Resource Block contains Processor resources.",
-                "Storage": "This Resource Block contains Storage resources, such as Storage and Simple Storage."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ResourceBlock",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ResourceBlock Schema File",
+    "Schema": "#ResourceBlock.ResourceBlock",
+    "Description": "ResourceBlock Schema File Location",
+    "Id": "ResourceBlock",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json",
+            "Uri": "/redfish/v1/JSONSchemas/ResourceBlock/ResourceBlock.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#ResourceBlock.v1_1_0.ResourceBlock"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Role/Role.json b/static/redfish/v1/JsonSchemas/Role/Role.json
new file mode 100644
index 0000000..721c65b
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Role/Role.json
@@ -0,0 +1,148 @@
+{
+    "$ref": "#/definitions/Role",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Role": {
+            "additionalProperties": false,
+            "description": "This resource defines a user role to be used in conjunction with a Manager Account.",
+            "longDescription": "This resource shall be used to represent resources that represent the user role for the user account.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AssignedPrivileges": {
+                    "description": "The redfish privileges that this role includes.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType"
+                    },
+                    "longDescription": "The value of this property shall be the redfish privileges that the role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "IsPredefined": {
+                    "description": "This property is used to indicate if the Role is one of the Redfish Predefined Roles vs a Custom role.",
+                    "longDescription": "The value of this property shall indicate if the role is a predefined role. .",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "OemPrivileges": {
+                    "description": "The OEM privileges that this role includes.",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "The value of this property shall be the OEM privileges that this role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "RoleId": {
+                    "description": "This property contains the name of the Role.",
+                    "longDescription": "This property shall contain the string name of the Role.  This property shall contain the same value as the Id property.",
+                    "readonly": true,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "RoleId"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#Role.v1_2_1.Role"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Role/index.json b/static/redfish/v1/JsonSchemas/Role/index.json
index 721c65b..321e783 100644
--- a/static/redfish/v1/JsonSchemas/Role/index.json
+++ b/static/redfish/v1/JsonSchemas/Role/index.json
@@ -1,148 +1,21 @@
 {
-    "$ref": "#/definitions/Role",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Role": {
-            "additionalProperties": false,
-            "description": "This resource defines a user role to be used in conjunction with a Manager Account.",
-            "longDescription": "This resource shall be used to represent resources that represent the user role for the user account.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AssignedPrivileges": {
-                    "description": "The redfish privileges that this role includes.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType"
-                    },
-                    "longDescription": "The value of this property shall be the redfish privileges that the role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "IsPredefined": {
-                    "description": "This property is used to indicate if the Role is one of the Redfish Predefined Roles vs a Custom role.",
-                    "longDescription": "The value of this property shall indicate if the role is a predefined role. .",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "OemPrivileges": {
-                    "description": "The OEM privileges that this role includes.",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "The value of this property shall be the OEM privileges that this role includes. For pre-defined roles, this property shall be readOnly. For custom roles some implementations may not allow writing this property.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "RoleId": {
-                    "description": "This property contains the name of the Role.",
-                    "longDescription": "This property shall contain the string name of the Role.  This property shall contain the same value as the Id property.",
-                    "readonly": true,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "RoleId"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Role",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Role Schema File",
+    "Schema": "#Role.Role",
+    "Description": "Role Schema File Location",
+    "Id": "Role",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Role.json",
+            "Uri": "/redfish/v1/JSONSchemas/Role/Role.json"
         }
-    },
-    "title": "#Role.v1_2_1.Role"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json b/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json
new file mode 100644
index 0000000..1d0e697
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/SecureBoot/SecureBoot.json
@@ -0,0 +1,230 @@
+{
+    "$ref": "#/definitions/SecureBoot",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#SecureBoot.ResetKeys": {
+                    "$ref": "#/definitions/ResetKeys"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ResetKeys": {
+            "additionalProperties": false,
+            "description": "This action is used to reset the Secure Boot keys.",
+            "longDescription": "This action shall perform a reset of the Secure Boot key databases. The ResetAllKeysToDefault value shall reset the UEFI Secure Boot key databases to their default values. The DeleteAllKeys value shall delete the content of the UEFI Secure Boot key databases. The DeletePK value shall delete the content of the PK Secure boot key.",
+            "parameters": {
+                "ResetKeysType": {
+                    "$ref": "#/definitions/ResetKeysType",
+                    "description": "The type of keys to reset or delete.",
+                    "longDescription": "This parameter shall specify the type of keys to reset or delete.",
+                    "requiredParameter": true
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "ResetKeysType": {
+            "enum": [
+                "ResetAllKeysToDefault",
+                "DeleteAllKeys",
+                "DeletePK"
+            ],
+            "enumDescriptions": {
+                "DeleteAllKeys": "Delete the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX). This puts the system in Setup Mode.",
+                "DeletePK": "Delete the content of the PK UEFI Secure Boot database. This puts the system in Setup Mode.",
+                "ResetAllKeysToDefault": "Reset the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX) to their default values."
+            },
+            "type": "string"
+        },
+        "SecureBoot": {
+            "additionalProperties": false,
+            "description": "This resource contains UEFI Secure Boot information. It represents properties for managing the UEFI Secure Boot functionality of a system.",
+            "longDescription": "This resource shall be used to represent a UEFI Secure Boot resource for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "SecureBootCurrentBoot": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SecureBootCurrentBootType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Secure Boot state during the current boot cycle.",
+                    "longDescription": "The value of this property shall indicate the UEFI Secure Boot state during the current boot cycle.",
+                    "readonly": true
+                },
+                "SecureBootEnable": {
+                    "description": "Enable or disable UEFI Secure Boot (takes effect on next boot).",
+                    "longDescription": "Setting this property to true enables UEFI Secure Boot, and setting it to false disables it. This property can be enabled only in UEFI boot mode.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SecureBootMode": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/SecureBootModeType"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Current Secure Boot Mode.",
+                    "longDescription": "This property shall contain the current Secure Boot mode, as defined in the UEFI Specification.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "SecureBootCurrentBootType": {
+            "enum": [
+                "Enabled",
+                "Disabled"
+            ],
+            "enumDescriptions": {
+                "Disabled": "Secure Boot is currently disabled.",
+                "Enabled": "Secure Boot is currently enabled."
+            },
+            "type": "string"
+        },
+        "SecureBootModeType": {
+            "enum": [
+                "SetupMode",
+                "UserMode",
+                "AuditMode",
+                "DeployedMode"
+            ],
+            "enumDescriptions": {
+                "AuditMode": "Secure Boot is currently in Audit Mode.",
+                "DeployedMode": "Secure Boot is currently in Deployed Mode.",
+                "SetupMode": "Secure Boot is currently in Setup Mode.",
+                "UserMode": "Secure Boot is currently in User Mode."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#SecureBoot.v1_0_3.SecureBoot"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SecureBoot/index.json b/static/redfish/v1/JsonSchemas/SecureBoot/index.json
index 1d0e697..2712219 100644
--- a/static/redfish/v1/JsonSchemas/SecureBoot/index.json
+++ b/static/redfish/v1/JsonSchemas/SecureBoot/index.json
@@ -1,230 +1,21 @@
 {
-    "$ref": "#/definitions/SecureBoot",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#SecureBoot.ResetKeys": {
-                    "$ref": "#/definitions/ResetKeys"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ResetKeys": {
-            "additionalProperties": false,
-            "description": "This action is used to reset the Secure Boot keys.",
-            "longDescription": "This action shall perform a reset of the Secure Boot key databases. The ResetAllKeysToDefault value shall reset the UEFI Secure Boot key databases to their default values. The DeleteAllKeys value shall delete the content of the UEFI Secure Boot key databases. The DeletePK value shall delete the content of the PK Secure boot key.",
-            "parameters": {
-                "ResetKeysType": {
-                    "$ref": "#/definitions/ResetKeysType",
-                    "description": "The type of keys to reset or delete.",
-                    "longDescription": "This parameter shall specify the type of keys to reset or delete.",
-                    "requiredParameter": true
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "ResetKeysType": {
-            "enum": [
-                "ResetAllKeysToDefault",
-                "DeleteAllKeys",
-                "DeletePK"
-            ],
-            "enumDescriptions": {
-                "DeleteAllKeys": "Delete the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX). This puts the system in Setup Mode.",
-                "DeletePK": "Delete the content of the PK UEFI Secure Boot database. This puts the system in Setup Mode.",
-                "ResetAllKeysToDefault": "Reset the content of all UEFI Secure Boot key databases (PK, KEK, DB, DBX) to their default values."
-            },
-            "type": "string"
-        },
-        "SecureBoot": {
-            "additionalProperties": false,
-            "description": "This resource contains UEFI Secure Boot information. It represents properties for managing the UEFI Secure Boot functionality of a system.",
-            "longDescription": "This resource shall be used to represent a UEFI Secure Boot resource for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "SecureBootCurrentBoot": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SecureBootCurrentBootType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Secure Boot state during the current boot cycle.",
-                    "longDescription": "The value of this property shall indicate the UEFI Secure Boot state during the current boot cycle.",
-                    "readonly": true
-                },
-                "SecureBootEnable": {
-                    "description": "Enable or disable UEFI Secure Boot (takes effect on next boot).",
-                    "longDescription": "Setting this property to true enables UEFI Secure Boot, and setting it to false disables it. This property can be enabled only in UEFI boot mode.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SecureBootMode": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/SecureBootModeType"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Current Secure Boot Mode.",
-                    "longDescription": "This property shall contain the current Secure Boot mode, as defined in the UEFI Specification.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "SecureBootCurrentBootType": {
-            "enum": [
-                "Enabled",
-                "Disabled"
-            ],
-            "enumDescriptions": {
-                "Disabled": "Secure Boot is currently disabled.",
-                "Enabled": "Secure Boot is currently enabled."
-            },
-            "type": "string"
-        },
-        "SecureBootModeType": {
-            "enum": [
-                "SetupMode",
-                "UserMode",
-                "AuditMode",
-                "DeployedMode"
-            ],
-            "enumDescriptions": {
-                "AuditMode": "Secure Boot is currently in Audit Mode.",
-                "DeployedMode": "Secure Boot is currently in Deployed Mode.",
-                "SetupMode": "Secure Boot is currently in Setup Mode.",
-                "UserMode": "Secure Boot is currently in User Mode."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/SecureBoot",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "SecureBoot Schema File",
+    "Schema": "#SecureBoot.SecureBoot",
+    "Description": "SecureBoot Schema File Location",
+    "Id": "SecureBoot",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/SecureBoot.json",
+            "Uri": "/redfish/v1/JSONSchemas/SecureBoot/SecureBoot.json"
         }
-    },
-    "title": "#SecureBoot.v1_0_3.SecureBoot"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json b/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json
new file mode 100644
index 0000000..3c4658c
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/SerialInterface/SerialInterface.json
@@ -0,0 +1,309 @@
+{
+    "$ref": "#/definitions/SerialInterface",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "BitRate": {
+            "enum": [
+                "1200",
+                "2400",
+                "4800",
+                "9600",
+                "19200",
+                "38400",
+                "57600",
+                "115200",
+                "230400"
+            ],
+            "enumDescriptions": {
+                "115200": "A bit rate of 115200bps.",
+                "1200": "A bit rate of 1200bps.",
+                "19200": "A bit rate of 19200bps.",
+                "230400": "A bit rate of 230400bps.",
+                "2400": "A bit rate of 2400bps.",
+                "38400": "A bit rate of 38400bps.",
+                "4800": "A bit rate of 4800bps.",
+                "57600": "A bit rate of 57600bps.",
+                "9600": "A bit rate of 9600bps."
+            },
+            "type": "string"
+        },
+        "ConnectorType": {
+            "enum": [
+                "RJ45",
+                "RJ11",
+                "DB9 Female",
+                "DB9 Male",
+                "DB25 Female",
+                "DB25 Male",
+                "USB",
+                "mUSB",
+                "uUSB"
+            ],
+            "enumDescriptions": {
+                "DB25 Female": "A DB25 Female connector.",
+                "DB25 Male": "A DB25 Male connector.",
+                "DB9 Female": "A DB9 Female connector.",
+                "DB9 Male": "A DB9 Male connector.",
+                "RJ11": "An RJ11 connector.",
+                "RJ45": "An RJ45 connector.",
+                "USB": "A USB connector.",
+                "mUSB": "A mUSB connector.",
+                "uUSB": "A uUSB connector."
+            },
+            "type": "string"
+        },
+        "DataBits": {
+            "enum": [
+                "5",
+                "6",
+                "7",
+                "8"
+            ],
+            "enumDescriptions": {
+                "5": "5 bits of data following the start bit.",
+                "6": "6 bits of data following the start bit.",
+                "7": "7 bits of data following the start bit.",
+                "8": "8 bits of data following the start bit."
+            },
+            "type": "string"
+        },
+        "FlowControl": {
+            "enum": [
+                "None",
+                "Software",
+                "Hardware"
+            ],
+            "enumDescriptions": {
+                "Hardware": "Out of band flow control imposed.",
+                "None": "No flow control imposed.",
+                "Software": "XON/XOFF in-band flow control imposed."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Parity": {
+            "enum": [
+                "None",
+                "Even",
+                "Odd",
+                "Mark",
+                "Space"
+            ],
+            "enumDescriptions": {
+                "Even": "An even parity bit.",
+                "Mark": "A mark parity bit.",
+                "None": "No parity bit.",
+                "Odd": "An odd parity bit.",
+                "Space": "A space parity bit."
+            },
+            "type": "string"
+        },
+        "PinOut": {
+            "enum": [
+                "Cisco",
+                "Cyclades",
+                "Digi"
+            ],
+            "enumDescriptions": {
+                "Cisco": "The Cisco pin configuration.",
+                "Cyclades": "The Cyclades pin configuration.",
+                "Digi": "The Digi pin configuration."
+            },
+            "type": "string"
+        },
+        "SerialInterface": {
+            "additionalProperties": false,
+            "description": "This schema defines an asynchronous serial interface resource.",
+            "longDescription": "This resource shall be used to represent serial resources as part of the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "BitRate": {
+                    "$ref": "#/definitions/BitRate",
+                    "description": "The receive and transmit rate of data flow, typically in bits-per-second (bps), over the serial connection.",
+                    "longDescription": "This property shall indicate the transmit and receive speed of the serial connection.",
+                    "readonly": false
+                },
+                "ConnectorType": {
+                    "$ref": "#/definitions/ConnectorType",
+                    "description": "The type of connector used for this interface.",
+                    "longDescription": "This property shall indicate the type of phyiscal connector used for this serial connection.",
+                    "readonly": true
+                },
+                "DataBits": {
+                    "$ref": "#/definitions/DataBits",
+                    "description": "The number of data bits that will follow the start bit over the serial connection.",
+                    "longDescription": "This property shall indicate number of data bits for the serial connection.",
+                    "readonly": false
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "FlowControl": {
+                    "$ref": "#/definitions/FlowControl",
+                    "description": "The type of flow control, if any, that will be imposed on the serial connection.",
+                    "longDescription": "This property shall indicate the flow control mechanism for the serial connection.",
+                    "readonly": false
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "InterfaceEnabled": {
+                    "description": "This indicates whether this interface is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Parity": {
+                    "$ref": "#/definitions/Parity",
+                    "description": "The type of parity used by the sender and receiver in order to detect errors over the serial connection.",
+                    "longDescription": "This property shall indicate parity information for a serial connection.",
+                    "readonly": false
+                },
+                "PinOut": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/PinOut"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The physical pin configuration needed for a serial connector.",
+                    "longDescription": "This property shall indicate the physical pin out for the serial connection.",
+                    "readonly": true
+                },
+                "SignalType": {
+                    "$ref": "#/definitions/SignalType",
+                    "description": "The type of signal used for the communication connection - RS232 or RS485.",
+                    "longDescription": "This property shall indicate the type of serial signalling that will be utilized for the serial connection.",
+                    "readonly": true
+                },
+                "StopBits": {
+                    "$ref": "#/definitions/StopBits",
+                    "description": "The period of time before the next start bit is transmitted.",
+                    "longDescription": "This property shall indicate the stop bits for the serial connection.",
+                    "readonly": false
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "SignalType": {
+            "enum": [
+                "Rs232",
+                "Rs485"
+            ],
+            "enumDescriptions": {
+                "Rs232": "The serial interface follows RS232.",
+                "Rs485": "The serial interface follows RS485."
+            },
+            "type": "string"
+        },
+        "StopBits": {
+            "enum": [
+                "1",
+                "2"
+            ],
+            "enumDescriptions": {
+                "1": "1 stop bit following the data bits.",
+                "2": "2 stop bits following the data bits."
+            },
+            "type": "string"
+        }
+    },
+    "title": "#SerialInterface.v1_1_2.SerialInterface"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SerialInterface/index.json b/static/redfish/v1/JsonSchemas/SerialInterface/index.json
index 3c4658c..f3f642b 100644
--- a/static/redfish/v1/JsonSchemas/SerialInterface/index.json
+++ b/static/redfish/v1/JsonSchemas/SerialInterface/index.json
@@ -1,309 +1,21 @@
 {
-    "$ref": "#/definitions/SerialInterface",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "BitRate": {
-            "enum": [
-                "1200",
-                "2400",
-                "4800",
-                "9600",
-                "19200",
-                "38400",
-                "57600",
-                "115200",
-                "230400"
-            ],
-            "enumDescriptions": {
-                "115200": "A bit rate of 115200bps.",
-                "1200": "A bit rate of 1200bps.",
-                "19200": "A bit rate of 19200bps.",
-                "230400": "A bit rate of 230400bps.",
-                "2400": "A bit rate of 2400bps.",
-                "38400": "A bit rate of 38400bps.",
-                "4800": "A bit rate of 4800bps.",
-                "57600": "A bit rate of 57600bps.",
-                "9600": "A bit rate of 9600bps."
-            },
-            "type": "string"
-        },
-        "ConnectorType": {
-            "enum": [
-                "RJ45",
-                "RJ11",
-                "DB9 Female",
-                "DB9 Male",
-                "DB25 Female",
-                "DB25 Male",
-                "USB",
-                "mUSB",
-                "uUSB"
-            ],
-            "enumDescriptions": {
-                "DB25 Female": "A DB25 Female connector.",
-                "DB25 Male": "A DB25 Male connector.",
-                "DB9 Female": "A DB9 Female connector.",
-                "DB9 Male": "A DB9 Male connector.",
-                "RJ11": "An RJ11 connector.",
-                "RJ45": "An RJ45 connector.",
-                "USB": "A USB connector.",
-                "mUSB": "A mUSB connector.",
-                "uUSB": "A uUSB connector."
-            },
-            "type": "string"
-        },
-        "DataBits": {
-            "enum": [
-                "5",
-                "6",
-                "7",
-                "8"
-            ],
-            "enumDescriptions": {
-                "5": "5 bits of data following the start bit.",
-                "6": "6 bits of data following the start bit.",
-                "7": "7 bits of data following the start bit.",
-                "8": "8 bits of data following the start bit."
-            },
-            "type": "string"
-        },
-        "FlowControl": {
-            "enum": [
-                "None",
-                "Software",
-                "Hardware"
-            ],
-            "enumDescriptions": {
-                "Hardware": "Out of band flow control imposed.",
-                "None": "No flow control imposed.",
-                "Software": "XON/XOFF in-band flow control imposed."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Parity": {
-            "enum": [
-                "None",
-                "Even",
-                "Odd",
-                "Mark",
-                "Space"
-            ],
-            "enumDescriptions": {
-                "Even": "An even parity bit.",
-                "Mark": "A mark parity bit.",
-                "None": "No parity bit.",
-                "Odd": "An odd parity bit.",
-                "Space": "A space parity bit."
-            },
-            "type": "string"
-        },
-        "PinOut": {
-            "enum": [
-                "Cisco",
-                "Cyclades",
-                "Digi"
-            ],
-            "enumDescriptions": {
-                "Cisco": "The Cisco pin configuration.",
-                "Cyclades": "The Cyclades pin configuration.",
-                "Digi": "The Digi pin configuration."
-            },
-            "type": "string"
-        },
-        "SerialInterface": {
-            "additionalProperties": false,
-            "description": "This schema defines an asynchronous serial interface resource.",
-            "longDescription": "This resource shall be used to represent serial resources as part of the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "BitRate": {
-                    "$ref": "#/definitions/BitRate",
-                    "description": "The receive and transmit rate of data flow, typically in bits-per-second (bps), over the serial connection.",
-                    "longDescription": "This property shall indicate the transmit and receive speed of the serial connection.",
-                    "readonly": false
-                },
-                "ConnectorType": {
-                    "$ref": "#/definitions/ConnectorType",
-                    "description": "The type of connector used for this interface.",
-                    "longDescription": "This property shall indicate the type of phyiscal connector used for this serial connection.",
-                    "readonly": true
-                },
-                "DataBits": {
-                    "$ref": "#/definitions/DataBits",
-                    "description": "The number of data bits that will follow the start bit over the serial connection.",
-                    "longDescription": "This property shall indicate number of data bits for the serial connection.",
-                    "readonly": false
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "FlowControl": {
-                    "$ref": "#/definitions/FlowControl",
-                    "description": "The type of flow control, if any, that will be imposed on the serial connection.",
-                    "longDescription": "This property shall indicate the flow control mechanism for the serial connection.",
-                    "readonly": false
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "InterfaceEnabled": {
-                    "description": "This indicates whether this interface is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Parity": {
-                    "$ref": "#/definitions/Parity",
-                    "description": "The type of parity used by the sender and receiver in order to detect errors over the serial connection.",
-                    "longDescription": "This property shall indicate parity information for a serial connection.",
-                    "readonly": false
-                },
-                "PinOut": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/PinOut"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The physical pin configuration needed for a serial connector.",
-                    "longDescription": "This property shall indicate the physical pin out for the serial connection.",
-                    "readonly": true
-                },
-                "SignalType": {
-                    "$ref": "#/definitions/SignalType",
-                    "description": "The type of signal used for the communication connection - RS232 or RS485.",
-                    "longDescription": "This property shall indicate the type of serial signalling that will be utilized for the serial connection.",
-                    "readonly": true
-                },
-                "StopBits": {
-                    "$ref": "#/definitions/StopBits",
-                    "description": "The period of time before the next start bit is transmitted.",
-                    "longDescription": "This property shall indicate the stop bits for the serial connection.",
-                    "readonly": false
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "SignalType": {
-            "enum": [
-                "Rs232",
-                "Rs485"
-            ],
-            "enumDescriptions": {
-                "Rs232": "The serial interface follows RS232.",
-                "Rs485": "The serial interface follows RS485."
-            },
-            "type": "string"
-        },
-        "StopBits": {
-            "enum": [
-                "1",
-                "2"
-            ],
-            "enumDescriptions": {
-                "1": "1 stop bit following the data bits.",
-                "2": "2 stop bits following the data bits."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/SerialInterface",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "SerialInterface Schema File",
+    "Schema": "#SerialInterface.SerialInterface",
+    "Description": "SerialInterface Schema File Location",
+    "Id": "SerialInterface",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/SerialInterface.json",
+            "Uri": "/redfish/v1/JSONSchemas/SerialInterface/SerialInterface.json"
         }
-    },
-    "title": "#SerialInterface.v1_1_2.SerialInterface"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json b/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json
new file mode 100644
index 0000000..67a501e
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json
@@ -0,0 +1,317 @@
+{
+    "$ref": "#/definitions/ServiceRoot",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Expand": {
+            "additionalProperties": false,
+            "description": "Contains information about the use of $expand in the service.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ExpandAll": {
+                    "description": "This indicates whether the expand support of asterisk (expand all entries) is supported.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of asterisk (expand all entries) as a value for the expand query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "Levels": {
+                    "description": "This indicates whether the expand support of the $levels qualifier is supported by the service.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of $levels as a value for the expand query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "Links": {
+                    "description": "This indicates whether the expand support of tilde (expand only entries in the Links section) is supported.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of tilde (expand only entries in the Links section) as a value for the expand query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "MaxLevels": {
+                    "description": "This indicates the maximum number value of the $levels qualifier in expand operations.",
+                    "longDescription": "The value of this property shall be the maximum value of the $levels qualifier supported by the service and shall only be included if the value of the Levels property is true.",
+                    "maximum": 6,
+                    "minimum": 1,
+                    "readonly": true,
+                    "type": "number"
+                },
+                "NoLinks": {
+                    "description": "This indicates whether the expand support of period (expand only entries not in the Links section) is supported.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of period (expand only entries not in the Links section) as a value for the expand query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "Sessions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection",
+                    "description": "Link to a collection of Sessions.",
+                    "longDescription": "This property shall contain the link to a collection of Sessions.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Sessions"
+            ],
+            "type": "object"
+        },
+        "ProtocolFeaturesSupported": {
+            "additionalProperties": false,
+            "description": "Contains information about protocol features supported by the service.",
+            "longDescription": "This type contains information about protocol features supported by the service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ExpandQuery": {
+                    "$ref": "#/definitions/Expand",
+                    "description": "Contains information about the use of $expand in the service.",
+                    "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service."
+                },
+                "FilterQuery": {
+                    "description": "This indicates whether the filter query parameter is supported.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of th filter query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "SelectQuery": {
+                    "description": "This indicates whether the select query parameter is supported.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of th select query parameter as described by the specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "ServiceRoot": {
+            "additionalProperties": false,
+            "description": "This object represents the root Redfish service.",
+            "longDescription": "This object represents the root Redfish service.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "AccountService": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/AccountService.json#/definitions/AccountService",
+                    "description": "This is a link to the Account Service.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the AccountService schema.",
+                    "readonly": true
+                },
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ChassisCollection.json#/definitions/ChassisCollection",
+                    "description": "This is a link to a collection of Chassis.",
+                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Chassis schema.",
+                    "readonly": true
+                },
+                "CompositionService": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/CompositionService.json#/definitions/CompositionService",
+                    "description": "This is a link to the CompositionService.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the CompositionService schema.",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EventService": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/EventService.json#/definitions/EventService",
+                    "description": "This is a link to the EventService.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the EventService schema.",
+                    "readonly": true
+                },
+                "Fabrics": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/FabricCollection.json#/definitions/FabricCollection",
+                    "description": "A link to a collection of all fabric entities.",
+                    "longDescription": "The referenced collection shall contain references to all Fabric instances.",
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "JsonSchemas": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFileCollection.json#/definitions/JsonSchemaFileCollection",
+                    "description": "This is a link to a collection of Json-Schema files.",
+                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the SchemaFile schema where the files are Json-Schema files.",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Managers": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerCollection.json#/definitions/ManagerCollection",
+                    "description": "This is a link to a collection of Managers.",
+                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Managers schema.",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Product": {
+                    "description": "The product associated with this Redfish service.",
+                    "longDescription": "The value of this string shall include the name of the product represented by this Redfish service.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "ProtocolFeaturesSupported": {
+                    "$ref": "#/definitions/ProtocolFeaturesSupported",
+                    "description": "Contains information about protocol features supported by the service.",
+                    "longDescription": "This type contains information about protocol features supported by the service."
+                },
+                "RedfishVersion": {
+                    "description": "The version of the Redfish service.",
+                    "longDescription": "The value of this string shall represent the version of the Redfish service.  The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
+                    "pattern": "^\\d+\\.\\d+\\.\\d+$",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Registries": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/MessageRegistryFileCollection.json#/definitions/MessageRegistryFileCollection",
+                    "description": "This is a link to a collection of Registries.",
+                    "longDescription": "This object shall contain a reference to Message Registry.",
+                    "readonly": true
+                },
+                "SessionService": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionService.json#/definitions/SessionService",
+                    "description": "This is a link to the Sessions Service.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the SessionService schema.",
+                    "readonly": true
+                },
+                "StorageServices": {
+                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageServiceCollection.json#/definitions/StorageServiceCollection",
+                    "description": "A link to a collection of all storage service entities.",
+                    "longDescription": "The referenced collection shall contain references to all StorageService instances.",
+                    "readonly": true
+                },
+                "StorageSystems": {
+                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageSystemCollection.json#/definitions/StorageSystemCollection",
+                    "description": "This is a link to a collection of storage systems.",
+                    "longDescription": "The referenced collection shall contain computer systems that act as storage servers.  The HostingRoles attribute of each such computer system shall have an entry for StorageServer.",
+                    "readonly": true
+                },
+                "Systems": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystemCollection.json#/definitions/ComputerSystemCollection",
+                    "description": "This is a link to a collection of Systems.",
+                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Systems schema.",
+                    "readonly": true
+                },
+                "Tasks": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/TaskService.json#/definitions/TaskService",
+                    "description": "This is a link to the Task Service.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the TaskService schema.",
+                    "readonly": true
+                },
+                "UUID": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Unique identifier for a service instance. When SSDP is used, this value should be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery.",
+                    "longDescription": "The value of this string shall represent the id of the Redfish service instance.  The format of this string shall be a 32-byte value in the form 8-4-4-4-12.  If SSDP is used, this value shall be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery. RFC4122 describes methods that can be used to create a UUID value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.",
+                    "readonly": true
+                },
+                "UpdateService": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/UpdateService.json#/definitions/UpdateService",
+                    "description": "This is a link to the UpdateService.",
+                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the UpdateService schema.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Links",
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#ServiceRoot.v1_3_1.ServiceRoot"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/ServiceRoot/index.json b/static/redfish/v1/JsonSchemas/ServiceRoot/index.json
index 67a501e..96fc209 100644
--- a/static/redfish/v1/JsonSchemas/ServiceRoot/index.json
+++ b/static/redfish/v1/JsonSchemas/ServiceRoot/index.json
@@ -1,317 +1,21 @@
 {
-    "$ref": "#/definitions/ServiceRoot",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Expand": {
-            "additionalProperties": false,
-            "description": "Contains information about the use of $expand in the service.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ExpandAll": {
-                    "description": "This indicates whether the expand support of asterisk (expand all entries) is supported.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of asterisk (expand all entries) as a value for the expand query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "Levels": {
-                    "description": "This indicates whether the expand support of the $levels qualifier is supported by the service.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of $levels as a value for the expand query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "Links": {
-                    "description": "This indicates whether the expand support of tilde (expand only entries in the Links section) is supported.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of tilde (expand only entries in the Links section) as a value for the expand query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "MaxLevels": {
-                    "description": "This indicates the maximum number value of the $levels qualifier in expand operations.",
-                    "longDescription": "The value of this property shall be the maximum value of the $levels qualifier supported by the service and shall only be included if the value of the Levels property is true.",
-                    "maximum": 6,
-                    "minimum": 1,
-                    "readonly": true,
-                    "type": "number"
-                },
-                "NoLinks": {
-                    "description": "This indicates whether the expand support of period (expand only entries not in the Links section) is supported.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of period (expand only entries not in the Links section) as a value for the expand query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "Sessions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection",
-                    "description": "Link to a collection of Sessions.",
-                    "longDescription": "This property shall contain the link to a collection of Sessions.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Sessions"
-            ],
-            "type": "object"
-        },
-        "ProtocolFeaturesSupported": {
-            "additionalProperties": false,
-            "description": "Contains information about protocol features supported by the service.",
-            "longDescription": "This type contains information about protocol features supported by the service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ExpandQuery": {
-                    "$ref": "#/definitions/Expand",
-                    "description": "Contains information about the use of $expand in the service.",
-                    "longDescription": "This type, as described by the Redfish Specification, shall contain information about the support of the $expand query parameter by the service."
-                },
-                "FilterQuery": {
-                    "description": "This indicates whether the filter query parameter is supported.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of th filter query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "SelectQuery": {
-                    "description": "This indicates whether the select query parameter is supported.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service supports the use of th select query parameter as described by the specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                }
-            },
-            "type": "object"
-        },
-        "ServiceRoot": {
-            "additionalProperties": false,
-            "description": "This object represents the root Redfish service.",
-            "longDescription": "This object represents the root Redfish service.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "AccountService": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/AccountService.json#/definitions/AccountService",
-                    "description": "This is a link to the Account Service.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the AccountService schema.",
-                    "readonly": true
-                },
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ChassisCollection.json#/definitions/ChassisCollection",
-                    "description": "This is a link to a collection of Chassis.",
-                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Chassis schema.",
-                    "readonly": true
-                },
-                "CompositionService": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/CompositionService.json#/definitions/CompositionService",
-                    "description": "This is a link to the CompositionService.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the CompositionService schema.",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EventService": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/EventService.json#/definitions/EventService",
-                    "description": "This is a link to the EventService.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the EventService schema.",
-                    "readonly": true
-                },
-                "Fabrics": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/FabricCollection.json#/definitions/FabricCollection",
-                    "description": "A link to a collection of all fabric entities.",
-                    "longDescription": "The referenced collection shall contain references to all Fabric instances.",
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "JsonSchemas": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFileCollection.json#/definitions/JsonSchemaFileCollection",
-                    "description": "This is a link to a collection of Json-Schema files.",
-                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the SchemaFile schema where the files are Json-Schema files.",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Managers": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerCollection.json#/definitions/ManagerCollection",
-                    "description": "This is a link to a collection of Managers.",
-                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Managers schema.",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Product": {
-                    "description": "The product associated with this Redfish service.",
-                    "longDescription": "The value of this string shall include the name of the product represented by this Redfish service.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "ProtocolFeaturesSupported": {
-                    "$ref": "#/definitions/ProtocolFeaturesSupported",
-                    "description": "Contains information about protocol features supported by the service.",
-                    "longDescription": "This type contains information about protocol features supported by the service."
-                },
-                "RedfishVersion": {
-                    "description": "The version of the Redfish service.",
-                    "longDescription": "The value of this string shall represent the version of the Redfish service.  The format of this string shall be of the format majorversion.minorversion.errata in compliance with Protocol Version section of the Redfish specification.",
-                    "pattern": "^\\d+\\.\\d+\\.\\d+$",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Registries": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/MessageRegistryFileCollection.json#/definitions/MessageRegistryFileCollection",
-                    "description": "This is a link to a collection of Registries.",
-                    "longDescription": "This object shall contain a reference to Message Registry.",
-                    "readonly": true
-                },
-                "SessionService": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionService.json#/definitions/SessionService",
-                    "description": "This is a link to the Sessions Service.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the SessionService schema.",
-                    "readonly": true
-                },
-                "StorageServices": {
-                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageServiceCollection.json#/definitions/StorageServiceCollection",
-                    "description": "A link to a collection of all storage service entities.",
-                    "longDescription": "The referenced collection shall contain references to all StorageService instances.",
-                    "readonly": true
-                },
-                "StorageSystems": {
-                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageSystemCollection.json#/definitions/StorageSystemCollection",
-                    "description": "This is a link to a collection of storage systems.",
-                    "longDescription": "The referenced collection shall contain computer systems that act as storage servers.  The HostingRoles attribute of each such computer system shall have an entry for StorageServer.",
-                    "readonly": true
-                },
-                "Systems": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystemCollection.json#/definitions/ComputerSystemCollection",
-                    "description": "This is a link to a collection of Systems.",
-                    "longDescription": "This object shall only contain a reference to a collection of resources that comply to the Systems schema.",
-                    "readonly": true
-                },
-                "Tasks": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/TaskService.json#/definitions/TaskService",
-                    "description": "This is a link to the Task Service.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the TaskService schema.",
-                    "readonly": true
-                },
-                "UUID": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Unique identifier for a service instance. When SSDP is used, this value should be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery.",
-                    "longDescription": "The value of this string shall represent the id of the Redfish service instance.  The format of this string shall be a 32-byte value in the form 8-4-4-4-12.  If SSDP is used, this value shall be an exact match of the UUID value returned in a 200OK from an SSDP M-SEARCH request during discovery. RFC4122 describes methods that can be used to create a UUID value. The value should be considered to be opaque. Client software should only treat the overall value as a universally unique identifier and should not interpret any sub-fields within the UUID.",
-                    "readonly": true
-                },
-                "UpdateService": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/UpdateService.json#/definitions/UpdateService",
-                    "description": "This is a link to the UpdateService.",
-                    "longDescription": "The classes structure shall only contain a reference to a resource that complies to the UpdateService schema.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Links",
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/ServiceRoot",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "ServiceRoot Schema File",
+    "Schema": "#ServiceRoot.ServiceRoot",
+    "Description": "ServiceRoot Schema File Location",
+    "Id": "ServiceRoot",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/ServiceRoot.json",
+            "Uri": "/redfish/v1/JSONSchemas/ServiceRoot/ServiceRoot.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#ServiceRoot.v1_3_1.ServiceRoot"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Session/Session.json b/static/redfish/v1/JsonSchemas/Session/Session.json
new file mode 100644
index 0000000..cdc5942
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Session/Session.json
@@ -0,0 +1,125 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#Session.v1_1_0.Session",
+    "$ref": "#/definitions/Session",
+    "definitions": {
+        "Session": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "UserName": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The UserName for the account for this session.",
+                    "longDescription": "The value of this property shall be the UserName that matches a registered account identified by a ManagerAccount resource registered with the Account Service."
+                },
+                "Password": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "This property is used in a POST to specify a password when creating a new session.  This property is null on a GET.",
+                    "longDescription": "The value of this property shall be the password for this session.  The value shall be null for GET requests."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "UserName",
+                "Password"
+            ],
+            "description": "The Session resource describes a single connection (session) between a client and a Redfish service instance.",
+            "longDescription": "This resource shall be used to represent a session for a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/Session/index.json b/static/redfish/v1/JsonSchemas/Session/index.json
index cdc5942..5c4a782 100644
--- a/static/redfish/v1/JsonSchemas/Session/index.json
+++ b/static/redfish/v1/JsonSchemas/Session/index.json
@@ -1,125 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#Session.v1_1_0.Session",
-    "$ref": "#/definitions/Session",
-    "definitions": {
-        "Session": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "UserName": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The UserName for the account for this session.",
-                    "longDescription": "The value of this property shall be the UserName that matches a registered account identified by a ManagerAccount resource registered with the Account Service."
-                },
-                "Password": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "This property is used in a POST to specify a password when creating a new session.  This property is null on a GET.",
-                    "longDescription": "The value of this property shall be the password for this session.  The value shall be null for GET requests."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "UserName",
-                "Password"
-            ],
-            "description": "The Session resource describes a single connection (session) between a client and a Redfish service instance.",
-            "longDescription": "This resource shall be used to represent a session for a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Session",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Session Schema File",
+    "Schema": "#Session.Session",
+    "Description": "Session Schema File Location",
+    "Id": "Session",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Session.json",
+            "Uri": "/redfish/v1/JSONSchemas/Session/Session.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SessionService/SessionService.json b/static/redfish/v1/JsonSchemas/SessionService/SessionService.json
new file mode 100644
index 0000000..c0b20dc
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/SessionService/SessionService.json
@@ -0,0 +1,133 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#SessionService.v1_1_3.SessionService",
+    "$ref": "#/definitions/SessionService",
+    "definitions": {
+        "SessionService": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "ServiceEnabled": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "This indicates whether this service is enabled.  If set to false, the Session Service is disabled and any attempt to access it will fail.  This means new sessions cannot be created, old sessions cannot be deleted though established sessions may continue operating.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.  This means new sessions cannot be created, old sessions cannot be deleted though established sessions may continue operating."
+                },
+                "SessionTimeout": {
+                    "type": "number",
+                    "minimum": 30,
+                    "maximum": 86400,
+                    "units": "s",
+                    "readonly": false,
+                    "description": "This is the number of seconds of inactivity that a session may have before the session service closes the session due to inactivity.",
+                    "longDescription": "This property shall reference the threshold of time in seconds between requests on a specific session at which point the session service shall close the session due to inactivity. The session service shall support any value between the Validation.Minimum and Validation.Maximum."
+                },
+                "Sessions": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection",
+                    "readonly": true,
+                    "description": "Link to a collection of Sessions.",
+                    "longDescription": "This property shall contain the link to a collection of Sessions."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": [
+                                "object",
+                                "null"
+                            ],
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "longDescription": "This type shall contain the available actions for this resource.",
+                    "description": "The Actions object contains the available custom actions on this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "This is the schema definition for the Session Service.  It represents the properties for the service itself and has links to the actual list of sessions.",
+            "longDescription": "This resource shall be used to represent the Session Service Properties for a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/SessionService/index.json b/static/redfish/v1/JsonSchemas/SessionService/index.json
index c0b20dc..dc793d8 100644
--- a/static/redfish/v1/JsonSchemas/SessionService/index.json
+++ b/static/redfish/v1/JsonSchemas/SessionService/index.json
@@ -1,133 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#SessionService.v1_1_3.SessionService",
-    "$ref": "#/definitions/SessionService",
-    "definitions": {
-        "SessionService": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "ServiceEnabled": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "This indicates whether this service is enabled.  If set to false, the Session Service is disabled and any attempt to access it will fail.  This means new sessions cannot be created, old sessions cannot be deleted though established sessions may continue operating.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.  This means new sessions cannot be created, old sessions cannot be deleted though established sessions may continue operating."
-                },
-                "SessionTimeout": {
-                    "type": "number",
-                    "minimum": 30,
-                    "maximum": 86400,
-                    "units": "s",
-                    "readonly": false,
-                    "description": "This is the number of seconds of inactivity that a session may have before the session service closes the session due to inactivity.",
-                    "longDescription": "This property shall reference the threshold of time in seconds between requests on a specific session at which point the session service shall close the session due to inactivity. The session service shall support any value between the Validation.Minimum and Validation.Maximum."
-                },
-                "Sessions": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/SessionCollection.json#/definitions/SessionCollection",
-                    "readonly": true,
-                    "description": "Link to a collection of Sessions.",
-                    "longDescription": "This property shall contain the link to a collection of Sessions."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": [
-                                "object",
-                                "null"
-                            ],
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "longDescription": "This type shall contain the available actions for this resource.",
-                    "description": "The Actions object contains the available custom actions on this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "This is the schema definition for the Session Service.  It represents the properties for the service itself and has links to the actual list of sessions.",
-            "longDescription": "This resource shall be used to represent the Session Service Properties for a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/SessionService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "SessionService Schema File",
+    "Schema": "#SessionService.SessionService",
+    "Description": "SessionService Schema File Location",
+    "Id": "SessionService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/SessionService.json",
+            "Uri": "/redfish/v1/JSONSchemas/SessionService/SessionService.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Settings/Settings.json b/static/redfish/v1/JsonSchemas/Settings/Settings.json
new file mode 100644
index 0000000..e02e538
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Settings/Settings.json
@@ -0,0 +1,255 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "ApplyTime": {
+            "enum": [
+                "Immediate",
+                "OnReset",
+                "AtMaintenanceWindowStart",
+                "InMaintenanceWindowOnReset"
+            ],
+            "enumDescriptions": {
+                "AtMaintenanceWindowStart": "Apply during a maintenance window as specified by an administrator.",
+                "Immediate": "Apply immediately.",
+                "InMaintenanceWindowOnReset": "Apply after a reset but within maintenance window as specified by an adminstrator.",
+                "OnReset": "Apply on a reset."
+            },
+            "enumLongDescriptions": {
+                "AtMaintenanceWindowStart": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties.  A service may perform resets during this maintenance window.",
+                "Immediate": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied immediately.",
+                "InMaintenanceWindowOnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.",
+                "OnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied when the system or service is reset."
+            },
+            "type": "string"
+        },
+        "MaintenanceWindow": {
+            "additionalProperties": false,
+            "description": "This object indicates if a given resource has a maintenance window assignment for applying settings or operations.",
+            "longDescription": "This object shall indicate if a given resource has a maintenance window assignment for applying settings or operations.  Other resources may reference this object in order to convey a common control surface for the configuration of the maintenance window.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MaintenanceWindowDurationInSeconds": {
+                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
+                    "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": "number",
+                    "units": "s"
+                },
+                "MaintenanceWindowStartTime": {
+                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the requested settings or operation as part of a maintenance window.",
+                    "readonly": false,
+                    "type": "string"
+                }
+            },
+            "required": [
+                "MaintenanceWindowStartTime",
+                "MaintenanceWindowDurationInSeconds"
+            ],
+            "type": "object"
+        },
+        "OperationApplyTime": {
+            "enum": [
+                "Immediate",
+                "OnReset",
+                "AtMaintenanceWindowStart",
+                "InMaintenanceWindowOnReset"
+            ],
+            "enumDescriptions": {
+                "AtMaintenanceWindowStart": "Apply the requested operation during a maintenance window as specified by an administrator.",
+                "Immediate": "Apply the requested operation immediately.",
+                "InMaintenanceWindowOnReset": "Apply the requested operation after a reset but within maintenance window as specified by an adminstrator.",
+                "OnReset": "Apply the requested operation on a reset."
+            },
+            "enumLongDescriptions": {
+                "AtMaintenanceWindowStart": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties.  A service may perform resets during this maintenance window.",
+                "Immediate": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied immediately.",
+                "InMaintenanceWindowOnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.",
+                "OnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied when the system or service is reset."
+            },
+            "type": "string"
+        },
+        "OperationApplyTimeSupport": {
+            "additionalProperties": false,
+            "description": "This object indicates if a client is allowed to request for a specific apply time of a Create, Delete, or Action operation of a given resource.",
+            "longDescription": "This object shall specify the support a service has for a client to request a specific apply time of a Create, Delete, or Action operation of a given resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "MaintenanceWindowDurationInSeconds": {
+                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
+                    "longDescription": "The value of this property shall be the same as the MaintenanceWindowDurationInSeconds property found in the MaintenanceWindow structure on the MaintenanceWindowResource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": "number",
+                    "units": "s"
+                },
+                "MaintenanceWindowResource": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
+                    "description": "The value of this property is used to indicate the location of the maintenance window settings.",
+                    "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "readonly": true
+                },
+                "MaintenanceWindowStartTime": {
+                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall be the same as the MaintenanceWindowStartTime property found in the MaintenanceWindow structure on the MaintenanceWindowResource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "SupportedValues": {
+                    "description": "This property indicates the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/OperationApplyTime"
+                    },
+                    "longDescription": "The value of this property shall indicate the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.",
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "required": [
+                "SupportedValues"
+            ],
+            "type": "object"
+        },
+        "PreferredApplyTime": {
+            "additionalProperties": false,
+            "description": "This object indicates when the future configuration (i.e. Settings resource) should be applied.",
+            "longDescription": "This object shall be specified by client in a request to indicate its preference on when to apply the values in this Settings resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ApplyTime": {
+                    "$ref": "#/definitions/ApplyTime",
+                    "description": "This property indicates when the future configuration (i.e. Settings resource) should be applied.",
+                    "longDescription": "The value of this property shall indicate the preference on to when to apply the values in this Settings resource.",
+                    "readonly": false
+                },
+                "MaintenanceWindowDurationInSeconds": {
+                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
+                    "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.  This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "minimum": 0,
+                    "readonly": false,
+                    "type": "number",
+                    "units": "s"
+                },
+                "MaintenanceWindowStartTime": {
+                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the future configuration as part of a maintenance window.  This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "readonly": false,
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "Settings": {
+            "additionalProperties": false,
+            "description": "This type describes the settings of a resouce.",
+            "longDescription": "This type shall describe any attributes of a resouce.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ETag": {
+                    "description": "The ETag of the resource to which the settings were applied, after the application.",
+                    "longDescription": "The value of this property shall be the ETag of the resource to which the settings were applied, after the application.  This is here so that the client can check it against the ETag of the current resource to see if any other changes have also happened to the resource.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MaintenanceWindowResource": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
+                    "description": "The value of this property is used to indicate the location of the maintenance window settings.",
+                    "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource.  This property should be supported if the SupportedApplyTimes property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
+                    "readonly": true
+                },
+                "Messages": {
+                    "description": "This is an array of messages associated with the task.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
+                    },
+                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
+                    "type": "array"
+                },
+                "SettingsObject": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
+                    "description": "Reference to the resource the client may PUT/PATCH to in order to change this resource.",
+                    "longDescription": "The value of this property shall be the URI of the resource to which a client must do a PUT or PATCH in order to modify this resource.",
+                    "readonly": true
+                },
+                "SupportedApplyTimes": {
+                    "description": "This property indicates when a Settings resource can be applied.",
+                    "items": {
+                        "$ref": "#/definitions/ApplyTime"
+                    },
+                    "longDescription": "A service shall advertise its applytime capabilities using this property as to when a Setting resource can be applied.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Time": {
+                    "description": "Indicates the time the settings were applied.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time that the settings object was applied to the resource.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Settings.v1_2_0"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Settings/index.json b/static/redfish/v1/JsonSchemas/Settings/index.json
index e02e538..4d4a60e 100644
--- a/static/redfish/v1/JsonSchemas/Settings/index.json
+++ b/static/redfish/v1/JsonSchemas/Settings/index.json
@@ -1,255 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "ApplyTime": {
-            "enum": [
-                "Immediate",
-                "OnReset",
-                "AtMaintenanceWindowStart",
-                "InMaintenanceWindowOnReset"
-            ],
-            "enumDescriptions": {
-                "AtMaintenanceWindowStart": "Apply during a maintenance window as specified by an administrator.",
-                "Immediate": "Apply immediately.",
-                "InMaintenanceWindowOnReset": "Apply after a reset but within maintenance window as specified by an adminstrator.",
-                "OnReset": "Apply on a reset."
-            },
-            "enumLongDescriptions": {
-                "AtMaintenanceWindowStart": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties.  A service may perform resets during this maintenance window.",
-                "Immediate": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied immediately.",
-                "InMaintenanceWindowOnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.",
-                "OnReset": "This ApplyTime value shall be used to indicate the values within the Settings resource are applied when the system or service is reset."
-            },
-            "type": "string"
-        },
-        "MaintenanceWindow": {
-            "additionalProperties": false,
-            "description": "This object indicates if a given resource has a maintenance window assignment for applying settings or operations.",
-            "longDescription": "This object shall indicate if a given resource has a maintenance window assignment for applying settings or operations.  Other resources may reference this object in order to convey a common control surface for the configuration of the maintenance window.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MaintenanceWindowDurationInSeconds": {
-                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
-                    "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": "number",
-                    "units": "s"
-                },
-                "MaintenanceWindowStartTime": {
-                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the requested settings or operation as part of a maintenance window.",
-                    "readonly": false,
-                    "type": "string"
-                }
-            },
-            "required": [
-                "MaintenanceWindowStartTime",
-                "MaintenanceWindowDurationInSeconds"
-            ],
-            "type": "object"
-        },
-        "OperationApplyTime": {
-            "enum": [
-                "Immediate",
-                "OnReset",
-                "AtMaintenanceWindowStart",
-                "InMaintenanceWindowOnReset"
-            ],
-            "enumDescriptions": {
-                "AtMaintenanceWindowStart": "Apply the requested operation during a maintenance window as specified by an administrator.",
-                "Immediate": "Apply the requested operation immediately.",
-                "InMaintenanceWindowOnReset": "Apply the requested operation after a reset but within maintenance window as specified by an adminstrator.",
-                "OnReset": "Apply the requested operation on a reset."
-            },
-            "enumLongDescriptions": {
-                "AtMaintenanceWindowStart": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties.  A service may perform resets during this maintenance window.",
-                "Immediate": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied immediately.",
-                "InMaintenanceWindowOnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied during the maintenance window specified by the MaintenanceWindowStartTime and MaintenanceWindowDurationInSeconds properties, and if a reset occurs within the maintenance window.",
-                "OnReset": "This OperationApplyTime value shall be used to indicate the requested Create, Delete, or Action operation is applied when the system or service is reset."
-            },
-            "type": "string"
-        },
-        "OperationApplyTimeSupport": {
-            "additionalProperties": false,
-            "description": "This object indicates if a client is allowed to request for a specific apply time of a Create, Delete, or Action operation of a given resource.",
-            "longDescription": "This object shall specify the support a service has for a client to request a specific apply time of a Create, Delete, or Action operation of a given resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "MaintenanceWindowDurationInSeconds": {
-                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
-                    "longDescription": "The value of this property shall be the same as the MaintenanceWindowDurationInSeconds property found in the MaintenanceWindow structure on the MaintenanceWindowResource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": "number",
-                    "units": "s"
-                },
-                "MaintenanceWindowResource": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
-                    "description": "The value of this property is used to indicate the location of the maintenance window settings.",
-                    "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "readonly": true
-                },
-                "MaintenanceWindowStartTime": {
-                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall be the same as the MaintenanceWindowStartTime property found in the MaintenanceWindow structure on the MaintenanceWindowResource.  This property shall be required if the SupportedValues property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "SupportedValues": {
-                    "description": "This property indicates the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Settings.json#/definitions/OperationApplyTime"
-                    },
-                    "longDescription": "The value of this property shall indicate the types of apply times the client is allowed request when performing a Create, Delete, or Action operation.",
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "required": [
-                "SupportedValues"
-            ],
-            "type": "object"
-        },
-        "PreferredApplyTime": {
-            "additionalProperties": false,
-            "description": "This object indicates when the future configuration (i.e. Settings resource) should be applied.",
-            "longDescription": "This object shall be specified by client in a request to indicate its preference on when to apply the values in this Settings resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ApplyTime": {
-                    "$ref": "#/definitions/ApplyTime",
-                    "description": "This property indicates when the future configuration (i.e. Settings resource) should be applied.",
-                    "longDescription": "The value of this property shall indicate the preference on to when to apply the values in this Settings resource.",
-                    "readonly": false
-                },
-                "MaintenanceWindowDurationInSeconds": {
-                    "description": "The value of this property as specified by client indicates the expiry time of maintenance window in seconds.",
-                    "longDescription": "The value of this property shall indicate the end of the maintenance window as the number of seconds after the time specified by the MaintenanceWindowStartTime property.  This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "minimum": 0,
-                    "readonly": false,
-                    "type": "number",
-                    "units": "s"
-                },
-                "MaintenanceWindowStartTime": {
-                    "description": "The value of this property as specified by client to indicate the start time of a maintenance window.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the date and time as to when the service is allowed to start applying the future configuration as part of a maintenance window.  This property shall be required if the ApplyTime property is specified as AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "readonly": false,
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "Settings": {
-            "additionalProperties": false,
-            "description": "This type describes the settings of a resouce.",
-            "longDescription": "This type shall describe any attributes of a resouce.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "ETag": {
-                    "description": "The ETag of the resource to which the settings were applied, after the application.",
-                    "longDescription": "The value of this property shall be the ETag of the resource to which the settings were applied, after the application.  This is here so that the client can check it against the ETag of the current resource to see if any other changes have also happened to the resource.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MaintenanceWindowResource": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
-                    "description": "The value of this property is used to indicate the location of the maintenance window settings.",
-                    "longDescription": "The value of this property shall be a reference to a resource that contains the @Redfish.MaintenanceWindow property which governs this resource.  This property should be supported if the SupportedApplyTimes property contains AtMaintenanceWindowStart or InMaintenanceWindowOnReset.",
-                    "readonly": true
-                },
-                "Messages": {
-                    "description": "This is an array of messages associated with the task.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
-                    },
-                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
-                    "type": "array"
-                },
-                "SettingsObject": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef",
-                    "description": "Reference to the resource the client may PUT/PATCH to in order to change this resource.",
-                    "longDescription": "The value of this property shall be the URI of the resource to which a client must do a PUT or PATCH in order to modify this resource.",
-                    "readonly": true
-                },
-                "SupportedApplyTimes": {
-                    "description": "This property indicates when a Settings resource can be applied.",
-                    "items": {
-                        "$ref": "#/definitions/ApplyTime"
-                    },
-                    "longDescription": "A service shall advertise its applytime capabilities using this property as to when a Setting resource can be applied.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Time": {
-                    "description": "Indicates the time the settings were applied.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time that the settings object was applied to the resource.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Settings",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Settings Schema File",
+    "Schema": "#Settings.Settings",
+    "Description": "Settings Schema File Location",
+    "Id": "Settings",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Settings.json",
+            "Uri": "/redfish/v1/JSONSchemas/Settings/Settings.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Settings.v1_2_0"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json b/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json
new file mode 100644
index 0000000..5a9c302
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/SimpleStorage/SimpleStorage.json
@@ -0,0 +1,219 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#SimpleStorage.v1_2_0.SimpleStorage",
+    "$ref": "#/definitions/SimpleStorage",
+    "definitions": {
+        "Device": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
+                },
+                "Name": {
+                    "type": "string",
+                    "readonly": true,
+                    "description": "The name of the resource or array element.",
+                    "longDescription": "This object represents the Name property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Manufacturer": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The name of the manufacturer of this device.",
+                    "longDescription": "This property shall indicate the name of the manufacturer of this storage device."
+                },
+                "Model": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The product model number of this device.",
+                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this storage device."
+                },
+                "CapacityBytes": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "minimum": 0,
+                    "units": "By",
+                    "readonly": true,
+                    "description": "The size of the storage device.",
+                    "longDescription": "The value of this property shall represent the size (in bytes) of the Storage Device."
+                }
+            },
+            "required": [
+                "Name"
+            ],
+            "description": "A storage device such as a disk drive or optical media device.",
+            "longDescription": "This type shall describe a storage device visible to SimpleStorage."
+        },
+        "SimpleStorage": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "UefiDevicePath": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The UEFI device path used to access this storage controller.",
+                    "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific storage controller."
+                },
+                "Devices": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/Device"
+                    },
+                    "description": "The storage devices associated with this resource.",
+                    "longDescription": "This property shall contain a list of storage devices associated with this resource."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Links": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                            "description": "Oem extension object.",
+                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                        },
+                        "Chassis": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                            "readonly": true,
+                            "description": "A reference to the Chassis which contains this Simple Storage.",
+                            "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Simple Storage."
+                        }
+                    },
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "This is the schema definition for the Simple Storage resource.  It represents the properties of a storage controller and its directly-attached devices."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/SimpleStorage/index.json b/static/redfish/v1/JsonSchemas/SimpleStorage/index.json
index 5a9c302..043898b 100644
--- a/static/redfish/v1/JsonSchemas/SimpleStorage/index.json
+++ b/static/redfish/v1/JsonSchemas/SimpleStorage/index.json
@@ -1,219 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#SimpleStorage.v1_2_0.SimpleStorage",
-    "$ref": "#/definitions/SimpleStorage",
-    "definitions": {
-        "Device": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
-                },
-                "Name": {
-                    "type": "string",
-                    "readonly": true,
-                    "description": "The name of the resource or array element.",
-                    "longDescription": "This object represents the Name property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Manufacturer": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The name of the manufacturer of this device.",
-                    "longDescription": "This property shall indicate the name of the manufacturer of this storage device."
-                },
-                "Model": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The product model number of this device.",
-                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this storage device."
-                },
-                "CapacityBytes": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "minimum": 0,
-                    "units": "By",
-                    "readonly": true,
-                    "description": "The size of the storage device.",
-                    "longDescription": "The value of this property shall represent the size (in bytes) of the Storage Device."
-                }
-            },
-            "required": [
-                "Name"
-            ],
-            "description": "A storage device such as a disk drive or optical media device.",
-            "longDescription": "This type shall describe a storage device visible to SimpleStorage."
-        },
-        "SimpleStorage": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "UefiDevicePath": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The UEFI device path used to access this storage controller.",
-                    "longDescription": "This property shall contain the UEFI device path used to identify and locate the specific storage controller."
-                },
-                "Devices": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/Device"
-                    },
-                    "description": "The storage devices associated with this resource.",
-                    "longDescription": "This property shall contain a list of storage devices associated with this resource."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Links": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                            "description": "Oem extension object.",
-                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                        },
-                        "Chassis": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                            "readonly": true,
-                            "description": "A reference to the Chassis which contains this Simple Storage.",
-                            "longDescription": "The value of this property shall be a reference to a resource of type Chassis that represent the physical container associated with this Simple Storage."
-                        }
-                    },
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "This is the schema definition for the Simple Storage resource.  It represents the properties of a storage controller and its directly-attached devices."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/SimpleStorage",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "SimpleStorage Schema File",
+    "Schema": "#SimpleStorage.SimpleStorage",
+    "Description": "SimpleStorage Schema File Location",
+    "Id": "SimpleStorage",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/SimpleStorage.json",
+            "Uri": "/redfish/v1/JSONSchemas/SimpleStorage/SimpleStorage.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json b/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json
new file mode 100644
index 0000000..812eb64
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json
@@ -0,0 +1,204 @@
+{
+    "$ref": "#/definitions/SoftwareInventory",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "SoftwareInventory": {
+            "additionalProperties": false,
+            "description": "This schema defines an inventory of software components.",
+            "longDescription": "This resource shall be used to represent a single software component managed by this Redfish Service.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The Actions object contains the available custom actions on this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LowestSupportedVersion": {
+                    "description": "A string representing the lowest supported version of this software.",
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Manufacturer": {
+                    "description": "A string representing the manufacturer/producer of this software.",
+                    "longDescription": "The value of this property shall be a string representing the name of the manufacturer/producer of this software.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "RelatedItem": {
+                    "description": "The ID(s) of the resources associated with this software inventory item.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
+                    },
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
+                },
+                "ReleaseDate": {
+                    "description": "Release date of this software.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall be the date of release or production for this software.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SoftwareId": {
+                    "description": "A string representing the implementation-specific ID for identifying this software.",
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                },
+                "UefiDevicePaths": {
+                    "description": "A list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item.",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Updateable": {
+                    "description": "Indicates whether this software can be updated by the update service.",
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Version": {
+                    "description": "A string representing the version of this software.",
+                    "longDescription": "The value of this property shall be a string representing the version of this software.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#SoftwareInventory.v1_2_0.SoftwareInventory"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/SoftwareInventory/index.json b/static/redfish/v1/JsonSchemas/SoftwareInventory/index.json
index 812eb64..0f3b565 100644
--- a/static/redfish/v1/JsonSchemas/SoftwareInventory/index.json
+++ b/static/redfish/v1/JsonSchemas/SoftwareInventory/index.json
@@ -1,204 +1,21 @@
 {
-    "$ref": "#/definitions/SoftwareInventory",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "SoftwareInventory": {
-            "additionalProperties": false,
-            "description": "This schema defines an inventory of software components.",
-            "longDescription": "This resource shall be used to represent a single software component managed by this Redfish Service.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The Actions object contains the available custom actions on this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LowestSupportedVersion": {
-                    "description": "A string representing the lowest supported version of this software.",
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Manufacturer": {
-                    "description": "A string representing the manufacturer/producer of this software.",
-                    "longDescription": "The value of this property shall be a string representing the name of the manufacturer/producer of this software.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "RelatedItem": {
-                    "description": "The ID(s) of the resources associated with this software inventory item.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/idRef"
-                    },
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
-                },
-                "ReleaseDate": {
-                    "description": "Release date of this software.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall be the date of release or production for this software.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SoftwareId": {
-                    "description": "A string representing the implementation-specific ID for identifying this software.",
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                },
-                "UefiDevicePaths": {
-                    "description": "A list of strings representing the UEFI Device Path(s) of the component(s) associated with this software inventory item.",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Updateable": {
-                    "description": "Indicates whether this software can be updated by the update service.",
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Version": {
-                    "description": "A string representing the version of this software.",
-                    "longDescription": "The value of this property shall be a string representing the version of this software.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/SoftwareInventory",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "SoftwareInventory Schema File",
+    "Schema": "#SoftwareInventory.SoftwareInventory",
+    "Description": "SoftwareInventory Schema File Location",
+    "Id": "SoftwareInventory",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json",
+            "Uri": "/redfish/v1/JSONSchemas/SoftwareInventory/SoftwareInventory.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#SoftwareInventory.v1_2_0.SoftwareInventory"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Storage/Storage.json b/static/redfish/v1/JsonSchemas/Storage/Storage.json
new file mode 100644
index 0000000..9d32548
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Storage/Storage.json
@@ -0,0 +1,567 @@
+{
+    "$ref": "#/definitions/Storage",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Storage.SetEncryptionKey": {
+                    "$ref": "#/definitions/SetEncryptionKey"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Enclosures": {
+                    "description": "An array of references to the chassis to which this storage subsystem is attached.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+                    },
+                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical containers attached to this resource.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Enclosures@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Protocol": {
+            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
+            "enum": [
+                "PCIe",
+                "AHCI",
+                "UHCI",
+                "SAS",
+                "SATA",
+                "USB",
+                "NVMe",
+                "FC",
+                "iSCSI",
+                "FCoE",
+                "FCP",
+                "FICON",
+                "NVMeOverFabrics",
+                "SMB",
+                "NFSv3",
+                "NFSv4",
+                "HTTP",
+                "HTTPS",
+                "FTP",
+                "SFTP"
+            ],
+            "enumDescriptions": {
+                "AHCI": "Advanced Host Controller Interface.",
+                "FC": "Fibre Channel.",
+                "FCP": "Fibre Channel Protocol for SCSI.",
+                "FCoE": "Fibre Channel over Ethernet.",
+                "FICON": "FIbre CONnection (FICON).",
+                "FTP": "File Transfer Protocol.",
+                "HTTP": "Hypertext Transport Protocol.",
+                "HTTPS": "Secure Hypertext Transport Protocol.",
+                "NFSv3": "Network File System version 3.",
+                "NFSv4": "Network File System version 4.",
+                "NVMe": "Non-Volatile Memory Express.",
+                "NVMeOverFabrics": "NVMe over Fabrics.",
+                "PCIe": "PCI Express (Vendor Proprietary).",
+                "SAS": "Serial Attached SCSI.",
+                "SATA": "Serial AT Attachment.",
+                "SFTP": "Secure File Transfer Protocol.",
+                "SMB": "Server Message Block (aka CIFS Common Internet File System).",
+                "UHCI": "Universal Host Controller Interface.",
+                "USB": "Universal Serial Bus.",
+                "iSCSI": "Internet SCSI."
+            },
+            "enumLongDescriptions": {
+                "AHCI": "This value shall mean that this device conforms to the Intel Advanced Host Controller Interface Specification.",
+                "FC": "This value shall mean that this device conforms to the T11 Fibre Channel Physical and Signaling Interface Specification.",
+                "FCP": "This enumeration literal shall indicate the INCITS 481: Information technology - Fibre Channel Protocol for SCSI.  The Fibre Channel SCSI Protocol.",
+                "FCoE": "This value shall mean that this device conforms to the T11 FC-BB-5 Specification.",
+                "FICON": "This enumeration literal shall indicate the (ANSI FC-SB-3 Single-Byte Command Code Sets-3 Mapping Protocol for the Fibre Channel(FC) protocol.  FICON (FIbre CONnection) is the IBM proprietary name for this protocol.",
+                "FTP": "This value shall mean that this device conforms to the File Transfer protocol as defined by RFC 114.",
+                "HTTP": "This value shall mean that this device conforms to the Hypertext Transfer protocol as defined by RFC 2068 or RFC 2616.",
+                "HTTPS": "This value shall mean that this device conforms to the Hypertext Transfer protocol as defined by RFC 2068 or RFC 2616 utilizing Transport Layer Security as specified by RFC 5246 or RFC 6176.",
+                "NFSv3": "This value shall mean that this device conforms to the Network File System protocol as defined by RFC 1813.",
+                "NFSv4": "This value shall mean that this device conforms to the Network File System protocol as defined by RFC 3010 or RFC 5661.",
+                "NVMe": "This value shall mean that this device conforms to the Non-Volatile Memory Host Controller Interface Specification Specification.",
+                "NVMeOverFabrics": "This value shall mean that this device conforms to the NVM Express over Fabrics Specification.",
+                "PCIe": "This value shall mean that this device conforms to the PCI-SIG PCI Express Base Specification only beyond that is uses some vendor proprietary mechanism to communicate.",
+                "SAS": "This value shall mean that this device conforms to the T10 SAS Protocol Layer Specification.",
+                "SATA": "This value shall mean that this device conforms to the Serial ATA International Organization Serial ATA Specification.",
+                "SFTP": "This value shall mean that this device conforms to the File Transfer protocol as defined by RFC 114 utilizing Transport Layer Security as specified by RFC 5246 or RFC 6176.",
+                "SMB": "This value shall mean that this device conforms to the Microsoft Server Message Block Protocol.",
+                "UHCI": "This value shall mean that this device conforms to the Intel Universal Host Controller Interface Specification, Enhanced Host Controller Interface Specification, or the Extensible Host Controller Interface specification.",
+                "USB": "This value shall mean that this device conforms to the USB Implementers Forum Universal Serial Bus Specification.",
+                "iSCSI": "This value shall mean that this device conforms to the IETF Internet Small Computer Systems Interface (iSCSI) Specification."
+            },
+            "type": "string"
+        },
+        "SetEncryptionKey": {
+            "additionalProperties": false,
+            "description": "This action is used to set the encryption key for the storage subsystem.",
+            "longDescription": "This action shall set the encryption key for the storage subsystem.",
+            "parameters": {
+                "EncryptionKey": {
+                    "description": "The encryption key to set on the storage subsytem.",
+                    "longDescription": "This parameter shall contain the encryption key to set on the storage subsystem.",
+                    "requiredParameter": true,
+                    "type": "string"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "Storage": {
+            "additionalProperties": false,
+            "description": "This schema defines a storage subsystem and its respective properties.  A storage subsystem represents a set of storage controllers (physical or virtual) and the resources such as volumes that can be accessed from that subsystem.",
+            "longDescription": "This resource shall be used to represent resources that represent a storage subsystem in the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Drives": {
+                    "description": "The set of drives attached to the storage controllers represented by this resource.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
+                    },
+                    "longDescription": "A collection that indicates all the drives attached to the storage controllers that this resource represents.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Drives@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Redundancy": {
+                    "description": "Redundancy information for the storage subsystem.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "StorageControllers": {
+                    "description": "The set of storage controllers represented by this resource.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController"
+                    },
+                    "longDescription": "A collection that indicates all the storage controllers that this resource represents.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "StorageControllers@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Volumes": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/VolumeCollection.json#/definitions/VolumeCollection",
+                    "description": "The set of volumes produced by the storage controllers represented by this resource.",
+                    "longDescription": "A collection that indicates all the volumes produced by the storage controllers that this resource represents.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "StorageController": {
+            "additionalProperties": false,
+            "description": "This schema defines a storage controller and its respective properties.  A storage controller represents a storage device (physical or virtual) that produces Volumes.",
+            "longDescription": "This resource shall be used to represent a resource that represents a storage controller in the Redfish specification.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/StorageControllerActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this Storage Controller.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "AssetTag": {
+                    "description": "The user assigned asset tag for this storage controller.",
+                    "longDescription": "The value of this property shall be an identifying string used to track the storage controller for inventory purposes.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "FirmwareVersion": {
+                    "description": "The firmware version of this storage Controller.",
+                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated storage controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Identifiers": {
+                    "description": "The Durable names for the storage controller.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
+                    },
+                    "longDescription": "This property shall contain a list of all known durable names for the associated storage controller.",
+                    "type": "array"
+                },
+                "Links": {
+                    "$ref": "#/definitions/StorageControllerLinks",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this storage controller.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Model": {
+                    "description": "This is the model number for the storage controller.",
+                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the storage controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "description": "The name of the Storage Controller.",
+                    "longDescription": "The value of this property shall be the name of the Storage Controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number for this storage controller.",
+                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SKU": {
+                    "description": "This is the SKU for this storage controller.",
+                    "longDescription": "The value of this property shall be the stock-keeping unit number for this storage storage controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this storage controller.",
+                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the storage controller.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SpeedGbps": {
+                    "description": "The speed of the storage controller interface.",
+                    "longDescription": "The value of this property shall represent the speed of the Storage bus interface (in Gigabits per second).",
+                    "minimum": 0,
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Gbit/s"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "SupportedControllerProtocols": {
+                    "description": "This represents the protocols by which this storage controller can be communicated to.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                    },
+                    "longDescription": "The value of this property shall be the set of protocols this storage controller can be communicated to.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "SupportedDeviceProtocols": {
+                    "description": "This represents the protocols which the storage controller can use to communicate with attached devices.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                    },
+                    "longDescription": "The value of this property shall be the set of protocols this storage controller can use to communicate with attached devices.",
+                    "readonly": true,
+                    "type": "array"
+                }
+            },
+            "type": "object"
+        },
+        "StorageControllerActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/StorageControllerOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "StorageControllerLinks": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Endpoints": {
+                    "description": "An array of references to the endpoints that connect to this controller.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type Endpoint.",
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "StorageServices": {
+                    "description": "An array of references to the StorageServices that connect to this controller.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageService.json#/definitions/StorageService"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type StorageService.",
+                    "type": "array"
+                },
+                "StorageServices@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "StorageControllerOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#Storage.v1_4_0.Storage"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Storage/index.json b/static/redfish/v1/JsonSchemas/Storage/index.json
index 9d32548..d2e2992 100644
--- a/static/redfish/v1/JsonSchemas/Storage/index.json
+++ b/static/redfish/v1/JsonSchemas/Storage/index.json
@@ -1,567 +1,21 @@
 {
-    "$ref": "#/definitions/Storage",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Storage.SetEncryptionKey": {
-                    "$ref": "#/definitions/SetEncryptionKey"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Enclosures": {
-                    "description": "An array of references to the chassis to which this storage subsystem is attached.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
-                    },
-                    "longDescription": "The value of this property shall reference a resource of type Chassis that represents the physical containers attached to this resource.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Enclosures@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Protocol": {
-            "deprecated": "This definition has been moved to the unversioned namespace so that external references can pick up changes over time.",
-            "enum": [
-                "PCIe",
-                "AHCI",
-                "UHCI",
-                "SAS",
-                "SATA",
-                "USB",
-                "NVMe",
-                "FC",
-                "iSCSI",
-                "FCoE",
-                "FCP",
-                "FICON",
-                "NVMeOverFabrics",
-                "SMB",
-                "NFSv3",
-                "NFSv4",
-                "HTTP",
-                "HTTPS",
-                "FTP",
-                "SFTP"
-            ],
-            "enumDescriptions": {
-                "AHCI": "Advanced Host Controller Interface.",
-                "FC": "Fibre Channel.",
-                "FCP": "Fibre Channel Protocol for SCSI.",
-                "FCoE": "Fibre Channel over Ethernet.",
-                "FICON": "FIbre CONnection (FICON).",
-                "FTP": "File Transfer Protocol.",
-                "HTTP": "Hypertext Transport Protocol.",
-                "HTTPS": "Secure Hypertext Transport Protocol.",
-                "NFSv3": "Network File System version 3.",
-                "NFSv4": "Network File System version 4.",
-                "NVMe": "Non-Volatile Memory Express.",
-                "NVMeOverFabrics": "NVMe over Fabrics.",
-                "PCIe": "PCI Express (Vendor Proprietary).",
-                "SAS": "Serial Attached SCSI.",
-                "SATA": "Serial AT Attachment.",
-                "SFTP": "Secure File Transfer Protocol.",
-                "SMB": "Server Message Block (aka CIFS Common Internet File System).",
-                "UHCI": "Universal Host Controller Interface.",
-                "USB": "Universal Serial Bus.",
-                "iSCSI": "Internet SCSI."
-            },
-            "enumLongDescriptions": {
-                "AHCI": "This value shall mean that this device conforms to the Intel Advanced Host Controller Interface Specification.",
-                "FC": "This value shall mean that this device conforms to the T11 Fibre Channel Physical and Signaling Interface Specification.",
-                "FCP": "This enumeration literal shall indicate the INCITS 481: Information technology - Fibre Channel Protocol for SCSI.  The Fibre Channel SCSI Protocol.",
-                "FCoE": "This value shall mean that this device conforms to the T11 FC-BB-5 Specification.",
-                "FICON": "This enumeration literal shall indicate the (ANSI FC-SB-3 Single-Byte Command Code Sets-3 Mapping Protocol for the Fibre Channel(FC) protocol.  FICON (FIbre CONnection) is the IBM proprietary name for this protocol.",
-                "FTP": "This value shall mean that this device conforms to the File Transfer protocol as defined by RFC 114.",
-                "HTTP": "This value shall mean that this device conforms to the Hypertext Transfer protocol as defined by RFC 2068 or RFC 2616.",
-                "HTTPS": "This value shall mean that this device conforms to the Hypertext Transfer protocol as defined by RFC 2068 or RFC 2616 utilizing Transport Layer Security as specified by RFC 5246 or RFC 6176.",
-                "NFSv3": "This value shall mean that this device conforms to the Network File System protocol as defined by RFC 1813.",
-                "NFSv4": "This value shall mean that this device conforms to the Network File System protocol as defined by RFC 3010 or RFC 5661.",
-                "NVMe": "This value shall mean that this device conforms to the Non-Volatile Memory Host Controller Interface Specification Specification.",
-                "NVMeOverFabrics": "This value shall mean that this device conforms to the NVM Express over Fabrics Specification.",
-                "PCIe": "This value shall mean that this device conforms to the PCI-SIG PCI Express Base Specification only beyond that is uses some vendor proprietary mechanism to communicate.",
-                "SAS": "This value shall mean that this device conforms to the T10 SAS Protocol Layer Specification.",
-                "SATA": "This value shall mean that this device conforms to the Serial ATA International Organization Serial ATA Specification.",
-                "SFTP": "This value shall mean that this device conforms to the File Transfer protocol as defined by RFC 114 utilizing Transport Layer Security as specified by RFC 5246 or RFC 6176.",
-                "SMB": "This value shall mean that this device conforms to the Microsoft Server Message Block Protocol.",
-                "UHCI": "This value shall mean that this device conforms to the Intel Universal Host Controller Interface Specification, Enhanced Host Controller Interface Specification, or the Extensible Host Controller Interface specification.",
-                "USB": "This value shall mean that this device conforms to the USB Implementers Forum Universal Serial Bus Specification.",
-                "iSCSI": "This value shall mean that this device conforms to the IETF Internet Small Computer Systems Interface (iSCSI) Specification."
-            },
-            "type": "string"
-        },
-        "SetEncryptionKey": {
-            "additionalProperties": false,
-            "description": "This action is used to set the encryption key for the storage subsystem.",
-            "longDescription": "This action shall set the encryption key for the storage subsystem.",
-            "parameters": {
-                "EncryptionKey": {
-                    "description": "The encryption key to set on the storage subsytem.",
-                    "longDescription": "This parameter shall contain the encryption key to set on the storage subsystem.",
-                    "requiredParameter": true,
-                    "type": "string"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "Storage": {
-            "additionalProperties": false,
-            "description": "This schema defines a storage subsystem and its respective properties.  A storage subsystem represents a set of storage controllers (physical or virtual) and the resources such as volumes that can be accessed from that subsystem.",
-            "longDescription": "This resource shall be used to represent resources that represent a storage subsystem in the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Drives": {
-                    "description": "The set of drives attached to the storage controllers represented by this resource.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
-                    },
-                    "longDescription": "A collection that indicates all the drives attached to the storage controllers that this resource represents.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Drives@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Redundancy": {
-                    "description": "Redundancy information for the storage subsystem.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "StorageControllers": {
-                    "description": "The set of storage controllers represented by this resource.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController"
-                    },
-                    "longDescription": "A collection that indicates all the storage controllers that this resource represents.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "StorageControllers@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Volumes": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/VolumeCollection.json#/definitions/VolumeCollection",
-                    "description": "The set of volumes produced by the storage controllers represented by this resource.",
-                    "longDescription": "A collection that indicates all the volumes produced by the storage controllers that this resource represents.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "StorageController": {
-            "additionalProperties": false,
-            "description": "This schema defines a storage controller and its respective properties.  A storage controller represents a storage device (physical or virtual) that produces Volumes.",
-            "longDescription": "This resource shall be used to represent a resource that represents a storage controller in the Redfish specification.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/StorageControllerActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this Storage Controller.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "AssetTag": {
-                    "description": "The user assigned asset tag for this storage controller.",
-                    "longDescription": "The value of this property shall be an identifying string used to track the storage controller for inventory purposes.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "FirmwareVersion": {
-                    "description": "The firmware version of this storage Controller.",
-                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated storage controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Identifiers": {
-                    "description": "The Durable names for the storage controller.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
-                    },
-                    "longDescription": "This property shall contain a list of all known durable names for the associated storage controller.",
-                    "type": "array"
-                },
-                "Links": {
-                    "$ref": "#/definitions/StorageControllerLinks",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this storage controller.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the storage controller. This organization might be the entity from whom the storage controller is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Model": {
-                    "description": "This is the model number for the storage controller.",
-                    "longDescription": "The value of this property shall be the name by which the manufacturer generally refers to the storage controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "description": "The name of the Storage Controller.",
-                    "longDescription": "The value of this property shall be the name of the Storage Controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number for this storage controller.",
-                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SKU": {
-                    "description": "This is the SKU for this storage controller.",
-                    "longDescription": "The value of this property shall be the stock-keeping unit number for this storage storage controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this storage controller.",
-                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the storage controller.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SpeedGbps": {
-                    "description": "The speed of the storage controller interface.",
-                    "longDescription": "The value of this property shall represent the speed of the Storage bus interface (in Gigabits per second).",
-                    "minimum": 0,
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Gbit/s"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "SupportedControllerProtocols": {
-                    "description": "This represents the protocols by which this storage controller can be communicated to.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                    },
-                    "longDescription": "The value of this property shall be the set of protocols this storage controller can be communicated to.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "SupportedDeviceProtocols": {
-                    "description": "This represents the protocols which the storage controller can use to communicate with attached devices.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                    },
-                    "longDescription": "The value of this property shall be the set of protocols this storage controller can use to communicate with attached devices.",
-                    "readonly": true,
-                    "type": "array"
-                }
-            },
-            "type": "object"
-        },
-        "StorageControllerActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/StorageControllerOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "StorageControllerLinks": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Endpoints": {
-                    "description": "An array of references to the endpoints that connect to this controller.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type Endpoint.",
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "StorageServices": {
-                    "description": "An array of references to the StorageServices that connect to this controller.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StorageService.json#/definitions/StorageService"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this controller is associated with and shall reference a resource of type StorageService.",
-                    "type": "array"
-                },
-                "StorageServices@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "StorageControllerOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Storage",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Storage Schema File",
+    "Schema": "#Storage.Storage",
+    "Description": "Storage Schema File Location",
+    "Id": "Storage",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Storage.json",
+            "Uri": "/redfish/v1/JSONSchemas/Storage/Storage.json"
         }
-    },
-    "title": "#Storage.v1_4_0.Storage"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Switch/Switch.json b/static/redfish/v1/JsonSchemas/Switch/Switch.json
new file mode 100644
index 0000000..53efadd
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Switch/Switch.json
@@ -0,0 +1,359 @@
+{
+    "$ref": "#/definitions/Switch",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#Switch.Reset": {
+                    "$ref": "#/definitions/Reset"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Chassis": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
+                    "description": "A reference to the chassis which contains this switch.",
+                    "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Chassis.",
+                    "readonly": true
+                },
+                "ManagedBy": {
+                    "description": "An array of references to the managers that manage this switch.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Manager.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ManagedBy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Reset": {
+            "additionalProperties": false,
+            "description": "This action is used to reset this switch.",
+            "longDescription": "This action shall perform a reset of this switch.",
+            "parameters": {
+                "ResetType": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
+                    "description": "The type of reset to be performed.",
+                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "Switch": {
+            "additionalProperties": false,
+            "description": "Switch contains properties describing a simple fabric switch.",
+            "longDescription": "This resource shall be used to represent a simple switch for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AssetTag": {
+                    "description": "The user assigned asset tag for this switch.",
+                    "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "DomainID": {
+                    "description": "The Domain ID for this switch.",
+                    "longDescription": "The value of this property shall have a scope of uniqueness within the fabric of which the switch is a member.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify the switch.",
+                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this switch.",
+                    "readonly": false
+                },
+                "IsManaged": {
+                    "description": "This indicates whether the switch is in a managed or unmanaged state.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this switch is in a managed or unmanaged state.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "LogServices": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "A reference to the collection of Log Services associated with this system.",
+                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
+                    "readonly": true
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this switch.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the switch. This organization might be the entity from whom the switch is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The product model number of this switch.",
+                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this switch.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number for this switch.",
+                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the switch.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Ports": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
+                    "description": "A collection of references to the ports for this switch.",
+                    "longDescription": "The value of this property shall be a reference to the resources that this switch contains and shall reference a resource of type Port.",
+                    "readonly": true
+                },
+                "PowerState": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This is the current power state of the switch.",
+                    "longDescription": "The value of this property shall contain the power state of the switch.",
+                    "readonly": true
+                },
+                "Redundancy": {
+                    "description": "Redundancy information for the switches.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SKU": {
+                    "description": "This is the SKU for this switch.",
+                    "longDescription": "The value of this property shall be the stock-keeping unit number for this switch.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this switch.",
+                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the switch.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "SwitchType": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The protocol being sent over this switch.",
+                    "longDescription": "The value of this property shall contain the type of switch being represented by this simple switch.",
+                    "readonly": true
+                },
+                "TotalSwitchWidth": {
+                    "description": "The total number of lanes, phys, or other physical transport links that this switch contains.",
+                    "longDescription": "The value of this property shall be the number of physical transport lanes, phys, or other physical transport links that this switch contains. For PCIe, this shall be lane count.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#Switch.v1_1_0.Switch"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Switch/index.json b/static/redfish/v1/JsonSchemas/Switch/index.json
index 53efadd..157418d 100644
--- a/static/redfish/v1/JsonSchemas/Switch/index.json
+++ b/static/redfish/v1/JsonSchemas/Switch/index.json
@@ -1,359 +1,21 @@
 {
-    "$ref": "#/definitions/Switch",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#Switch.Reset": {
-                    "$ref": "#/definitions/Reset"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Chassis": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
-                    "description": "A reference to the chassis which contains this switch.",
-                    "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Chassis.",
-                    "readonly": true
-                },
-                "ManagedBy": {
-                    "description": "An array of references to the managers that manage this switch.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this switch is associated with and shall reference a resource of type Manager.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ManagedBy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Reset": {
-            "additionalProperties": false,
-            "description": "This action is used to reset this switch.",
-            "longDescription": "This action shall perform a reset of this switch.",
-            "parameters": {
-                "ResetType": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
-                    "description": "The type of reset to be performed.",
-                    "longDescription": "This parameter shall define the type of reset to be performed.  The service may accept a request without the parameter and perform an implementation specific default reset."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "Switch": {
-            "additionalProperties": false,
-            "description": "Switch contains properties describing a simple fabric switch.",
-            "longDescription": "This resource shall be used to represent a simple switch for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AssetTag": {
-                    "description": "The user assigned asset tag for this switch.",
-                    "longDescription": "The value of this property shall be an identifying string used to track the drive for inventory purposes.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "DomainID": {
-                    "description": "The Domain ID for this switch.",
-                    "longDescription": "The value of this property shall have a scope of uniqueness within the fabric of which the switch is a member.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify the switch.",
-                    "longDescription": "This value of this property shall contain the indicator light state for the indicator light associated with this switch.",
-                    "readonly": false
-                },
-                "IsManaged": {
-                    "description": "This indicates whether the switch is in a managed or unmanaged state.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this switch is in a managed or unmanaged state.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "LogServices": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "A reference to the collection of Log Services associated with this system.",
-                    "longDescription": "The value of this property shall be a link to a collection of type LogServiceCollection.",
-                    "readonly": true
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this switch.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the switch. This organization might be the entity from whom the switch is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The product model number of this switch.",
-                    "longDescription": "This property shall indicate the model information as provided by the manufacturer of this switch.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number for this switch.",
-                    "longDescription": "The value of this property shall be a part number assigned by the organization that is responsible for producing or manufacturing the switch.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Ports": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
-                    "description": "A collection of references to the ports for this switch.",
-                    "longDescription": "The value of this property shall be a reference to the resources that this switch contains and shall reference a resource of type Port.",
-                    "readonly": true
-                },
-                "PowerState": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This is the current power state of the switch.",
-                    "longDescription": "The value of this property shall contain the power state of the switch.",
-                    "readonly": true
-                },
-                "Redundancy": {
-                    "description": "Redundancy information for the switches.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SKU": {
-                    "description": "This is the SKU for this switch.",
-                    "longDescription": "The value of this property shall be the stock-keeping unit number for this switch.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this switch.",
-                    "longDescription": "The value of this property shall be a manufacturer-allocated number used to identify the switch.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "SwitchType": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The protocol being sent over this switch.",
-                    "longDescription": "The value of this property shall contain the type of switch being represented by this simple switch.",
-                    "readonly": true
-                },
-                "TotalSwitchWidth": {
-                    "description": "The total number of lanes, phys, or other physical transport links that this switch contains.",
-                    "longDescription": "The value of this property shall be the number of physical transport lanes, phys, or other physical transport links that this switch contains. For PCIe, this shall be lane count.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Switch",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Switch Schema File",
+    "Schema": "#Switch.Switch",
+    "Description": "Switch Schema File Location",
+    "Id": "Switch",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Switch.json",
+            "Uri": "/redfish/v1/JSONSchemas/Switch/Switch.json"
         }
-    },
-    "title": "#Switch.v1_1_0.Switch"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Task/Task.json b/static/redfish/v1/JsonSchemas/Task/Task.json
new file mode 100644
index 0000000..7bbea04
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Task/Task.json
@@ -0,0 +1,211 @@
+{
+    "$ref": "#/definitions/Task",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Task": {
+            "additionalProperties": false,
+            "description": "This resource contains information about a specific Task scheduled by or being executed by a Redfish service's Task Service.",
+            "longDescription": "This resource shall be used to represent a task for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EndTime": {
+                    "description": "The date-time stamp that the task was last completed.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time the task was completed.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Messages": {
+                    "description": "This is an array of messages associated with the task.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
+                    },
+                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
+                    "type": "array"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "StartTime": {
+                    "description": "The date-time stamp that the task was last started.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time the task was started.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "TaskMonitor": {
+                    "description": "The URI of the Task Monitor for this task.",
+                    "format": "uri",
+                    "longDescription": "This property shall contain a URI to Task Monitor as defined in the Redfish Specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "TaskState": {
+                    "$ref": "#/definitions/TaskState",
+                    "description": "The state of the task.",
+                    "longDescription": "The value of this property shall indicate the state of the task.  New shall be used to indicate that the task is a new task which has just been instantiated and is in the initial state and indicates it has never been started.  Starting shall be used to indicate that the task is moving from the New, Suspended, or Service states into the Running state.  Running shall be used to indicate that the Task is running.  Suspended shall be used to indicate  that the Task is stopped (e.g., by a user), but can be restarted in a seamless manner.  Interrupted shall be used to indicate  that the Task was interrupted (e.g., by a server crash) in the middle of processing, and the user should either re-run/restart the Task.  Pending shall be used to indicate  that the Task has been queued and will be scheduled for processing as soon as resources are available to handle the request.  Stopping shall be used to indicate that the Task is in the process of moving to a Completed, Killed, or Exception state.  Completed shall be used to indicate that the task has completed normally.  Killed shall be used to indicate  that the task has been stopped by a Kill state change request (non-graceful shutdown).  Exception shall be used to indicate  that the Task is in an abnormal state that might be indicative of an error condition.  Service shall be used to indicate that the Task is in a state that supports problem discovery, or resolution, or both.  This state is used when a corrective action is possible.",
+                    "readonly": true
+                },
+                "TaskStatus": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health",
+                    "description": "This is the completion status of the task.",
+                    "longDescription": "The value of this property shall be the completion status of the task, as defined in the Status section of the Redfish specification and shall not be set until the task has completed.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "TaskState": {
+            "enum": [
+                "New",
+                "Starting",
+                "Running",
+                "Suspended",
+                "Interrupted",
+                "Pending",
+                "Stopping",
+                "Completed",
+                "Killed",
+                "Exception",
+                "Service",
+                "Cancelling",
+                "Cancelled"
+            ],
+            "enumDeprecated": {
+                "Killed": "This value has been deprecated and is being replaced by the value Cancelled which has more determinate semantics."
+            },
+            "enumDescriptions": {
+                "Cancelled": "Task has been cancelled by an operator or internal process.",
+                "Cancelling": "Task is in the process of being cancelled.",
+                "Completed": "Task has completed.",
+                "Exception": "Task has stopped due to an exception condition.",
+                "Interrupted": "Task has been interrupted.",
+                "Killed": "Task was terminated.",
+                "New": "A new task.",
+                "Pending": "Task is pending and has not started.",
+                "Running": "Task is running normally.",
+                "Service": "Task is running as a service.",
+                "Starting": "Task is starting.",
+                "Stopping": "Task is in the process of stopping.",
+                "Suspended": "Task has been suspended."
+            },
+            "enumLongDescriptions": {
+                "Cancelled": "This value shall represent that the operation was cancelled either through a Delete on a Task Monitor or Task Resource or by an internal process.",
+                "Cancelling": "This value shall represent that the operation is in the process of being cancelled.",
+                "Completed": "This value shall represent that the operation is complete and completed sucessfully or with warnings.",
+                "Exception": "This value shall represent that the operation is complete and completed with errors.",
+                "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.",
+                "Killed": "This value shall represent that the operation is complete because the task was killed by an operator.",
+                "New": "This value shall represent that this task is newly created but the operation has not yet started.",
+                "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.",
+                "Running": "This value shall represent that the operation is executing.",
+                "Service": "This value shall represent that the operation is now running as a service and expected to continue operation until stopped or killed.",
+                "Starting": "This value shall represent that the operation is starting.",
+                "Stopping": "This value shall represent that the operation is stopping but is not yet complete.",
+                "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Task.v1_2_0.Task"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Task/index.json b/static/redfish/v1/JsonSchemas/Task/index.json
index 7bbea04..3c5aa33 100644
--- a/static/redfish/v1/JsonSchemas/Task/index.json
+++ b/static/redfish/v1/JsonSchemas/Task/index.json
@@ -1,211 +1,21 @@
 {
-    "$ref": "#/definitions/Task",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Task": {
-            "additionalProperties": false,
-            "description": "This resource contains information about a specific Task scheduled by or being executed by a Redfish service's Task Service.",
-            "longDescription": "This resource shall be used to represent a task for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EndTime": {
-                    "description": "The date-time stamp that the task was last completed.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time the task was completed.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Messages": {
-                    "description": "This is an array of messages associated with the task.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
-                    },
-                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
-                    "type": "array"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "StartTime": {
-                    "description": "The date-time stamp that the task was last started.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time the task was started.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "TaskMonitor": {
-                    "description": "The URI of the Task Monitor for this task.",
-                    "format": "uri",
-                    "longDescription": "This property shall contain a URI to Task Monitor as defined in the Redfish Specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "TaskState": {
-                    "$ref": "#/definitions/TaskState",
-                    "description": "The state of the task.",
-                    "longDescription": "The value of this property shall indicate the state of the task.  New shall be used to indicate that the task is a new task which has just been instantiated and is in the initial state and indicates it has never been started.  Starting shall be used to indicate that the task is moving from the New, Suspended, or Service states into the Running state.  Running shall be used to indicate that the Task is running.  Suspended shall be used to indicate  that the Task is stopped (e.g., by a user), but can be restarted in a seamless manner.  Interrupted shall be used to indicate  that the Task was interrupted (e.g., by a server crash) in the middle of processing, and the user should either re-run/restart the Task.  Pending shall be used to indicate  that the Task has been queued and will be scheduled for processing as soon as resources are available to handle the request.  Stopping shall be used to indicate that the Task is in the process of moving to a Completed, Killed, or Exception state.  Completed shall be used to indicate that the task has completed normally.  Killed shall be used to indicate  that the task has been stopped by a Kill state change request (non-graceful shutdown).  Exception shall be used to indicate  that the Task is in an abnormal state that might be indicative of an error condition.  Service shall be used to indicate that the Task is in a state that supports problem discovery, or resolution, or both.  This state is used when a corrective action is possible.",
-                    "readonly": true
-                },
-                "TaskStatus": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health",
-                    "description": "This is the completion status of the task.",
-                    "longDescription": "The value of this property shall be the completion status of the task, as defined in the Status section of the Redfish specification and shall not be set until the task has completed.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "TaskState": {
-            "enum": [
-                "New",
-                "Starting",
-                "Running",
-                "Suspended",
-                "Interrupted",
-                "Pending",
-                "Stopping",
-                "Completed",
-                "Killed",
-                "Exception",
-                "Service",
-                "Cancelling",
-                "Cancelled"
-            ],
-            "enumDeprecated": {
-                "Killed": "This value has been deprecated and is being replaced by the value Cancelled which has more determinate semantics."
-            },
-            "enumDescriptions": {
-                "Cancelled": "Task has been cancelled by an operator or internal process.",
-                "Cancelling": "Task is in the process of being cancelled.",
-                "Completed": "Task has completed.",
-                "Exception": "Task has stopped due to an exception condition.",
-                "Interrupted": "Task has been interrupted.",
-                "Killed": "Task was terminated.",
-                "New": "A new task.",
-                "Pending": "Task is pending and has not started.",
-                "Running": "Task is running normally.",
-                "Service": "Task is running as a service.",
-                "Starting": "Task is starting.",
-                "Stopping": "Task is in the process of stopping.",
-                "Suspended": "Task has been suspended."
-            },
-            "enumLongDescriptions": {
-                "Cancelled": "This value shall represent that the operation was cancelled either through a Delete on a Task Monitor or Task Resource or by an internal process.",
-                "Cancelling": "This value shall represent that the operation is in the process of being cancelled.",
-                "Completed": "This value shall represent that the operation is complete and completed sucessfully or with warnings.",
-                "Exception": "This value shall represent that the operation is complete and completed with errors.",
-                "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.",
-                "Killed": "This value shall represent that the operation is complete because the task was killed by an operator.",
-                "New": "This value shall represent that this task is newly created but the operation has not yet started.",
-                "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.",
-                "Running": "This value shall represent that the operation is executing.",
-                "Service": "This value shall represent that the operation is now running as a service and expected to continue operation until stopped or killed.",
-                "Starting": "This value shall represent that the operation is starting.",
-                "Stopping": "This value shall represent that the operation is stopping but is not yet complete.",
-                "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Task",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Task Schema File",
+    "Schema": "#Task.Task",
+    "Description": "Task Schema File Location",
+    "Id": "Task",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Task.json",
+            "Uri": "/redfish/v1/JSONSchemas/Task/Task.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Task.v1_2_0.Task"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/TaskService/TaskService.json b/static/redfish/v1/JsonSchemas/TaskService/TaskService.json
new file mode 100644
index 0000000..4dc1ea3
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/TaskService/TaskService.json
@@ -0,0 +1,166 @@
+{
+    "$ref": "#/definitions/TaskService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "OverWritePolicy": {
+            "enum": [
+                "Manual",
+                "Oldest"
+            ],
+            "enumDescriptions": {
+                "Manual": "Completed tasks are not automatically overwritten.",
+                "Oldest": "Oldest completed tasks are overwritten."
+            },
+            "type": "string"
+        },
+        "TaskService": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Task Service.  It represents the properties for the service itself and has links to the actual list of tasks.",
+            "longDescription": "This resource shall be used to represent a task service for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "CompletedTaskOverWritePolicy": {
+                    "$ref": "#/definitions/OverWritePolicy",
+                    "description": "Overwrite policy of completed tasks.",
+                    "longDescription": "The value of this property shall indicate how completed tasks are handled should the task service need to track more tasks.",
+                    "readonly": true
+                },
+                "DateTime": {
+                    "description": "The current DateTime (with offset) setting that the task service is using.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall represent the current DateTime value for the TaskService, with offset from UTC, in Redfish Timestamp format.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "LifeCycleEventOnTaskStateChange": {
+                    "description": "Send an Event upon Task State Change.",
+                    "longDescription": "The value of this property, if set to true, shall indicate that the service shall send a Life cycle event to Event Destinations Subscriptions registered for such events upon change of task state. Life cycle events are defined in the Eventing section of the Redfish Specification.",
+                    "readonly": true,
+                    "type": "boolean"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Tasks": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/TaskCollection.json#/definitions/TaskCollection",
+                    "description": "References to the Tasks collection.",
+                    "longDescription": "The value of this property shall be a link to a resource of type TaskCollection.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#TaskService.v1_1_1.TaskService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/TaskService/index.json b/static/redfish/v1/JsonSchemas/TaskService/index.json
index 4dc1ea3..6c19183 100644
--- a/static/redfish/v1/JsonSchemas/TaskService/index.json
+++ b/static/redfish/v1/JsonSchemas/TaskService/index.json
@@ -1,166 +1,21 @@
 {
-    "$ref": "#/definitions/TaskService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "OverWritePolicy": {
-            "enum": [
-                "Manual",
-                "Oldest"
-            ],
-            "enumDescriptions": {
-                "Manual": "Completed tasks are not automatically overwritten.",
-                "Oldest": "Oldest completed tasks are overwritten."
-            },
-            "type": "string"
-        },
-        "TaskService": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Task Service.  It represents the properties for the service itself and has links to the actual list of tasks.",
-            "longDescription": "This resource shall be used to represent a task service for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "CompletedTaskOverWritePolicy": {
-                    "$ref": "#/definitions/OverWritePolicy",
-                    "description": "Overwrite policy of completed tasks.",
-                    "longDescription": "The value of this property shall indicate how completed tasks are handled should the task service need to track more tasks.",
-                    "readonly": true
-                },
-                "DateTime": {
-                    "description": "The current DateTime (with offset) setting that the task service is using.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall represent the current DateTime value for the TaskService, with offset from UTC, in Redfish Timestamp format.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "LifeCycleEventOnTaskStateChange": {
-                    "description": "Send an Event upon Task State Change.",
-                    "longDescription": "The value of this property, if set to true, shall indicate that the service shall send a Life cycle event to Event Destinations Subscriptions registered for such events upon change of task state. Life cycle events are defined in the Eventing section of the Redfish Specification.",
-                    "readonly": true,
-                    "type": "boolean"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Tasks": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/TaskCollection.json#/definitions/TaskCollection",
-                    "description": "References to the Tasks collection.",
-                    "longDescription": "The value of this property shall be a link to a resource of type TaskCollection.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/TaskService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "TaskService Schema File",
+    "Schema": "#TaskService.TaskService",
+    "Description": "TaskService Schema File Location",
+    "Id": "TaskService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/TaskService.json",
+            "Uri": "/redfish/v1/JSONSchemas/TaskService/TaskService.json"
         }
-    },
-    "title": "#TaskService.v1_1_1.TaskService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Thermal/Thermal.json b/static/redfish/v1/JsonSchemas/Thermal/Thermal.json
new file mode 100644
index 0000000..790a5cb
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Thermal/Thermal.json
@@ -0,0 +1,728 @@
+{
+    "$ref": "#/definitions/Thermal",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Fan": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/FanActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Assembly": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+                    "description": "A reference to the Assembly resource associated with this fan.",
+                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
+                    "readonly": true
+                },
+                "FanName": {
+                    "deprecated": "This property has been Deprecated in favor of Thermal.v1_1_0.Thermal.Fan.Name",
+                    "description": "Name of the fan.",
+                    "longDescription": "The value of this property shall be the name of the fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "HotPluggable": {
+                    "description": "Indicates if this device can be inserted or removed while the equipment is in operation.",
+                    "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state.  Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.",
+                    "readonly": true,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "IndicatorLED": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "The state of the indicator LED, used to identify this Fan.",
+                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this fan.",
+                    "readonly": false
+                },
+                "Location": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
+                },
+                "LowerThresholdCritical": {
+                    "description": "Below normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not yet fatal. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "LowerThresholdFatal": {
+                    "description": "Below normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the Reading is below the normal range and is fatal. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "LowerThresholdNonCritical": {
+                    "description": "Below normal range.",
+                    "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not critical. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Manufacturer": {
+                    "description": "This is the manufacturer of this Fan.",
+                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the fan. This organization might be the entity from whom the fan is purchased, but this is not necessarily true.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "MaxReadingRange": {
+                    "description": "Maximum value for Reading.",
+                    "longDescription": "The value of this property shall indicate the highest possible value for Reading. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MinReadingRange": {
+                    "description": "Minimum value for Reading.",
+                    "longDescription": "The value of this property shall indicate the lowest possible value for Reading. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Model": {
+                    "description": "The model number for this Fan.",
+                    "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Name": {
+                    "description": "Name of the fan.",
+                    "longDescription": "The value of this property shall be the name of the fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PartNumber": {
+                    "description": "The part number for this Fan.",
+                    "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "PhysicalContext": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
+                    "description": "Describes the area or device associated with this fan.",
+                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this fan is associated.",
+                    "readonly": true
+                },
+                "Reading": {
+                    "description": "Current fan speed.",
+                    "longDescription": "The value of this property shall be the current value of the fan sensor's reading.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "ReadingUnits": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ReadingUnits"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Units in which the reading and thresholds are measured.",
+                    "longDescription": "The value of this property shall be the units in which the fan's reading and thresholds are measured.",
+                    "readonly": true
+                },
+                "Redundancy": {
+                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "RelatedItem": {
+                    "description": "The ID(s) of the resources serviced with this fan.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that are being serviced by this fan.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SerialNumber": {
+                    "description": "The serial number for this Fan.",
+                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "SparePartNumber": {
+                    "description": "The spare part number for this Fan.",
+                    "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated fan.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "UpperThresholdCritical": {
+                    "description": "Above normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not yet fatal. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "UpperThresholdFatal": {
+                    "description": "Above normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the Reading is above the normal range and is fatal. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "UpperThresholdNonCritical": {
+                    "description": "Above normal range.",
+                    "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not critical. The units shall be the same units as the related Reading property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "FanActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/FanOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "FanOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "ReadingUnits": {
+            "enum": [
+                "RPM",
+                "Percent"
+            ],
+            "enumDescriptions": {
+                "Percent": "Indicates that the fan reading and thresholds are measured in percentage.",
+                "RPM": "Indicates that the fan reading and thresholds are measured in rotations per minute."
+            },
+            "type": "string"
+        },
+        "Temperature": {
+            "additionalProperties": false,
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Actions": {
+                    "$ref": "#/definitions/TemperatureActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "AdjustedMaxAllowableOperatingValue": {
+                    "description": "Adjusted maximum allowable operating temperature for this equipment based on the current environmental conditions present.",
+                    "longDescription": "The value of this property shall indicate the adjusted maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "AdjustedMinAllowableOperatingValue": {
+                    "description": "Adjusted minimum allowable operating temperature for this equipment based on the current environmental conditions present.",
+                    "longDescription": "The value of this property shall indicate the adjusted minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "DeltaPhysicalContext": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
+                    "description": "Describes the area or device to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.",
+                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.",
+                    "readonly": true
+                },
+                "DeltaReadingCelsius": {
+                    "description": "Delta Temperature reading.",
+                    "longDescription": "The value of this property shall be the delta of the values of the temperature readings across this sensor and the sensor at DeltaPhysicalContext.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "LowerThresholdCritical": {
+                    "description": "Below normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "LowerThresholdFatal": {
+                    "description": "Below normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "LowerThresholdNonCritical": {
+                    "description": "Below normal range.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "MaxAllowableOperatingValue": {
+                    "description": "Maximum allowable operating temperature for this equipment.",
+                    "longDescription": "The value of this property shall indicate the maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "MaxReadingRangeTemp": {
+                    "description": "Maximum value for ReadingCelsius.",
+                    "longDescription": "The value of this property shall indicate the highest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "MemberId": {
+                    "description": "This is the identifier for the member within the collection.",
+                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "MinAllowableOperatingValue": {
+                    "description": "Minimum allowable operating temperature for this equipment.",
+                    "longDescription": "The value of this property shall indicate the minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "MinReadingRangeTemp": {
+                    "description": "Minimum value for ReadingCelsius.",
+                    "longDescription": "The value of this property shall indicate the lowest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "Name": {
+                    "description": "Temperature sensor name.",
+                    "longDescription": "The value of this property shall be the name of the temperature sensor.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "PhysicalContext": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
+                    "description": "Describes the area or device to which this temperature measurement applies.",
+                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this temperature measurement applies.",
+                    "readonly": true
+                },
+                "ReadingCelsius": {
+                    "description": "Temperature.",
+                    "longDescription": "The value of this property shall be the current value of the temperature sensor's reading.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "RelatedItem": {
+                    "description": "Describes the areas or devices to which this temperature measurement applies.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
+                    },
+                    "longDescription": "The value of this property shall the array of IDs of areas or devices to which this temperature measurement applies.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "RelatedItem@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "SensorNumber": {
+                    "description": "A numerical identifier to represent the temperature sensor.",
+                    "longDescription": "The value of this property shall be a numerical identifier for this temperature sensor that is unique within this resource.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ]
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "UpperThresholdCritical": {
+                    "description": "Above normal range but not yet fatal.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "UpperThresholdFatal": {
+                    "description": "Above normal range and is fatal.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                },
+                "UpperThresholdNonCritical": {
+                    "description": "Above normal range.",
+                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.",
+                    "readonly": true,
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "Cel"
+                }
+            },
+            "type": "object"
+        },
+        "TemperatureActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/TemperatureOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "TemperatureOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Thermal": {
+            "additionalProperties": false,
+            "description": "This is the schema definition for the Thermal properties.  It represents the properties for Temperature and Cooling.",
+            "longDescription": "This resource shall be used to represent a thermal metrics resource for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/ThermalActions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Fans": {
+                    "description": "This is the definition for fans.",
+                    "items": {
+                        "$ref": "#/definitions/Fan"
+                    },
+                    "longDescription": "These properties shall be the definition for fans for a Redfish implementation.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Fans@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Redundancy": {
+                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
+                    },
+                    "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
+                    "type": "array"
+                },
+                "Redundancy@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "Temperatures": {
+                    "description": "This is the definition for temperature sensors.",
+                    "items": {
+                        "$ref": "#/definitions/Temperature"
+                    },
+                    "longDescription": "These properties shall be the definition for temperature sensors for a Redfish implementation.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "Temperatures@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "ThermalActions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/ThermalOemActions"
+                }
+            },
+            "type": "object"
+        },
+        "ThermalOemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "title": "#Thermal.v1_4_0.Thermal"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Thermal/index.json b/static/redfish/v1/JsonSchemas/Thermal/index.json
index 790a5cb..c5dba93 100644
--- a/static/redfish/v1/JsonSchemas/Thermal/index.json
+++ b/static/redfish/v1/JsonSchemas/Thermal/index.json
@@ -1,728 +1,21 @@
 {
-    "$ref": "#/definitions/Thermal",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Fan": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/FanActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Assembly": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
-                    "description": "A reference to the Assembly resource associated with this fan.",
-                    "longDescription": "The value of this property shall be a link to a resource of type Assembly.",
-                    "readonly": true
-                },
-                "FanName": {
-                    "deprecated": "This property has been Deprecated in favor of Thermal.v1_1_0.Thermal.Fan.Name",
-                    "description": "Name of the fan.",
-                    "longDescription": "The value of this property shall be the name of the fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "HotPluggable": {
-                    "description": "Indicates if this device can be inserted or removed while the equipment is in operation.",
-                    "longDescription": "The value of this property shall indicate whether the device can be inserted or removed while the underlying equipment otherwise remains in its current operational state.  Devices indicated as hot-pluggable shall allow the device to become operable without altering the operational state of the underlying equipment. Devices that cannot be inserted or removed from equipment in operation, or devices that cannot become operable without affecting the operational state of that equipment, shall be indicated as not hot-pluggable.",
-                    "readonly": true,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "IndicatorLED": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "The state of the indicator LED, used to identify this Fan.",
-                    "longDescription": "The value of this property shall contain the indicator light state for the indicator light associated with this fan.",
-                    "readonly": false
-                },
-                "Location": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location"
-                },
-                "LowerThresholdCritical": {
-                    "description": "Below normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not yet fatal. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "LowerThresholdFatal": {
-                    "description": "Below normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the Reading is below the normal range and is fatal. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "LowerThresholdNonCritical": {
-                    "description": "Below normal range.",
-                    "longDescription": "The value of this property shall indicate the Reading is below the normal range but is not critical. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Manufacturer": {
-                    "description": "This is the manufacturer of this Fan.",
-                    "longDescription": "The value of this property shall be the name of the organization responsible for producing the fan. This organization might be the entity from whom the fan is purchased, but this is not necessarily true.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "MaxReadingRange": {
-                    "description": "Maximum value for Reading.",
-                    "longDescription": "The value of this property shall indicate the highest possible value for Reading. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MinReadingRange": {
-                    "description": "Minimum value for Reading.",
-                    "longDescription": "The value of this property shall indicate the lowest possible value for Reading. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Model": {
-                    "description": "The model number for this Fan.",
-                    "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Name": {
-                    "description": "Name of the fan.",
-                    "longDescription": "The value of this property shall be the name of the fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PartNumber": {
-                    "description": "The part number for this Fan.",
-                    "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "PhysicalContext": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
-                    "description": "Describes the area or device associated with this fan.",
-                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this fan is associated.",
-                    "readonly": true
-                },
-                "Reading": {
-                    "description": "Current fan speed.",
-                    "longDescription": "The value of this property shall be the current value of the fan sensor's reading.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "ReadingUnits": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ReadingUnits"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Units in which the reading and thresholds are measured.",
-                    "longDescription": "The value of this property shall be the units in which the fan's reading and thresholds are measured.",
-                    "readonly": true
-                },
-                "Redundancy": {
-                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "RelatedItem": {
-                    "description": "The ID(s) of the resources serviced with this fan.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall be an array of IDs containing pointers consistent with JSON pointer syntax to the resource that are being serviced by this fan.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SerialNumber": {
-                    "description": "The serial number for this Fan.",
-                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "SparePartNumber": {
-                    "description": "The spare part number for this Fan.",
-                    "longDescription": "This property shall contain the spare or replacement part number as defined by the manufacturer for the associated fan.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "UpperThresholdCritical": {
-                    "description": "Above normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not yet fatal. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "UpperThresholdFatal": {
-                    "description": "Above normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the Reading is above the normal range and is fatal. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "UpperThresholdNonCritical": {
-                    "description": "Above normal range.",
-                    "longDescription": "The value of this property shall indicate the Reading is above the normal range but is not critical. The units shall be the same units as the related Reading property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                }
-            },
-            "type": "object"
-        },
-        "FanActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/FanOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "FanOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "ReadingUnits": {
-            "enum": [
-                "RPM",
-                "Percent"
-            ],
-            "enumDescriptions": {
-                "Percent": "Indicates that the fan reading and thresholds are measured in percentage.",
-                "RPM": "Indicates that the fan reading and thresholds are measured in rotations per minute."
-            },
-            "type": "string"
-        },
-        "Temperature": {
-            "additionalProperties": false,
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Actions": {
-                    "$ref": "#/definitions/TemperatureActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "AdjustedMaxAllowableOperatingValue": {
-                    "description": "Adjusted maximum allowable operating temperature for this equipment based on the current environmental conditions present.",
-                    "longDescription": "The value of this property shall indicate the adjusted maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "AdjustedMinAllowableOperatingValue": {
-                    "description": "Adjusted minimum allowable operating temperature for this equipment based on the current environmental conditions present.",
-                    "longDescription": "The value of this property shall indicate the adjusted minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination, and adjusted based on environmental conditions present. For example, liquid inlet temperature may be adjusted based on the available liquid pressure.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "DeltaPhysicalContext": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
-                    "description": "Describes the area or device to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.",
-                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which the DeltaReadingCelsius temperature measurement applies, relative to PhysicalContext.",
-                    "readonly": true
-                },
-                "DeltaReadingCelsius": {
-                    "description": "Delta Temperature reading.",
-                    "longDescription": "The value of this property shall be the delta of the values of the temperature readings across this sensor and the sensor at DeltaPhysicalContext.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "LowerThresholdCritical": {
-                    "description": "Below normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "LowerThresholdFatal": {
-                    "description": "Below normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "LowerThresholdNonCritical": {
-                    "description": "Below normal range.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is below the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "MaxAllowableOperatingValue": {
-                    "description": "Maximum allowable operating temperature for this equipment.",
-                    "longDescription": "The value of this property shall indicate the maximum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "MaxReadingRangeTemp": {
-                    "description": "Maximum value for ReadingCelsius.",
-                    "longDescription": "The value of this property shall indicate the highest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "MemberId": {
-                    "description": "This is the identifier for the member within the collection.",
-                    "longDescription": "The value of this string shall uniquely identify the member within the collection.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "MinAllowableOperatingValue": {
-                    "description": "Minimum allowable operating temperature for this equipment.",
-                    "longDescription": "The value of this property shall indicate the minimum allowable operating temperature for the equipment monitored by this temperature sensor, as specified by a standards body, manufacturer, or a combination.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "MinReadingRangeTemp": {
-                    "description": "Minimum value for ReadingCelsius.",
-                    "longDescription": "The value of this property shall indicate the lowest possible value for ReadingCelsius. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "Name": {
-                    "description": "Temperature sensor name.",
-                    "longDescription": "The value of this property shall be the name of the temperature sensor.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "PhysicalContext": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
-                    "description": "Describes the area or device to which this temperature measurement applies.",
-                    "longDescription": "The value of this property shall be a description of the affected device or region within the chassis to which this temperature measurement applies.",
-                    "readonly": true
-                },
-                "ReadingCelsius": {
-                    "description": "Temperature.",
-                    "longDescription": "The value of this property shall be the current value of the temperature sensor's reading.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "RelatedItem": {
-                    "description": "Describes the areas or devices to which this temperature measurement applies.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/idRef"
-                    },
-                    "longDescription": "The value of this property shall the array of IDs of areas or devices to which this temperature measurement applies.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "RelatedItem@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "SensorNumber": {
-                    "description": "A numerical identifier to represent the temperature sensor.",
-                    "longDescription": "The value of this property shall be a numerical identifier for this temperature sensor that is unique within this resource.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ]
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "UpperThresholdCritical": {
-                    "description": "Above normal range but not yet fatal.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not yet fatal. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "UpperThresholdFatal": {
-                    "description": "Above normal range and is fatal.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range and is fatal. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                },
-                "UpperThresholdNonCritical": {
-                    "description": "Above normal range.",
-                    "longDescription": "The value of this property shall indicate the ReadingCelsius is above the normal range but is not critical. The units shall be the same units as the related ReadingCelsius property.",
-                    "readonly": true,
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "Cel"
-                }
-            },
-            "type": "object"
-        },
-        "TemperatureActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/TemperatureOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "TemperatureOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Thermal": {
-            "additionalProperties": false,
-            "description": "This is the schema definition for the Thermal properties.  It represents the properties for Temperature and Cooling.",
-            "longDescription": "This resource shall be used to represent a thermal metrics resource for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/ThermalActions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Fans": {
-                    "description": "This is the definition for fans.",
-                    "items": {
-                        "$ref": "#/definitions/Fan"
-                    },
-                    "longDescription": "These properties shall be the definition for fans for a Redfish implementation.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Fans@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Redundancy": {
-                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
-                    },
-                    "longDescription": "The values of the properties in this array shall be used to show redundancy for fans and other elements in this resource.  The use of IDs within these arrays shall reference the members of the redundancy groups.",
-                    "type": "array"
-                },
-                "Redundancy@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "Temperatures": {
-                    "description": "This is the definition for temperature sensors.",
-                    "items": {
-                        "$ref": "#/definitions/Temperature"
-                    },
-                    "longDescription": "These properties shall be the definition for temperature sensors for a Redfish implementation.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "Temperatures@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "ThermalActions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/ThermalOemActions"
-                }
-            },
-            "type": "object"
-        },
-        "ThermalOemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Thermal",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Thermal Schema File",
+    "Schema": "#Thermal.Thermal",
+    "Description": "Thermal Schema File Location",
+    "Id": "Thermal",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Thermal.json",
+            "Uri": "/redfish/v1/JSONSchemas/Thermal/Thermal.json"
         }
-    },
-    "title": "#Thermal.v1_4_0.Thermal"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json b/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json
new file mode 100644
index 0000000..76d6097
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json
@@ -0,0 +1,272 @@
+{
+    "$ref": "#/definitions/UpdateService",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#UpdateService.SimpleUpdate": {
+                    "$ref": "#/definitions/SimpleUpdate"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "SimpleUpdate": {
+            "additionalProperties": false,
+            "description": "This action is used to update software components.",
+            "longDescription": "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.",
+            "parameters": {
+                "ImageURI": {
+                    "description": "The URI of the software image to be installed.",
+                    "longDescription": "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.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "Targets": {
+                    "description": "The array of URIs indicating where the update image is to be applied.",
+                    "format": "uri",
+                    "items": {
+                        "type": "string"
+                    },
+                    "longDescription": "This array property shall contain zero or more URIs indicating where the update image is to be applied.",
+                    "type": "array"
+                },
+                "TransferProtocol": {
+                    "$ref": "#/definitions/TransferProtocolType",
+                    "description": "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.",
+                    "longDescription": "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."
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "TransferProtocolType": {
+            "enum": [
+                "CIFS",
+                "FTP",
+                "SFTP",
+                "HTTP",
+                "HTTPS",
+                "NSF",
+                "SCP",
+                "TFTP",
+                "OEM"
+            ],
+            "enumDescriptions": {
+                "CIFS": "Common Internet File System protocol.",
+                "FTP": "File Transfer Protocol.",
+                "HTTP": "Hypertext Transfer Protocol.",
+                "HTTPS": "HTTP Secure protocol.",
+                "NSF": "Network File System protocol.",
+                "OEM": "A protocol defined by the manufacturer.",
+                "SCP": "Secure File Copy protocol.",
+                "SFTP": "Secure File Transfer Protocol.",
+                "TFTP": "Trivial File Transfer Protocol."
+            },
+            "type": "string"
+        },
+        "UpdateService": {
+            "additionalProperties": false,
+            "description": "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.",
+            "longDescription": "This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The Actions object contains the available custom actions on this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "FirmwareInventory": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "An inventory of firmware.",
+                    "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.",
+                    "readonly": true
+                },
+                "HttpPushUri": {
+                    "description": "The URI used to perform an HTTP or HTTPS push update to the Update Service.",
+                    "format": "uri",
+                    "longDescription": "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.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "HttpPushUriTargets": {
+                    "description": "The array of URIs indicating the target for applying the update image.",
+                    "format": "uri",
+                    "items": {
+                        "type": [
+                            "string",
+                            "null"
+                        ]
+                    },
+                    "longDescription": "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.",
+                    "readonly": false,
+                    "type": "array"
+                },
+                "HttpPushUriTargetsBusy": {
+                    "description": "This represents if the HttpPushUriTargets property is reserved by any client.",
+                    "longDescription": "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.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "ServiceEnabled": {
+                    "description": "This indicates whether this service is enabled.",
+                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "SoftwareInventory": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "An inventory of software.",
+                    "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.",
+                    "readonly": true
+                },
+                "Status": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#UpdateService.v1_2_1.UpdateService"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/UpdateService/index.json b/static/redfish/v1/JsonSchemas/UpdateService/index.json
index 76d6097..8fb920c 100644
--- a/static/redfish/v1/JsonSchemas/UpdateService/index.json
+++ b/static/redfish/v1/JsonSchemas/UpdateService/index.json
@@ -1,272 +1,21 @@
 {
-    "$ref": "#/definitions/UpdateService",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#UpdateService.SimpleUpdate": {
-                    "$ref": "#/definitions/SimpleUpdate"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "SimpleUpdate": {
-            "additionalProperties": false,
-            "description": "This action is used to update software components.",
-            "longDescription": "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.",
-            "parameters": {
-                "ImageURI": {
-                    "description": "The URI of the software image to be installed.",
-                    "longDescription": "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.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "Targets": {
-                    "description": "The array of URIs indicating where the update image is to be applied.",
-                    "format": "uri",
-                    "items": {
-                        "type": "string"
-                    },
-                    "longDescription": "This array property shall contain zero or more URIs indicating where the update image is to be applied.",
-                    "type": "array"
-                },
-                "TransferProtocol": {
-                    "$ref": "#/definitions/TransferProtocolType",
-                    "description": "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.",
-                    "longDescription": "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."
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "TransferProtocolType": {
-            "enum": [
-                "CIFS",
-                "FTP",
-                "SFTP",
-                "HTTP",
-                "HTTPS",
-                "NSF",
-                "SCP",
-                "TFTP",
-                "OEM"
-            ],
-            "enumDescriptions": {
-                "CIFS": "Common Internet File System protocol.",
-                "FTP": "File Transfer Protocol.",
-                "HTTP": "Hypertext Transfer Protocol.",
-                "HTTPS": "HTTP Secure protocol.",
-                "NSF": "Network File System protocol.",
-                "OEM": "A protocol defined by the manufacturer.",
-                "SCP": "Secure File Copy protocol.",
-                "SFTP": "Secure File Transfer Protocol.",
-                "TFTP": "Trivial File Transfer Protocol."
-            },
-            "type": "string"
-        },
-        "UpdateService": {
-            "additionalProperties": false,
-            "description": "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.",
-            "longDescription": "This resource shall be used to represent an Update Service for a Redfish implementation. It represents the properties that affect the service itself.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The Actions object contains the available custom actions on this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "FirmwareInventory": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "An inventory of firmware.",
-                    "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.",
-                    "readonly": true
-                },
-                "HttpPushUri": {
-                    "description": "The URI used to perform an HTTP or HTTPS push update to the Update Service.",
-                    "format": "uri",
-                    "longDescription": "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.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "HttpPushUriTargets": {
-                    "description": "The array of URIs indicating the target for applying the update image.",
-                    "format": "uri",
-                    "items": {
-                        "type": [
-                            "string",
-                            "null"
-                        ]
-                    },
-                    "longDescription": "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.",
-                    "readonly": false,
-                    "type": "array"
-                },
-                "HttpPushUriTargetsBusy": {
-                    "description": "This represents if the HttpPushUriTargets property is reserved by any client.",
-                    "longDescription": "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.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "ServiceEnabled": {
-                    "description": "This indicates whether this service is enabled.",
-                    "longDescription": "The value of this property shall be a boolean indicating whether this service is enabled.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "SoftwareInventory": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventoryCollection.json#/definitions/SoftwareInventoryCollection"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "An inventory of software.",
-                    "longDescription": "The value of this property shall be a link to a resource of type SoftwareInventoryCollection.",
-                    "readonly": true
-                },
-                "Status": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/UpdateService",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "UpdateService Schema File",
+    "Schema": "#UpdateService.UpdateService",
+    "Description": "UpdateService Schema File Location",
+    "Id": "UpdateService",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/UpdateService.json",
+            "Uri": "/redfish/v1/JSONSchemas/UpdateService/UpdateService.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#UpdateService.v1_2_1.UpdateService"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json b/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json
new file mode 100644
index 0000000..e51a9ca
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/VLanNetworkInterface/VLanNetworkInterface.json
@@ -0,0 +1,193 @@
+{
+    "$ref": "#/definitions/VLanNetworkInterface",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "VLAN": {
+            "additionalProperties": false,
+            "description": "This type describes the attributes of a Virtual LAN.",
+            "longDescription": "This type shall contain any attributes of a Virtual LAN.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "VLANEnable": {
+                    "description": "This indicates if this VLAN is enabled.",
+                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "VLANId": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/VLANId"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates the VLAN identifier for this VLAN.",
+                    "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.",
+                    "readonly": false
+                }
+            },
+            "requiredOnCreate": [
+                "VLANEnable",
+                "VLANId"
+            ],
+            "type": "object"
+        },
+        "VLANId": {
+            "maximum": 4094,
+            "minimum": 0,
+            "type": "number"
+        },
+        "VLanNetworkInterface": {
+            "additionalProperties": false,
+            "description": "This resource describes the attributes of a Virtual LAN.",
+            "longDescription": "This resource shall contain any attributes of a Virtual LAN.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "VLANEnable": {
+                    "description": "This indicates if this VLAN is enabled.",
+                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "VLANId": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/VLANId"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates the VLAN identifier for this VLAN.",
+                    "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.",
+                    "readonly": false
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "requiredOnCreate": [
+                "VLANEnable",
+                "VLANId"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#VLanNetworkInterface.v1_1_1.VLanNetworkInterface"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/VLanNetworkInterface/index.json b/static/redfish/v1/JsonSchemas/VLanNetworkInterface/index.json
index e51a9ca..b8f51b0 100644
--- a/static/redfish/v1/JsonSchemas/VLanNetworkInterface/index.json
+++ b/static/redfish/v1/JsonSchemas/VLanNetworkInterface/index.json
@@ -1,193 +1,21 @@
 {
-    "$ref": "#/definitions/VLanNetworkInterface",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "VLAN": {
-            "additionalProperties": false,
-            "description": "This type describes the attributes of a Virtual LAN.",
-            "longDescription": "This type shall contain any attributes of a Virtual LAN.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "VLANEnable": {
-                    "description": "This indicates if this VLAN is enabled.",
-                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "VLANId": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/VLANId"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates the VLAN identifier for this VLAN.",
-                    "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.",
-                    "readonly": false
-                }
-            },
-            "requiredOnCreate": [
-                "VLANEnable",
-                "VLANId"
-            ],
-            "type": "object"
-        },
-        "VLANId": {
-            "maximum": 4094,
-            "minimum": 0,
-            "type": "number"
-        },
-        "VLanNetworkInterface": {
-            "additionalProperties": false,
-            "description": "This resource describes the attributes of a Virtual LAN.",
-            "longDescription": "This resource shall contain any attributes of a Virtual LAN.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "VLANEnable": {
-                    "description": "This indicates if this VLAN is enabled.",
-                    "longDescription": "The value of this property shall be used to indicate if this VLAN is enabled for this interface.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "VLANId": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/VLANId"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "This indicates the VLAN identifier for this VLAN.",
-                    "longDescription": "The value of this property shall be used to indicate the VLAN identifier for this VLAN.",
-                    "readonly": false
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "requiredOnCreate": [
-                "VLANEnable",
-                "VLANId"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/VLanNetworkInterface",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "VLanNetworkInterface Schema File",
+    "Schema": "#VLanNetworkInterface.VLanNetworkInterface",
+    "Description": "VLanNetworkInterface Schema File Location",
+    "Id": "VLanNetworkInterface",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json",
+            "Uri": "/redfish/v1/JSONSchemas/VLanNetworkInterface/VLanNetworkInterface.json"
         }
-    },
-    "title": "#VLanNetworkInterface.v1_1_1.VLanNetworkInterface"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json b/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json
new file mode 100644
index 0000000..7bc0416
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json
@@ -0,0 +1,289 @@
+{
+    "$ref": "#/definitions/VirtualMedia",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "#VirtualMedia.EjectMedia": {
+                    "$ref": "#/definitions/EjectMedia"
+                },
+                "#VirtualMedia.InsertMedia": {
+                    "$ref": "#/definitions/InsertMedia"
+                },
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "ConnectedVia": {
+            "enum": [
+                "NotConnected",
+                "URI",
+                "Applet",
+                "Oem"
+            ],
+            "enumDescriptions": {
+                "Applet": "Connected to a client application.",
+                "NotConnected": "No current connection.",
+                "Oem": "Connected via an OEM-defined method.",
+                "URI": "Connected to a URI location."
+            },
+            "type": "string"
+        },
+        "EjectMedia": {
+            "additionalProperties": false,
+            "description": "This action is used to detach remote media from virtual media.",
+            "longDescription": "This action shall detach the remote media from the virtual media.  At the completion of the operation, inserted shall be set to false and the image name shall be cleared.",
+            "parameters": {},
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "InsertMedia": {
+            "additionalProperties": false,
+            "description": "This action is used to attach remote media to virtual media.",
+            "longDescription": "This action shall attach remote media to virtual media.",
+            "parameters": {
+                "Image": {
+                    "description": "The URI of the remote media to attach to the virtual media.",
+                    "longDescription": "This value shall specify the URI of the remote media to be attached to the virtual media.",
+                    "requiredParameter": true,
+                    "type": "string"
+                },
+                "Inserted": {
+                    "description": "Indicates if the image is to be treated as inserted upon completion of the action.",
+                    "longDescription": "This value shall specify if the image is to be treated as inserted upon completion of the action.  If this parameter is not provided by the client, the service shall default this value to be true.",
+                    "type": "boolean"
+                },
+                "WriteProtected": {
+                    "description": "Indicates if the remote media is supposed to be treated as write protected.",
+                    "longDescription": "This value shall specify if the remote media is supposed to be treated as write protected.  If this parameter is not provided by the client, the service shall default this value to be true.",
+                    "type": "boolean"
+                }
+            },
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "target": {
+                    "description": "Link to invoke action",
+                    "format": "uri",
+                    "type": "string"
+                },
+                "title": {
+                    "description": "Friendly action name",
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "MediaType": {
+            "enum": [
+                "CD",
+                "Floppy",
+                "USBStick",
+                "DVD"
+            ],
+            "enumDescriptions": {
+                "CD": "A CD-ROM format (ISO) image.",
+                "DVD": "A DVD-ROM format image.",
+                "Floppy": "A floppy disk image.",
+                "USBStick": "An emulation of a USB storage device."
+            },
+            "type": "string"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "VirtualMedia": {
+            "additionalProperties": false,
+            "description": "The VirtualMedia schema contains properties related to monitoring and control of an instance of virtual media such as a remote CD, DVD, or USB device. Virtual media functionality is provided by a Manager for a system or device.",
+            "longDescription": "This resource shall be used to represent a virtual media service for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "ConnectedVia": {
+                    "anyOf": [
+                        {
+                            "$ref": "#/definitions/ConnectedVia"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "Current virtual media connection methods.",
+                    "longDescription": "The value of this property shall indicate the current connection method from a client to the virtual media represented by this resource.  A value of NotConnected shall indicate no connection is present.  A value of URI shall indicate that a remote connection via a URI reference type is being used.",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Image": {
+                    "description": "A URI providing the location of the selected image.",
+                    "format": "uri",
+                    "longDescription": "The value of this string shall be an URI.  A null value indicated no image connection.",
+                    "readonly": false,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "ImageName": {
+                    "description": "The current image name.",
+                    "longDescription": "The value of this property shall be the name of the image.",
+                    "readonly": true,
+                    "type": [
+                        "string",
+                        "null"
+                    ]
+                },
+                "Inserted": {
+                    "description": "Indicates if virtual media is inserted in the virtual device.",
+                    "longDescription": "The value of this property shall be used to indicate if media is present in the virtual media device.  This is usually only applicable to remoting of devices and not for image virtual media usage.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                },
+                "MediaTypes": {
+                    "description": "This is the media types supported as virtual media.",
+                    "items": {
+                        "$ref": "#/definitions/MediaType"
+                    },
+                    "longDescription": "The values of this array shall be the supported media types for this connection.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "WriteProtected": {
+                    "description": "Indicates the media is write protected.",
+                    "longDescription": "The value of this property shall be used to indicate if the remote device media prevents writing to that media.",
+                    "readonly": false,
+                    "type": [
+                        "boolean",
+                        "null"
+                    ]
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#VirtualMedia.v1_2_0.VirtualMedia"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/VirtualMedia/index.json b/static/redfish/v1/JsonSchemas/VirtualMedia/index.json
index 7bc0416..151fcce 100644
--- a/static/redfish/v1/JsonSchemas/VirtualMedia/index.json
+++ b/static/redfish/v1/JsonSchemas/VirtualMedia/index.json
@@ -1,289 +1,21 @@
 {
-    "$ref": "#/definitions/VirtualMedia",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "#VirtualMedia.EjectMedia": {
-                    "$ref": "#/definitions/EjectMedia"
-                },
-                "#VirtualMedia.InsertMedia": {
-                    "$ref": "#/definitions/InsertMedia"
-                },
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "ConnectedVia": {
-            "enum": [
-                "NotConnected",
-                "URI",
-                "Applet",
-                "Oem"
-            ],
-            "enumDescriptions": {
-                "Applet": "Connected to a client application.",
-                "NotConnected": "No current connection.",
-                "Oem": "Connected via an OEM-defined method.",
-                "URI": "Connected to a URI location."
-            },
-            "type": "string"
-        },
-        "EjectMedia": {
-            "additionalProperties": false,
-            "description": "This action is used to detach remote media from virtual media.",
-            "longDescription": "This action shall detach the remote media from the virtual media.  At the completion of the operation, inserted shall be set to false and the image name shall be cleared.",
-            "parameters": {},
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "InsertMedia": {
-            "additionalProperties": false,
-            "description": "This action is used to attach remote media to virtual media.",
-            "longDescription": "This action shall attach remote media to virtual media.",
-            "parameters": {
-                "Image": {
-                    "description": "The URI of the remote media to attach to the virtual media.",
-                    "longDescription": "This value shall specify the URI of the remote media to be attached to the virtual media.",
-                    "requiredParameter": true,
-                    "type": "string"
-                },
-                "Inserted": {
-                    "description": "Indicates if the image is to be treated as inserted upon completion of the action.",
-                    "longDescription": "This value shall specify if the image is to be treated as inserted upon completion of the action.  If this parameter is not provided by the client, the service shall default this value to be true.",
-                    "type": "boolean"
-                },
-                "WriteProtected": {
-                    "description": "Indicates if the remote media is supposed to be treated as write protected.",
-                    "longDescription": "This value shall specify if the remote media is supposed to be treated as write protected.  If this parameter is not provided by the client, the service shall default this value to be true.",
-                    "type": "boolean"
-                }
-            },
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "target": {
-                    "description": "Link to invoke action",
-                    "format": "uri",
-                    "type": "string"
-                },
-                "title": {
-                    "description": "Friendly action name",
-                    "type": "string"
-                }
-            },
-            "type": "object"
-        },
-        "MediaType": {
-            "enum": [
-                "CD",
-                "Floppy",
-                "USBStick",
-                "DVD"
-            ],
-            "enumDescriptions": {
-                "CD": "A CD-ROM format (ISO) image.",
-                "DVD": "A DVD-ROM format image.",
-                "Floppy": "A floppy disk image.",
-                "USBStick": "An emulation of a USB storage device."
-            },
-            "type": "string"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "VirtualMedia": {
-            "additionalProperties": false,
-            "description": "The VirtualMedia schema contains properties related to monitoring and control of an instance of virtual media such as a remote CD, DVD, or USB device. Virtual media functionality is provided by a Manager for a system or device.",
-            "longDescription": "This resource shall be used to represent a virtual media service for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "ConnectedVia": {
-                    "anyOf": [
-                        {
-                            "$ref": "#/definitions/ConnectedVia"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "description": "Current virtual media connection methods.",
-                    "longDescription": "The value of this property shall indicate the current connection method from a client to the virtual media represented by this resource.  A value of NotConnected shall indicate no connection is present.  A value of URI shall indicate that a remote connection via a URI reference type is being used.",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Image": {
-                    "description": "A URI providing the location of the selected image.",
-                    "format": "uri",
-                    "longDescription": "The value of this string shall be an URI.  A null value indicated no image connection.",
-                    "readonly": false,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "ImageName": {
-                    "description": "The current image name.",
-                    "longDescription": "The value of this property shall be the name of the image.",
-                    "readonly": true,
-                    "type": [
-                        "string",
-                        "null"
-                    ]
-                },
-                "Inserted": {
-                    "description": "Indicates if virtual media is inserted in the virtual device.",
-                    "longDescription": "The value of this property shall be used to indicate if media is present in the virtual media device.  This is usually only applicable to remoting of devices and not for image virtual media usage.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                },
-                "MediaTypes": {
-                    "description": "This is the media types supported as virtual media.",
-                    "items": {
-                        "$ref": "#/definitions/MediaType"
-                    },
-                    "longDescription": "The values of this array shall be the supported media types for this connection.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "WriteProtected": {
-                    "description": "Indicates the media is write protected.",
-                    "longDescription": "The value of this property shall be used to indicate if the remote device media prevents writing to that media.",
-                    "readonly": false,
-                    "type": [
-                        "boolean",
-                        "null"
-                    ]
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/VirtualMedia",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "VirtualMedia Schema File",
+    "Schema": "#VirtualMedia.VirtualMedia",
+    "Description": "VirtualMedia Schema File Location",
+    "Id": "VirtualMedia",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/VirtualMedia.json",
+            "Uri": "/redfish/v1/JSONSchemas/VirtualMedia/VirtualMedia.json"
         }
-    },
-    "title": "#VirtualMedia.v1_2_0.VirtualMedia"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Volume/Volume.json b/static/redfish/v1/JsonSchemas/Volume/Volume.json
new file mode 100644
index 0000000..a3f8119
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Volume/Volume.json
@@ -0,0 +1,328 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
+    "title": "#Volume.v1_0_3.Volume",
+    "$ref": "#/definitions/Volume",
+    "definitions": {
+        "Initialize": {
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "title": {
+                    "type": "string",
+                    "description": "Friendly action name"
+                },
+                "target": {
+                    "type": "string",
+                    "format": "uri",
+                    "description": "Link to invoke action"
+                }
+            },
+            "description": "This action is used to prepare the contents of the volume for use by the system.",
+            "longDescription": "This defines the name of the custom action supported on this resource."
+        },
+        "EncryptionTypes": {
+            "type": "string",
+            "enum": [
+                "NativeDriveEncryption",
+                "ControllerAssisted",
+                "SoftwareAssisted"
+            ],
+            "enumDescriptions": {
+                "NativeDriveEncryption": "The volume is utilizing the native drive encryption capabilities of the drive hardware.",
+                "ControllerAssisted": "The volume is being encrypted by the storage controller entity.",
+                "SoftwareAssisted": "The volume is being encrypted by software running on the system or the operating system."
+            }
+        },
+        "Operations": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": true,
+            "properties": {
+                "OperationName": {
+                    "type": [
+                        "string",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The name of the operation."
+                },
+                "PercentageComplete": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "readonly": true,
+                    "description": "The percentage of the operation that has been completed."
+                },
+                "AssociatedTask": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task",
+                    "readonly": true,
+                    "description": "A reference to the task associated with the operation if any."
+                }
+            },
+            "description": "An operation currently running on this resource.",
+            "longDescription": "This type shall describe a currently running operation on the resource."
+        },
+        "VolumeType": {
+            "type": "string",
+            "enum": [
+                "RawDevice",
+                "NonRedundant",
+                "Mirrored",
+                "StripedWithParity",
+                "SpannedMirrors",
+                "SpannedStripesWithParity"
+            ],
+            "enumDescriptions": {
+                "RawDevice": "The volume is a raw physical device without any RAID or other virtualization applied.",
+                "NonRedundant": "The volume is a non-redundant storage device.",
+                "Mirrored": "The volume is a mirrored device.",
+                "StripedWithParity": "The volume is a device which uses parity to retain redundant information.",
+                "SpannedMirrors": "The volume is a spanned set of mirrored devices.",
+                "SpannedStripesWithParity": "The volume is a spanned set of devices which uses parity to retain redundant information."
+            }
+        },
+        "Volume": {
+            "type": "object",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ],
+                    "description": "This property shall specify a valid odata or Redfish property."
+                }
+            },
+            "additionalProperties": false,
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Description": {
+                    "anyOf": [
+                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                },
+                "CapacityBytes": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By",
+                    "readonly": true,
+                    "description": "The size in bytes of this Volume.",
+                    "longDescription": "This property shall contain the size in bytes of the associated volume."
+                },
+                "VolumeType": {
+                    "anyOf": [
+                        {"$ref": "#/definitions/VolumeType"},
+                        {"type": "null"}
+                    ],
+                    "readonly": true,
+                    "description": "The type of this volume.",
+                    "longDescription": "This property shall contain the type of the associated Volume."
+                },
+                "Encrypted": {
+                    "type": [
+                        "boolean",
+                        "null"
+                    ],
+                    "readonly": false,
+                    "description": "Is this Volume encrypted.",
+                    "longDescription": "This property shall contain a boolean indicator if the Volume is currently utilizing encryption or not."
+                },
+                "EncryptionTypes": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/EncryptionTypes"
+                    },
+                    "readonly": false,
+                    "description": "The types of encryption used by this Volume.",
+                    "longDescription": "This property shall contain the types of encryption used by this Volume."
+                },
+                "Identifiers": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.v1_1_0.json#/definitions/Identifier"
+                    },
+                    "description": "The Durable names for the volume.",
+                    "longDescription": "This property shall contain a list of all known durable names for the associated volume."
+                },
+                "BlockSizeBytes": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By",
+                    "readonly": true,
+                    "description": "The size of the smallest addressible unit (Block) of this volume in bytes.",
+                    "longDescription": "This property shall contain size of the smallest addressible unit of the associated volume."
+                },
+                "Operations": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/Operations"
+                    },
+                    "description": "The operations currently running on the Volume.",
+                    "longDescription": "This property shall contain a list of all currently running on the Volume."
+                },
+                "OptimumIOSizeBytes": {
+                    "type": [
+                        "number",
+                        "null"
+                    ],
+                    "units": "By",
+                    "readonly": true,
+                    "description": "The size in bytes of this Volume's optimum IO size.",
+                    "longDescription": "This property shall contain the optimum IO size to use when performing IO on this volume. For logical disks, this is the stripe size. For physical disks, this describes the physical sector size."
+                },
+                "Links": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                            "description": "Oem extension object.",
+                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                        },
+                        "Drives@odata.count": {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
+                        },
+                        "Drives@odata.navigationLink": {
+                            "type": "string",
+                            "format": "uri"
+                        },
+                        "Drives": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
+                            },
+                            "readonly": true,
+                            "description": "An array of references to the drives which contain this volume. This will reference Drives that either wholly or only partly contain this volume.",
+                            "longDescription": "The value of this property shall be a reference to the resources that this volume is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently members of the Volume, not hot spare Drives which are not currently a member of the volume."
+                        }
+                    },
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Actions": {
+                    "type": "object",
+                    "patternProperties": {
+                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                            "type": [
+                                "array",
+                                "boolean",
+                                "number",
+                                "null",
+                                "object",
+                                "string"
+                            ],
+                            "description": "This property shall specify a valid odata or Redfish property."
+                        }
+                    },
+                    "additionalProperties": false,
+                    "properties": {
+                        "Oem": {
+                            "type": "object",
+                            "patternProperties": {
+                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                                    "type": [
+                                        "array",
+                                        "boolean",
+                                        "number",
+                                        "null",
+                                        "object",
+                                        "string"
+                                    ],
+                                    "description": "This property shall specify a valid odata or Redfish property."
+                                }
+                            },
+                            "additionalProperties": true,
+                            "properties": {},
+                            "description": "The available OEM specific actions for this resource.",
+                            "longDescription": "This type shall contain any additional OEM actions for this resource."
+                        },
+                        "#Volume.Initialize": {
+                            "$ref": "#/definitions/Initialize"
+                        }
+                    },
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "description": "Volume contains properties used to describe a volume, virtual disk, LUN, or other logical storage entity for any system.",
+            "longDescription": "This resource shall be used to represent a volume, virtual disk, logical disk, LUN, or other logical storage for a Redfish implementation."
+        }
+    },
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
+}
diff --git a/static/redfish/v1/JsonSchemas/Volume/index.json b/static/redfish/v1/JsonSchemas/Volume/index.json
index a3f8119..af5aae9 100644
--- a/static/redfish/v1/JsonSchemas/Volume/index.json
+++ b/static/redfish/v1/JsonSchemas/Volume/index.json
@@ -1,328 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
-    "title": "#Volume.v1_0_3.Volume",
-    "$ref": "#/definitions/Volume",
-    "definitions": {
-        "Initialize": {
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-                "title": {
-                    "type": "string",
-                    "description": "Friendly action name"
-                },
-                "target": {
-                    "type": "string",
-                    "format": "uri",
-                    "description": "Link to invoke action"
-                }
-            },
-            "description": "This action is used to prepare the contents of the volume for use by the system.",
-            "longDescription": "This defines the name of the custom action supported on this resource."
-        },
-        "EncryptionTypes": {
-            "type": "string",
-            "enum": [
-                "NativeDriveEncryption",
-                "ControllerAssisted",
-                "SoftwareAssisted"
-            ],
-            "enumDescriptions": {
-                "NativeDriveEncryption": "The volume is utilizing the native drive encryption capabilities of the drive hardware.",
-                "ControllerAssisted": "The volume is being encrypted by the storage controller entity.",
-                "SoftwareAssisted": "The volume is being encrypted by software running on the system or the operating system."
-            }
-        },
-        "Operations": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": true,
-            "properties": {
-                "OperationName": {
-                    "type": [
-                        "string",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The name of the operation."
-                },
-                "PercentageComplete": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "readonly": true,
-                    "description": "The percentage of the operation that has been completed."
-                },
-                "AssociatedTask": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Task.json#/definitions/Task",
-                    "readonly": true,
-                    "description": "A reference to the task associated with the operation if any."
-                }
-            },
-            "description": "An operation currently running on this resource.",
-            "longDescription": "This type shall describe a currently running operation on the resource."
-        },
-        "VolumeType": {
-            "type": "string",
-            "enum": [
-                "RawDevice",
-                "NonRedundant",
-                "Mirrored",
-                "StripedWithParity",
-                "SpannedMirrors",
-                "SpannedStripesWithParity"
-            ],
-            "enumDescriptions": {
-                "RawDevice": "The volume is a raw physical device without any RAID or other virtualization applied.",
-                "NonRedundant": "The volume is a non-redundant storage device.",
-                "Mirrored": "The volume is a mirrored device.",
-                "StripedWithParity": "The volume is a device which uses parity to retain redundant information.",
-                "SpannedMirrors": "The volume is a spanned set of mirrored devices.",
-                "SpannedStripesWithParity": "The volume is a spanned set of devices which uses parity to retain redundant information."
-            }
-        },
-        "Volume": {
-            "type": "object",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ],
-                    "description": "This property shall specify a valid odata or Redfish property."
-                }
-            },
-            "additionalProperties": false,
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Description": {
-                    "anyOf": [
-                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                },
-                "CapacityBytes": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By",
-                    "readonly": true,
-                    "description": "The size in bytes of this Volume.",
-                    "longDescription": "This property shall contain the size in bytes of the associated volume."
-                },
-                "VolumeType": {
-                    "anyOf": [
-                        {"$ref": "#/definitions/VolumeType"},
-                        {"type": "null"}
-                    ],
-                    "readonly": true,
-                    "description": "The type of this volume.",
-                    "longDescription": "This property shall contain the type of the associated Volume."
-                },
-                "Encrypted": {
-                    "type": [
-                        "boolean",
-                        "null"
-                    ],
-                    "readonly": false,
-                    "description": "Is this Volume encrypted.",
-                    "longDescription": "This property shall contain a boolean indicator if the Volume is currently utilizing encryption or not."
-                },
-                "EncryptionTypes": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/EncryptionTypes"
-                    },
-                    "readonly": false,
-                    "description": "The types of encryption used by this Volume.",
-                    "longDescription": "This property shall contain the types of encryption used by this Volume."
-                },
-                "Identifiers": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.v1_1_0.json#/definitions/Identifier"
-                    },
-                    "description": "The Durable names for the volume.",
-                    "longDescription": "This property shall contain a list of all known durable names for the associated volume."
-                },
-                "BlockSizeBytes": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By",
-                    "readonly": true,
-                    "description": "The size of the smallest addressible unit (Block) of this volume in bytes.",
-                    "longDescription": "This property shall contain size of the smallest addressible unit of the associated volume."
-                },
-                "Operations": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/Operations"
-                    },
-                    "description": "The operations currently running on the Volume.",
-                    "longDescription": "This property shall contain a list of all currently running on the Volume."
-                },
-                "OptimumIOSizeBytes": {
-                    "type": [
-                        "number",
-                        "null"
-                    ],
-                    "units": "By",
-                    "readonly": true,
-                    "description": "The size in bytes of this Volume's optimum IO size.",
-                    "longDescription": "This property shall contain the optimum IO size to use when performing IO on this volume. For logical disks, this is the stripe size. For physical disks, this describes the physical sector size."
-                },
-                "Links": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                            "description": "Oem extension object.",
-                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                        },
-                        "Drives@odata.count": {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
-                        },
-                        "Drives@odata.navigationLink": {
-                            "type": "string",
-                            "format": "uri"
-                        },
-                        "Drives": {
-                            "type": "array",
-                            "items": {
-                                "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
-                            },
-                            "readonly": true,
-                            "description": "An array of references to the drives which contain this volume. This will reference Drives that either wholly or only partly contain this volume.",
-                            "longDescription": "The value of this property shall be a reference to the resources that this volume is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently members of the Volume, not hot spare Drives which are not currently a member of the volume."
-                        }
-                    },
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Actions": {
-                    "type": "object",
-                    "patternProperties": {
-                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                            "type": [
-                                "array",
-                                "boolean",
-                                "number",
-                                "null",
-                                "object",
-                                "string"
-                            ],
-                            "description": "This property shall specify a valid odata or Redfish property."
-                        }
-                    },
-                    "additionalProperties": false,
-                    "properties": {
-                        "Oem": {
-                            "type": "object",
-                            "patternProperties": {
-                                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                                    "type": [
-                                        "array",
-                                        "boolean",
-                                        "number",
-                                        "null",
-                                        "object",
-                                        "string"
-                                    ],
-                                    "description": "This property shall specify a valid odata or Redfish property."
-                                }
-                            },
-                            "additionalProperties": true,
-                            "properties": {},
-                            "description": "The available OEM specific actions for this resource.",
-                            "longDescription": "This type shall contain any additional OEM actions for this resource."
-                        },
-                        "#Volume.Initialize": {
-                            "$ref": "#/definitions/Initialize"
-                        }
-                    },
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "description": "Volume contains properties used to describe a volume, virtual disk, LUN, or other logical storage entity for any system.",
-            "longDescription": "This resource shall be used to represent a volume, virtual disk, logical disk, LUN, or other logical storage for a Redfish implementation."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Volume",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Volume Schema File",
+    "Schema": "#Volume.Volume",
+    "Description": "Volume Schema File Location",
+    "Id": "Volume",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Volume.json",
+            "Uri": "/redfish/v1/JSONSchemas/Volume/Volume.json"
         }
-    },
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Zone/Zone.json b/static/redfish/v1/JsonSchemas/Zone/Zone.json
new file mode 100644
index 0000000..c3d30fd
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Zone/Zone.json
@@ -0,0 +1,200 @@
+{
+    "$ref": "#/definitions/Zone",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "Links": {
+            "additionalProperties": false,
+            "description": "Contains references to other resources that are related to this resource.",
+            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Endpoints": {
+                    "description": "Represents an array of references to the endpoints that are contained in this zone.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Endpoint.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "Endpoints@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "InvolvedSwitches": {
+                    "description": "Represents an array of references to the switches in this zone.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
+                    },
+                    "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Switch.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "InvolvedSwitches@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "Oem extension object.",
+                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
+                },
+                "ResourceBlocks": {
+                    "description": "An array of references to the Resource Blocks that are used in this Zone.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
+                    },
+                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are associated with this Zone.",
+                    "readonly": true,
+                    "type": "array"
+                },
+                "ResourceBlocks@odata.count": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Zone": {
+            "additionalProperties": false,
+            "description": "The Zone schema represents a fabric zone.",
+            "longDescription": "This resource shall be used to represent a simple zone for a Redfish implementation.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Identifiers": {
+                    "description": "Identifiers for this zone.",
+                    "items": {
+                        "anyOf": [
+                            {
+                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
+                            },
+                            {
+                                "type": "null"
+                            }
+                        ]
+                    },
+                    "longDescription": "Identifiers for this zone shall be unique in the context of other zones.",
+                    "type": "array"
+                },
+                "Links": {
+                    "$ref": "#/definitions/Links",
+                    "description": "Contains references to other resources that are related to this resource.",
+                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "Status": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        }
+    },
+    "title": "#Zone.v1_2_0.Zone"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Zone/index.json b/static/redfish/v1/JsonSchemas/Zone/index.json
index c3d30fd..5c6bafa 100644
--- a/static/redfish/v1/JsonSchemas/Zone/index.json
+++ b/static/redfish/v1/JsonSchemas/Zone/index.json
@@ -1,200 +1,21 @@
 {
-    "$ref": "#/definitions/Zone",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "Links": {
-            "additionalProperties": false,
-            "description": "Contains references to other resources that are related to this resource.",
-            "longDescription": "This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Endpoints": {
-                    "description": "Represents an array of references to the endpoints that are contained in this zone.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Endpoint.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "Endpoints@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "InvolvedSwitches": {
-                    "description": "Represents an array of references to the switches in this zone.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
-                    },
-                    "longDescription": "The value of this property shall be a reference to the resources that this zone is associated with and shall reference a resource of type Switch.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "InvolvedSwitches@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "Oem extension object.",
-                    "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
-                },
-                "ResourceBlocks": {
-                    "description": "An array of references to the Resource Blocks that are used in this Zone.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/ResourceBlock.json#/definitions/ResourceBlock"
-                    },
-                    "longDescription": "The value of this property shall be an array of references of type ResourceBlock that are associated with this Zone.",
-                    "readonly": true,
-                    "type": "array"
-                },
-                "ResourceBlocks@odata.count": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/count"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Zone": {
-            "additionalProperties": false,
-            "description": "The Zone schema represents a fabric zone.",
-            "longDescription": "This resource shall be used to represent a simple zone for a Redfish implementation.",
-            "patternProperties": {
-                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
-                    "description": "This property shall specify a valid odata or Redfish property.",
-                    "type": [
-                        "array",
-                        "boolean",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/context"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_1.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Identifiers": {
-                    "description": "Identifiers for this zone.",
-                    "items": {
-                        "anyOf": [
-                            {
-                                "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
-                            },
-                            {
-                                "type": "null"
-                            }
-                        ]
-                    },
-                    "longDescription": "Identifiers for this zone shall be unique in the context of other zones.",
-                    "type": "array"
-                },
-                "Links": {
-                    "$ref": "#/definitions/Links",
-                    "description": "Contains references to other resources that are related to this resource.",
-                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "Status": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Zone",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Zone Schema File",
+    "Schema": "#Zone.Zone",
+    "Description": "Zone Schema File Location",
+    "Id": "Zone",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Zone.json",
+            "Uri": "/redfish/v1/JSONSchemas/Zone/Zone.json"
         }
-    },
-    "title": "#Zone.v1_2_0.Zone"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/odata/index.json b/static/redfish/v1/JsonSchemas/odata/index.json
index d2c6e46..1ebfb62 100644
--- a/static/redfish/v1/JsonSchemas/odata/index.json
+++ b/static/redfish/v1/JsonSchemas/odata/index.json
@@ -1,48 +1,21 @@
 {
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
-    "definitions": {
-        "context": {
-            "type": "string",
-            "format": "uri",
-            "readonly": true,
-            "description": "The OData description of a payload.",
-            "longDescription": "The value of this property shall be the context URL that describes the resource according to OData-Protocol and shall be of the form defined in the Redfish specification."
-        },
-        "id": {
-            "type": "string",
-            "format": "uri",
-            "readonly": true,
-            "description": "The unique identifier for a resource.",
-            "longDescription": "The value of this property shall be the unique identifier for the resource and it shall be of the form defined in the Redfish specification."
-        },
-        "idRef": {
-            "type": "object",
-            "properties": {
-                "@odata.id": {
-                    "$ref": "#/definitions/id"
-                }
-            },
-            "additionalProperties": false,
-            "description": "A reference to a resource.",
-            "longDescription": "The value of this property shall be used for references to a resource."
-        },
-        "type": {
-            "type": "string",
-            "readonly": true,
-            "description": "The type of a resource.",
-            "longDescription": "The value of this property shall be an absolute URL that specifies the type of the resource and it shall be of the form defined in the Redfish specification."
-        },
-        "count": {
-            "type": "number",
-            "readonly": true,
-            "description": "The number of items in a collection.",
-            "longDescription": "The value of this property shall be an integer representing the number of items in a collection."
-        },
-        "etag": {
-            "type": "string",
-            "readonly": true,
-            "description": "The current ETag of the resource.",
-            "longDescription": "The value of this property shall be a string that is defined by the ETag HTTP header definition in RFC7232."
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/odata",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "odata Schema File",
+    "Schema": "#odata.odata",
+    "Description": "odata Schema File Location",
+    "Id": "odata",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/odata.json",
+            "Uri": "/redfish/v1/JSONSchemas/odata/odata.json"
         }
-    }
-}
+    ],
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/odata/odata.json b/static/redfish/v1/JsonSchemas/odata/odata.json
new file mode 100644
index 0000000..d2c6e46
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/odata/odata.json
@@ -0,0 +1,48 @@
+{
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_3_0.json",
+    "definitions": {
+        "context": {
+            "type": "string",
+            "format": "uri",
+            "readonly": true,
+            "description": "The OData description of a payload.",
+            "longDescription": "The value of this property shall be the context URL that describes the resource according to OData-Protocol and shall be of the form defined in the Redfish specification."
+        },
+        "id": {
+            "type": "string",
+            "format": "uri",
+            "readonly": true,
+            "description": "The unique identifier for a resource.",
+            "longDescription": "The value of this property shall be the unique identifier for the resource and it shall be of the form defined in the Redfish specification."
+        },
+        "idRef": {
+            "type": "object",
+            "properties": {
+                "@odata.id": {
+                    "$ref": "#/definitions/id"
+                }
+            },
+            "additionalProperties": false,
+            "description": "A reference to a resource.",
+            "longDescription": "The value of this property shall be used for references to a resource."
+        },
+        "type": {
+            "type": "string",
+            "readonly": true,
+            "description": "The type of a resource.",
+            "longDescription": "The value of this property shall be an absolute URL that specifies the type of the resource and it shall be of the form defined in the Redfish specification."
+        },
+        "count": {
+            "type": "number",
+            "readonly": true,
+            "description": "The number of items in a collection.",
+            "longDescription": "The value of this property shall be an integer representing the number of items in a collection."
+        },
+        "etag": {
+            "type": "string",
+            "readonly": true,
+            "description": "The current ETag of the resource.",
+            "longDescription": "The value of this property shall be a string that is defined by the ETag HTTP header definition in RFC7232."
+        }
+    }
+}
diff --git a/static/redfish/v1/JsonSchemas/redfish-schema/index.json b/static/redfish/v1/JsonSchemas/redfish-schema/index.json
index 7308bf7..4294201 100644
--- a/static/redfish/v1/JsonSchemas/redfish-schema/index.json
+++ b/static/redfish/v1/JsonSchemas/redfish-schema/index.json
@@ -1,101 +1,21 @@
 {
-    "id": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0",
-    "type": "object",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0",
-    "title": "Redfish Schema Extension",
-    "description": "The properties defined in this schema shall adhere to the requirements of the Redfish Specification and the semantics of the descriptions in this file.",
-    "allOf": [
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/redfish-schema",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "redfish-schema Schema File",
+    "Schema": "#redfish-schema.redfish-schema",
+    "Description": "redfish-schema Schema File Location",
+    "Id": "redfish-schema",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
         {
-            "$ref": "http://json-schema.org/draft-04/schema"
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/redfish-schema.json",
+            "Uri": "/redfish/v1/JSONSchemas/redfish-schema/redfish-schema.json"
         }
     ],
-    "definitions": {
-        "readonly": {
-            "type": "boolean",
-            "description": "This property shall designate a property to be readonly when set to true."
-        },
-        "requiredOnCreate": {
-            "type": "array",
-            "items": {
-                "type": "boolean"
-            },
-            "description": "This property is required to be specified in the body of a POST request to create the resource."
-        },
-        "requiredParameter": {
-            "type": "boolean",
-            "description": "This property specifies that an action parameter is required to be provided by the client as part of the action request when set to true.  Parameters not containing this property with the value of true can be left out of the client's action request."
-        },
-        "longDescription": {
-            "type": "string",
-            "description": "This attribute shall contain normative language relating to the Redfish Specification and documentation."
-        },
-        "copyright": {
-            "type": "string",
-            "description": "This attribute shall contain the copyright notice for the schema."
-        },
-        "deprecated": {
-            "type": "string",
-            "description": "The term shall be applied to a property in order to specify that the property is deprecated.  The value of the string should explain the deprecation, including new property or properties to be used. The property can be supported in new and existing implementations, but usage in new implementations is discouraged.  Deprecated properties are likely to be removed in a future major version of the schema."
-        },
-        "enumDescriptions": {
-            "type": "object",
-            "description": "This attribute shall contain informative language related to the enumeration values of the property."
-        },
-        "enumLongDescriptions": {
-            "type": "object",
-            "description": "This attribute shall contain normative language relating to the enumeration values of the property."
-        },
-        "enumDeprecated": {
-            "type": "object",
-            "description": "The term shall be applied to a value in order to specify that the value is deprecated.  The value of the string should explain the deprecation, including new value to be used.  The value can be supported in new and existing implementations, but usage in new implementations is discouraged.  Deprecated values are likely to be removed in a future major version of the schema."
-        },
-        "units": {
-            "type": "string",
-            "description": "This attribute shall contain the units of measure used by the value of the property."
-        },
-        "owningEntity": {
-            "type": "string",
-            "description": "Indicates the name of the entity responsible for development, publication and maintenance of a given schema.  Possible values include DMTF, SNIA or an OEM label such as is used in a Redfish OEM extension section."
-        }
-    },
-    "properties": {
-        "readonly": {
-            "$ref": "#/definitions/readonly"
-        },
-        "requiredOnCreate": {
-            "$ref": "#/definitions/requiredOnCreate"
-        },
-        "requiredParameter": {
-            "$ref": "#/definitions/requiredParameter"
-        },
-        "longDescription": {
-            "$ref": "#/definitions/longDescription"
-        },
-        "copyright": {
-            "$ref": "#/definitions/copyright"
-        },
-        "deprecated": {
-            "$ref": "#/definitions/deprecated"
-        },
-        "enumDescriptions": {
-            "$ref": "#/definitions/enumDescriptions"
-        },
-        "enumLongDescriptions": {
-            "$ref": "#/definitions/enumLongDescriptions"
-        },
-        "enumDeprecated": {
-            "$ref": "#/definitions/enumDeprecated"
-        },
-        "units": {
-            "$ref": "#/definitions/units"
-        },
-        "parameters": {
-            "type": "object",
-            "description": "This term shall contain parameter definitions for a given action.",
-            "additionalProperties": { "$ref": "#" }
-        },
-        "owningEntity": {
-            "$ref": "#/definitions/owningEntity"
-        }
-    }
-}
+    "Location@odata.count": 1
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json b/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json
new file mode 100644
index 0000000..7308bf7
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json
@@ -0,0 +1,101 @@
+{
+    "id": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0",
+    "type": "object",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0",
+    "title": "Redfish Schema Extension",
+    "description": "The properties defined in this schema shall adhere to the requirements of the Redfish Specification and the semantics of the descriptions in this file.",
+    "allOf": [
+        {
+            "$ref": "http://json-schema.org/draft-04/schema"
+        }
+    ],
+    "definitions": {
+        "readonly": {
+            "type": "boolean",
+            "description": "This property shall designate a property to be readonly when set to true."
+        },
+        "requiredOnCreate": {
+            "type": "array",
+            "items": {
+                "type": "boolean"
+            },
+            "description": "This property is required to be specified in the body of a POST request to create the resource."
+        },
+        "requiredParameter": {
+            "type": "boolean",
+            "description": "This property specifies that an action parameter is required to be provided by the client as part of the action request when set to true.  Parameters not containing this property with the value of true can be left out of the client's action request."
+        },
+        "longDescription": {
+            "type": "string",
+            "description": "This attribute shall contain normative language relating to the Redfish Specification and documentation."
+        },
+        "copyright": {
+            "type": "string",
+            "description": "This attribute shall contain the copyright notice for the schema."
+        },
+        "deprecated": {
+            "type": "string",
+            "description": "The term shall be applied to a property in order to specify that the property is deprecated.  The value of the string should explain the deprecation, including new property or properties to be used. The property can be supported in new and existing implementations, but usage in new implementations is discouraged.  Deprecated properties are likely to be removed in a future major version of the schema."
+        },
+        "enumDescriptions": {
+            "type": "object",
+            "description": "This attribute shall contain informative language related to the enumeration values of the property."
+        },
+        "enumLongDescriptions": {
+            "type": "object",
+            "description": "This attribute shall contain normative language relating to the enumeration values of the property."
+        },
+        "enumDeprecated": {
+            "type": "object",
+            "description": "The term shall be applied to a value in order to specify that the value is deprecated.  The value of the string should explain the deprecation, including new value to be used.  The value can be supported in new and existing implementations, but usage in new implementations is discouraged.  Deprecated values are likely to be removed in a future major version of the schema."
+        },
+        "units": {
+            "type": "string",
+            "description": "This attribute shall contain the units of measure used by the value of the property."
+        },
+        "owningEntity": {
+            "type": "string",
+            "description": "Indicates the name of the entity responsible for development, publication and maintenance of a given schema.  Possible values include DMTF, SNIA or an OEM label such as is used in a Redfish OEM extension section."
+        }
+    },
+    "properties": {
+        "readonly": {
+            "$ref": "#/definitions/readonly"
+        },
+        "requiredOnCreate": {
+            "$ref": "#/definitions/requiredOnCreate"
+        },
+        "requiredParameter": {
+            "$ref": "#/definitions/requiredParameter"
+        },
+        "longDescription": {
+            "$ref": "#/definitions/longDescription"
+        },
+        "copyright": {
+            "$ref": "#/definitions/copyright"
+        },
+        "deprecated": {
+            "$ref": "#/definitions/deprecated"
+        },
+        "enumDescriptions": {
+            "$ref": "#/definitions/enumDescriptions"
+        },
+        "enumLongDescriptions": {
+            "$ref": "#/definitions/enumLongDescriptions"
+        },
+        "enumDeprecated": {
+            "$ref": "#/definitions/enumDeprecated"
+        },
+        "units": {
+            "$ref": "#/definitions/units"
+        },
+        "parameters": {
+            "type": "object",
+            "description": "This term shall contain parameter definitions for a given action.",
+            "additionalProperties": { "$ref": "#" }
+        },
+        "owningEntity": {
+            "$ref": "#/definitions/owningEntity"
+        }
+    }
+}