{
    "$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": {
        "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"
                },
                "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"
        },
        "ParamType": {
            "enum": [
                "string",
                "number"
            ],
            "enumDescriptions": {
                "number": "The parameter is a number.",
                "string": "The parameter is a string."
            },
            "type": "string"
        }
    },
    "title": "#MessageRegistry.v1_0_5.MessageRegistry"
}