{
    "$id": "http://redfish.dmtf.org/schemas/v1/JsonSchemaFile.v1_0_9.json",
    "$ref": "#/definitions/JsonSchemaFile",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "JsonSchemaFile": {
            "additionalProperties": false,
            "description": "The `JsonSchemaFile` schema contains the properties that describe the locations, as URIs, of a Redfish schema definition that a Redfish service implements or references.",
            "longDescription": "This resource shall represent the schema file locator 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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.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
                },
                "Languages": {
                    "description": "The RFC5646-conformant language codes for the available schemas.",
                    "items": {
                        "type": "string"
                    },
                    "longDescription": "This property contains a set of RFC5646-conformant language codes.",
                    "readonly": true,
                    "type": "array"
                },
                "Location": {
                    "description": "Location information for this schema file.",
                    "items": {
                        "$ref": "#/definitions/Location"
                    },
                    "longDescription": "This property shall contain the location information for this schema file.",
                    "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": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "Schema": {
                    "description": "The `@odata.type` name this schema describes.",
                    "longDescription": "This property shall contain the `@odata.type` property value for that schema and shall conform to the Redfish Specification-specified syntax for the 'Type' property.",
                    "readonly": true,
                    "type": "string"
                }
            },
            "required": [
                "Languages",
                "Schema",
                "Location",
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "Location": {
            "additionalProperties": false,
            "description": "Location information for a schema file.",
            "longDescription": "This type shall describe location information for a schema file.",
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "ArchiveFile": {
                    "description": "The name of the file in the archive, if the schema is hosted on the service in an archive file.",
                    "longDescription": "This property shall contain the file name of the individual schema file within the archive file that the `ArchiveUri` property specifies.  The file name shall conform to the Redfish Specification-described format.",
                    "readonly": true,
                    "type": "string"
                },
                "ArchiveUri": {
                    "description": "The link to an archive file, if the schema is hosted on the service in an archive file.",
                    "format": "uri-reference",
                    "longDescription": "This property shall contain a URI colocated with the Redfish service that specifies the location of the schema file, which can be retrieved using the Redfish protocol and authentication methods.  This property shall be used for only archive files, in zip or other formats.  The `ArchiveFile` value shall be the individual schema file name within the archive file.",
                    "readonly": true,
                    "type": "string"
                },
                "Language": {
                    "description": "The language code for the schema file.",
                    "longDescription": "This property shall contain an RFC5646-conformant language code or the `default` string.",
                    "readonly": true,
                    "type": "string"
                },
                "PublicationUri": {
                    "description": "The link to publicly available (canonical) URI for schema.",
                    "format": "uri-reference",
                    "longDescription": "This property shall contain a URI not colocated with the Redfish service that specifies the canonical location of the schema file.  This property shall be used for only individual schema files.",
                    "readonly": true,
                    "type": "string"
                },
                "Uri": {
                    "description": "The link to locally available URI for schema.",
                    "format": "uri-reference",
                    "longDescription": "This property shall contain a URI colocated with the Redfish service that specifies the location of the schema file, which can be retrieved using the Redfish protocol and authentication methods.  This property shall be used for only individual schema files.  The file name portion of the URI shall conform to the format specified in the Redfish Specification.",
                    "readonly": true,
                    "type": "string"
                }
            },
            "type": "object"
        }
    },
    "language": "en",
    "owningEntity": "DMTF",
    "release": "1.0",
    "title": "#JsonSchemaFile.v1_0_9.JsonSchemaFile"
}