{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
    "title": "#Thermal.v1_3_1.Thermal",
    "$ref": "#/definitions/Thermal",
    "definitions": {
        "ReadingUnits": {
            "type": "string",
            "enum": [
                "RPM",
                "Percent"
            ],
            "enumDescriptions": {
                "RPM": "Indicates that the fan reading and thresholds are measured in rotations per minute.",
                "Percent": "Indicates that the fan reading and thresholds are measured in percentage."
            }
        },
        "Fan": {
            "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": "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*."
                },
                "MemberId": {
                    "type": "string",
                    "readonly": true,
                    "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."
                },
                "FanName": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "deprecated": "This property has been Deprecated in favor of Thermal.v1_1_0.Thermal.Fan.Name",
                    "readonly": true,
                    "description": "Name of the fan.",
                    "longDescription": "The value of this property shall be the name of the fan."
                },
                "PhysicalContext": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.v1_0_0.json#/definitions/PhysicalContext",
                    "readonly": true,
                    "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."
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
                },
                "Reading": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "description": "Current fan speed.",
                    "longDescription": "The value of this property shall be the current value of the fan sensor's reading."
                },
                "UpperThresholdNonCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "UpperThresholdCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "UpperThresholdFatal": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "LowerThresholdNonCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "LowerThresholdCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "LowerThresholdFatal": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "MinReadingRange": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "MaxReadingRange": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "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 serviced with this fan.",
                    "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."
                },
                "Redundancy@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                },
                "Redundancy@odata.navigationLink": {
                    "type": "string",
                    "format": "uri"
                },
                "Redundancy": {
                    "type": "array",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
                    },
                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
                    "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."
                },
                "ReadingUnits": {
                    "anyOf": [
                        {"$ref": "#/definitions/ReadingUnits"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "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."
                },
                "Name": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "Name of the fan.",
                    "longDescription": "The value of this property shall be the name of the fan."
                },
                "Manufacturer": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "Model": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The model number for this Fan.",
                    "longDescription": "This property shall contain the model information as defined by the manufacturer for the associated fan."
                },
                "SerialNumber": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The serial number for this Fan.",
                    "longDescription": "This property shall contain the serial number as defined by the manufacturer for the associated fan."
                },
                "PartNumber": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "The part number for this Fan.",
                    "longDescription": "This property shall contain the part number as defined by the manufacturer for the associated fan."
                },
                "SparePartNumber": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "IndicatorLED": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.v1_1_0.json#/definitions/IndicatorLED"},
                        {"type": "null"}
                    ],
                    "readonly": false,
                    "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."
                },
                "Actions": {
                    "$ref": "#/definitions/FanActions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                }
            },
            "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."
        },
        "FanActions": {
            "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": "#/definitions/FanOemActions"
                }
            },
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource."
        },
        "FanOemActions": {
            "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."
        },
        "Temperature": {
            "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": "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*."
                },
                "MemberId": {
                    "type": "string",
                    "readonly": true,
                    "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."
                },
                "Name": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "Temperature sensor name.",
                    "longDescription": "The value of this property shall be the name of the temperature sensor."
                },
                "SensorNumber": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"
                },
                "ReadingCelsius": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "description": "Temperature.",
                    "longDescription": "The value of this property shall be the current value of the temperature sensor's reading."
                },
                "UpperThresholdNonCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "UpperThresholdCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "UpperThresholdFatal": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "LowerThresholdNonCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "LowerThresholdCritical": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "LowerThresholdFatal": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "MinReadingRangeTemp": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "MaxReadingRangeTemp": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Cel",
                    "readonly": true,
                    "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."
                },
                "PhysicalContext": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.v1_0_0.json#/definitions/PhysicalContext",
                    "readonly": true,
                    "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."
                },
                "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": "Describes the areas or devices to which this temperature measurement applies.",
                    "longDescription": "The value of this property shall the array of IDs of areas or devices to which this temperature measurement applies."
                },
                "Actions": {
                    "$ref": "#/definitions/TemperatureActions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                }
            },
            "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."
        },
        "TemperatureActions": {
            "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": "#/definitions/TemperatureOemActions"
                }
            },
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource."
        },
        "TemperatureOemActions": {
            "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."
        },
        "ThermalActions": {
            "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": "#/definitions/ThermalOemActions"
                }
            },
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource."
        },
        "ThermalOemActions": {
            "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."
        },
        "Thermal": {
            "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"
                },
                "Temperatures@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                },
                "Temperatures@odata.navigationLink": {
                    "type": "string",
                    "format": "uri"
                },
                "Temperatures": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Temperature"
                    },
                    "readonly": false,
                    "description": "This is the definition for temperature sensors.",
                    "longDescription": "These properties shall be the definition for temperature sensors for a Redfish implementation."
                },
                "Fans@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                },
                "Fans@odata.navigationLink": {
                    "type": "string",
                    "format": "uri"
                },
                "Fans": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Fan"
                    },
                    "readonly": false,
                    "description": "This is the definition for fans.",
                    "longDescription": "These properties shall be the definition for fans for a Redfish implementation."
                },
                "Redundancy@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                },
                "Redundancy@odata.navigationLink": {
                    "type": "string",
                    "format": "uri"
                },
                "Redundancy": {
                    "type": "array",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
                    },
                    "description": "This structure is used to show redundancy for fans.  The Component ids will reference the members of the redundancy groups.",
                    "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."
                },
                "Actions": {
                    "$ref": "#/definitions/ThermalActions",
                    "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 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."
        }
    },
    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
