1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/MemoryRegion.v1_0_2.json",
3    "$ref": "#/definitions/MemoryRegion",
4    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6    "definitions": {
7        "Actions": {
8            "additionalProperties": false,
9            "description": "The available actions for this resource.",
10            "longDescription": "This type shall contain the available actions for this resource.",
11            "patternProperties": {
12                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13                    "description": "This property shall specify a valid odata or Redfish property.",
14                    "type": [
15                        "array",
16                        "boolean",
17                        "integer",
18                        "number",
19                        "null",
20                        "object",
21                        "string"
22                    ]
23                }
24            },
25            "properties": {
26                "Oem": {
27                    "$ref": "#/definitions/OemActions",
28                    "description": "The available OEM-specific actions for this resource.",
29                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
30                }
31            },
32            "type": "object"
33        },
34        "MemoryChunk": {
35            "additionalProperties": false,
36            "description": "Definition of memory chunk providing capacity for memory region.",
37            "longDescription": "This type shall contain the definition of a memory chunk providing capacity for memory region.",
38            "patternProperties": {
39                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
40                    "description": "This property shall specify a valid odata or Redfish property.",
41                    "type": [
42                        "array",
43                        "boolean",
44                        "integer",
45                        "number",
46                        "null",
47                        "object",
48                        "string"
49                    ]
50                }
51            },
52            "properties": {
53                "ChunkLink": {
54                    "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryChunks.json#/definitions/MemoryChunks",
55                    "description": "The link to the memory chunk providing capacity to the memory region.",
56                    "longDescription": "This property shall contain a link to a resource of type `MemoryChunks` that provides capacity to the memory region.",
57                    "readonly": true
58                },
59                "ChunkOffsetMiB": {
60                    "description": "Offset of the memory chunk within the memory region in mebibytes (MiB).",
61                    "longDescription": "The value of this property shall be the offset of the memory chunk within the memory region in mebibytes (MiB).",
62                    "readonly": true,
63                    "type": "integer",
64                    "units": "MiBy"
65                }
66            },
67            "type": "object"
68        },
69        "MemoryExtent": {
70            "additionalProperties": false,
71            "description": "Definition of memory extent identifying an available address range in the memory region.",
72            "longDescription": "This type shall contain the definition of a memory extent identifying an available address range in the dynamic capacity memory region.",
73            "patternProperties": {
74                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
75                    "description": "This property shall specify a valid odata or Redfish property.",
76                    "type": [
77                        "array",
78                        "boolean",
79                        "integer",
80                        "number",
81                        "null",
82                        "object",
83                        "string"
84                    ]
85                }
86            },
87            "properties": {
88                "ExtentOffsetMiB": {
89                    "description": "Offset of the memory extent within the memory region in mebibytes (MiB).",
90                    "longDescription": "The value of this property shall be the offset of the memory extent within the memory region in mebibytes (MiB).",
91                    "readonly": true,
92                    "type": "integer",
93                    "units": "MiBy"
94                },
95                "ExtentSizeMiB": {
96                    "description": "Size of the memory extent in mebibytes (MiB).",
97                    "longDescription": "This property shall contain the size of the memory extent in MiB.",
98                    "readonly": true,
99                    "type": "integer",
100                    "units": "MiBy"
101                },
102                "SequenceNumber": {
103                    "description": "The memory extent sequence number.",
104                    "longDescription": "This property shall contain the sequence number instructing host on the relative order the extents have to be placed in the host adjacent virtual address space.",
105                    "readonly": true,
106                    "type": [
107                        "integer",
108                        "null"
109                    ]
110                },
111                "Tag": {
112                    "description": "The user-assigned tag of this memory extent.",
113                    "longDescription": "This property shall contain an opaque context attached to each extent to track usage of each extent or map extent to specific processes, transactions, or workloads on the host.",
114                    "readonly": true,
115                    "type": "string"
116                }
117            },
118            "type": "object"
119        },
120        "MemoryRegion": {
121            "additionalProperties": false,
122            "description": "The `MemoryRegion` schema contains the definition of a memory region and its configuration.",
123            "longDescription": "This resource shall represent a memory region in a Redfish implementation.",
124            "patternProperties": {
125                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
126                    "description": "This property shall specify a valid odata or Redfish property.",
127                    "type": [
128                        "array",
129                        "boolean",
130                        "integer",
131                        "number",
132                        "null",
133                        "object",
134                        "string"
135                    ]
136                }
137            },
138            "properties": {
139                "@odata.context": {
140                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
141                },
142                "@odata.etag": {
143                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
144                },
145                "@odata.id": {
146                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
147                },
148                "@odata.type": {
149                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
150                },
151                "Actions": {
152                    "$ref": "#/definitions/Actions",
153                    "description": "The available actions for this resource.",
154                    "longDescription": "This property shall contain the available actions for this resource."
155                },
156                "BlockSizeMiB": {
157                    "description": "The memory region block size in mebibytes (MiB).",
158                    "longDescription": "This property shall contain the memory region block size in mebibytes (MiB).  The region size, base offset, all extent sizes, and all extent base offsets shall be aligned to this block size.",
159                    "readonly": false,
160                    "type": "integer",
161                    "units": "MiBy"
162                },
163                "Description": {
164                    "anyOf": [
165                        {
166                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
167                        },
168                        {
169                            "type": "null"
170                        }
171                    ],
172                    "readonly": true
173                },
174                "ExtentsCount": {
175                    "description": "The number of extents defined for this memory region.",
176                    "longDescription": "This property shall contain the number of extents defined for this memory region.",
177                    "readonly": true,
178                    "type": [
179                        "integer",
180                        "null"
181                    ]
182                },
183                "HardwareManagedCoherencyRegion": {
184                    "description": "An indication of whether the device manages the cache coherency across hosts for this memory region.",
185                    "longDescription": "This property shall indicate whether the device manages the cache coherency across hosts and thereby ensures that each host has a consistent view of this memory region content as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification.",
186                    "readonly": true,
187                    "type": [
188                        "boolean",
189                        "null"
190                    ]
191                },
192                "Id": {
193                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
194                    "readonly": true
195                },
196                "MemoryChunks": {
197                    "description": "The set of memory chunks providing capacity for this memory region.",
198                    "items": {
199                        "anyOf": [
200                            {
201                                "$ref": "#/definitions/MemoryChunk"
202                            },
203                            {
204                                "type": "null"
205                            }
206                        ]
207                    },
208                    "longDescription": "This property shall contain the set of memory chunks providing capacity for this memory region.",
209                    "type": "array"
210                },
211                "MemoryExtents": {
212                    "description": "The set of memory extents defined for this memory region.",
213                    "items": {
214                        "anyOf": [
215                            {
216                                "$ref": "#/definitions/MemoryExtent"
217                            },
218                            {
219                                "type": "null"
220                            }
221                        ]
222                    },
223                    "longDescription": "This property shall contain the set of memory extents defining address ranges available for an access in dynamic capacity memory regions.",
224                    "type": "array"
225                },
226                "Name": {
227                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
228                    "readonly": true
229                },
230                "NonVolatileRegion": {
231                    "description": "An indication of whether this memory region represents non-volatile memory.",
232                    "longDescription": "This property shall indicate whether this memory region represents non-volatile memory as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification.",
233                    "readonly": true,
234                    "type": [
235                        "boolean",
236                        "null"
237                    ]
238                },
239                "Oem": {
240                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
241                    "description": "The OEM extension property.",
242                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
243                },
244                "RegionBaseOffsetMiB": {
245                    "description": "The offset of the memory region in the device address range in mebibytes (MiB).",
246                    "longDescription": "The value of this property shall contain the offset of the memory region in the device address range in mebibytes (MiB).",
247                    "readonly": true,
248                    "type": "integer",
249                    "units": "MiBy"
250                },
251                "RegionNumber": {
252                    "description": "The memory region number.",
253                    "longDescription": "This property shall contain the memory region number.",
254                    "readonly": true,
255                    "type": "integer"
256                },
257                "RegionSizeMiB": {
258                    "description": "The size of the memory region in mebibytes (MiB).",
259                    "longDescription": "This property shall contain the size of the memory region in mebibytes (MiB).",
260                    "readonly": true,
261                    "type": "integer",
262                    "units": "MiBy"
263                },
264                "RegionType": {
265                    "$ref": "#/definitions/RegionType",
266                    "description": "The type of memory region.",
267                    "longDescription": "This property shall contain the type of memory region.",
268                    "readonly": true
269                },
270                "SanitizeOnRelease": {
271                    "description": "An indication of whether the capacity released from this memory region will be sanitized before it is made available to any host.",
272                    "longDescription": "This property shall indicate whether the device has been configured such that capacity released from this memory region will be sanitized before it is made available to any host.",
273                    "readonly": false,
274                    "type": [
275                        "boolean",
276                        "null"
277                    ]
278                },
279                "ShareableRegion": {
280                    "description": "An indication of whether this memory region can be shared across multiple hosts.",
281                    "longDescription": "This property shall indicate whether this memory region can be shared across multiple hosts as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification.",
282                    "readonly": true,
283                    "type": [
284                        "boolean",
285                        "null"
286                    ]
287                },
288                "Status": {
289                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
290                    "description": "The status and health of the resource and its subordinate or dependent resources.",
291                    "longDescription": "This property shall contain any status or health properties of the resource."
292                }
293            },
294            "required": [
295                "RegionType",
296                "@odata.id",
297                "@odata.type",
298                "Id",
299                "Name"
300            ],
301            "type": "object"
302        },
303        "OemActions": {
304            "additionalProperties": true,
305            "description": "The available OEM-specific actions for this resource.",
306            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
307            "patternProperties": {
308                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
309                    "description": "This property shall specify a valid odata or Redfish property.",
310                    "type": [
311                        "array",
312                        "boolean",
313                        "integer",
314                        "number",
315                        "null",
316                        "object",
317                        "string"
318                    ]
319                }
320            },
321            "properties": {},
322            "type": "object"
323        },
324        "RegionType": {
325            "enum": [
326                "Static",
327                "Dynamic"
328            ],
329            "enumDescriptions": {
330                "Dynamic": "Dynamic memory region.  The address range coverage may be changed in the runtime.",
331                "Static": "Static memory region.  The whole address range is always covered by memory."
332            },
333            "type": "string"
334        }
335    },
336    "language": "en",
337    "owningEntity": "DMTF",
338    "release": "2023.2",
339    "title": "#MemoryRegion.v1_0_2.MemoryRegion"
340}