{
    "$id": "http://redfish.dmtf.org/schemas/v1/Assembly.v1_2_3.json",
    "$ref": "#/definitions/Assembly",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2019 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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this Resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this Resource."
                }
            },
            "type": "object"
        },
        "Assembly": {
            "additionalProperties": false,
            "description": "The Assembly schema defines an assembly.  Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date.  It also provides access to the original data for the assembly.",
            "longDescription": "This Resource shall represent an assembly for a Redfish implementation.  Assembly information contains details about a device, such as part number, serial number, manufacturer, and production date.  It also provides access to the original data for the assembly.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(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"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this Resource.",
                    "longDescription": "This property shall contain the available actions for this Resource."
                },
                "Assemblies": {
                    "autoExpand": true,
                    "description": "The assembly records.",
                    "items": {
                        "$ref": "#/definitions/AssemblyData"
                    },
                    "longDescription": "These properties shall define assembly records for a Redfish implementation.",
                    "readonly": false,
                    "type": "array"
                },
                "Assemblies@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.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": "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."
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "Actions": {
                    "$ref": "#/definitions/AssemblyDataActions",
                    "description": "The available actions for this Resource.",
                    "longDescription": "This property shall contain the available actions for this Resource."
                },
                "BinaryDataURI": {
                    "description": "The URI at which to access an image of the assembly information.",
                    "format": "uri-reference",
                    "longDescription": "This property shall contain the URI at which to access an image of the assembly information, using the Redfish protocol and authentication methods.  The Service provides this URI 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`.  If the service supports it, an HTTP PUT to this URI shall replace the binary image of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Description": {
                    "description": "The description of the assembly.",
                    "longDescription": "This property shall contain the description of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "EngineeringChangeLevel": {
                    "description": "The engineering change level of the assembly.",
                    "longDescription": "This property shall contain the engineering change level or revision of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "MemberId": {
                    "description": "The identifier for the member within the collection.",
                    "longDescription": "This property shall uniquely identify the member within the collection.  For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.",
                    "readonly": true,
                    "type": "string"
                },
                "Model": {
                    "description": "The model number of the assembly.",
                    "longDescription": "This property shall contain the name by which the manufacturer generally refers to the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Name": {
                    "description": "The name of the assembly.",
                    "longDescription": "This property shall contain the name of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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."
                },
                "PartNumber": {
                    "description": "The part number of the assembly.",
                    "longDescription": "This property shall contain the part number of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "PhysicalContext": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext",
                    "description": "The area or device to which the assembly data applies.",
                    "longDescription": "This property shall contain a description of the physical context for the assembly data.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "Producer": {
                    "description": "The producer or manufacturer of the assembly.",
                    "longDescription": "This property shall contain the name of the company that produced or manufactured the assembly.  This value shall be equal to the 'Manufacturer' field value in a PLDM FRU structure, if applicable, for the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "ProductionDate": {
                    "description": "The production date of the assembly.",
                    "format": "date-time",
                    "longDescription": "This property shall contain the date of production or manufacture for the assembly.  The time of day portion of the property shall be `00:00:00Z`, if the time of day is unknown.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "SKU": {
                    "description": "The SKU of the assembly.",
                    "longDescription": "This property shall contain the SKU of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "SerialNumber": {
                    "description": "The serial number of the assembly.",
                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "SparePartNumber": {
                    "description": "The spare part number of the assembly.",
                    "longDescription": "This property shall contain the spare part number of the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the Resource and its subordinate or dependent Resources.",
                    "longDescription": "This property shall contain any status or health properties of the Resource.",
                    "versionAdded": "v1_1_0"
                },
                "Vendor": {
                    "description": "The vendor of the assembly.",
                    "longDescription": "This property shall contain the name of the company that provides the final product that includes this assembly.  This value shall be equal to the 'Vendor' field value in a PLDM FRU structure, if applicable, for the assembly.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Version": {
                    "description": "The hardware version of the assembly.",
                    "longDescription": "This property shall contain the hardware version of the assembly as determined by the vendor or supplier.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "@odata.id",
                "MemberId"
            ],
            "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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Oem": {
                    "$ref": "#/definitions/AssemblyDataOemActions",
                    "description": "The available OEM-specific actions for this Resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this Resource."
                }
            },
            "type": "object"
        },
        "AssemblyDataOemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this Resource.",
            "longDescription": "This type shall contain the available OEM-specific 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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this Resource.",
            "longDescription": "This type shall contain the available OEM-specific 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",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2018.2",
    "title": "#Assembly.v1_2_3.Assembly"
}