{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
    "title": "#Resource.v1_4_0",
    "definitions": {
        "ReferenceableMember": {
            "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*."
                },
                "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."
                }
            },
            "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."
        },
        "Resource": {
            "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
                }
            },
            "required": [
                "Id",
                "Name"
            ],
            "description": "This is the base type for resources and referenceable members."
        },
        "ResourceCollection": {
            "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"
                },
                "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*."
                }
            }
        },
        "DurableNameFormat": {
            "type": "string",
            "enum": [
                "NAA",
                "iQN",
                "FC_WWN",
                "UUID",
                "EUI"
            ],
            "enumDescriptions": {
                "NAA": "Name Address Authority Format.",
                "iQN": "iSCSI Qualified Name.",
                "FC_WWN": "Fibre Channel World Wide Name.",
                "UUID": "Universally Unique Identifier.",
                "EUI": "IEEE-defined 64-bit Extended Unique Identifier."
            },
            "enumLongDescriptions": {
                "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.",
                "iQN": "This durable name shall be in the iSCSI Qualified Name format as defined in RFC 3720 and RFC 3721.",
                "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.",
                "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.",
                "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."
            }
        },
        "Identifier": {
            "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": {
                "DurableName": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "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."
                },
                "DurableNameFormat": {
                    "anyOf": [
                        {"$ref": "#/definitions/DurableNameFormat"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "This represents the format of the DurableName property.",
                    "longDescription": "This property shall represent the format of the DurableName property."
                }
            },
            "readonly": true,
            "description": "This type describes any additional identifiers for a resource.",
            "longDescription": "This type shall contain any additional identifiers of a resource."
        },
        "IndicatorLED": {
            "type": "string",
            "enum": [
                "Lit",
                "Blinking",
                "Off"
            ],
            "enumDescriptions": {
                "Lit": "The Indicator LED is lit.",
                "Blinking": "The Indicator LED is blinking.",
                "Off": "The Indicator LED is off."
            }
        },
        "PowerState": {
            "type": "string",
            "enum": [
                "On",
                "Off",
                "PoweringOn",
                "PoweringOff"
            ],
            "enumDescriptions": {
                "On": "The state is powered On.",
                "Off": "The state is powered Off.",
                "PoweringOn": "A temporary state between Off and On.",
                "PoweringOff": "A temporary state between On and Off."
            }
        },
        "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": {
                "Info": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "This indicates the location of the resource.",
                    "longDescription": "This property shall represent the location of the resource."
                },
                "InfoFormat": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": true,
                    "description": "This represents the format of the Info property.",
                    "longDescription": "This property shall represent the format of the Info property."
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem"
                },
                "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."
                },
                "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."
                }
            },
            "description": "The location of a resource.",
            "longDescription": "Instances shall describe a location for a resource. For more information see RFC5139. Depending on use, the instance may represent a past, current, or future location.",
            "readonly": true
        },
        "Placement": {
            "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": {
                "Row": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Name of row.",
                    "longDescription": "The value shall be the name of the row."
                },
                "Rack": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Name of a rack location within a row.",
                    "longDescription": "The value shall be the name of the rack within a row."
                },
                "RackOffsetUnits": {
                    "anyOf": [
                        {"$ref": "#/definitions/RackUnits"},
                        {"type": "null"}
                    ],
                    "readonly": false,
                    "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."
                },
                "RackOffset": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                }
            },
            "description": "The placement within the addressed location.",
            "longDescription": "The value shall describe a location within a resource.  Examples include a shelf in a rack."
        },
        "PostalAddress": {
            "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": {
                "Country": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Country.",
                    "longDescription": "The value shall conform the requirements of the Country field as defined in RFC5139."
                },
                "Territory": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "District": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "City": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "Division": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "Neighborhood": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "LeadingStreetDirection": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "Street": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "TrailingStreetSuffix": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "StreetSuffix": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "HouseNumber": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "HouseNumberSuffix": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "Landmark": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Location": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Floor": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Name": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Name.",
                    "longDescription": "The value shall conform the requirements of the NAM field as defined in RFC5139.  It is used to name the occupant."
                },
                "PostalCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "Building": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Unit": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Room": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Seat": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "PlaceType": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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,...)."
                },
                "Community": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "POBox": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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)."
                },
                "AdditionalCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Additional code.",
                    "longDescription": "The value shall conform the requirements of the ADDCODE field as defined in RFC5139."
                },
                "Road": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "RoadSection": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "RoadBranch": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "RoadSubBranch": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Road sub branch.",
                    "longDescription": "The value shall conform the requirements of the RDSUBBR field as defined in RFC5139."
                },
                "RoadPreModifier": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Road pre-modifier.",
                    "longDescription": "The value shall conform the requirements of the PRM field as defined in RFC5139.  (Old, New)."
                },
                "RoadPostModifier": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "description": "Road post-modifier.",
                    "longDescription": "The value shall conform the requirements of the POM field as defined in RFC5139.  (Extended)."
                },
                "GPSCoords": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                }
            },
            "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."
        },
        "RackUnits": {
            "type": "string",
            "enum": [
                "OpenU",
                "EIA_310"
            ],
            "enumDescriptions": {
                "OpenU": "Defines a rack unit as being equal to 48 mm (1.89 in).",
                "EIA_310": "Defines a rack unit as being equal to 1.75 in (44.45 mm)."
            },
            "enumLongDescriptions": {
                "OpenU": "Rack units shall be specifie3d in terms of the Open Compute Open Rack specification.",
                "EIA_310": "Rack units shall be specified as defined by the EIA-310 standard."
            },
            "description": "Defines a rack unit.",
            "longDescription": "Enumeration literals shall name the type of rack units in use."
        }
    },
    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
