{
    "$ref": "#/definitions/MemoryDomain",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2018 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": "This property contains the available OEM specific actions for this resource.",
                    "longDescription": "This property shall contain any additional OEM actions for this resource."
                }
            },
            "type": "object"
        },
        "MemoryDomain": {
            "additionalProperties": false,
            "description": "This is the schema definition of a Memory Domain and its configuration. Memory Domains are used to indicate to the client which Memory (DIMMs) can be grouped together in Memory Chunks to form interleave sets or otherwise grouped together.",
            "longDescription": "This resource shall be used to represent Memory Domains in a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                },
                "AllowsBlockProvisioning": {
                    "description": "Indicates if this Memory Domain supports the provisioning of blocks of memory.",
                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Blocks of memory.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "AllowsMemoryChunkCreation": {
                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks.",
                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "AllowsMirroring": {
                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.",
                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with mirroring enabled.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "AllowsSparing": {
                    "description": "Indicates if this Memory Domain supports the creation of Memory Chunks with sparing enabled.",
                    "longDescription": "The value of this property shall indicate if this Memory Domain supports the creation of Memory Chunks with sparing enabled.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "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
                },
                "InterleavableMemorySets": {
                    "description": "This is the interleave sets for the memory chunk.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/MemorySet"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "These properties shall represent the interleave sets for the memory chunk.",
                    "type": "array"
                },
                "MemoryChunks": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunksCollection.json#/definitions/MemoryChunksCollection"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "A reference to the collection of Memory Chunks associated with this Memory Domain.",
                    "longDescription": "The value of this property shall be a link to a collection of type MemoryChunkCollection.",
                    "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*."
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "MemorySet": {
            "additionalProperties": false,
            "description": "This is the interleave sets for a memory chunk.",
            "longDescription": "This type shall represent the interleave sets for a memory chunk.",
            "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": {
                "MemorySet": {
                    "description": "This is the collection of memory for a particular interleave set.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Memory.json#/definitions/Memory"
                    },
                    "longDescription": "The values in this collection shall be links to objects of type Memory.",
                    "readonly": true,
                    "type": "array"
                },
                "MemorySet@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count"
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM specific actions for this resource.",
            "longDescription": "This type shall contain any additional OEM 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",
    "title": "#MemoryDomain.v1_2_1.MemoryDomain"
}