1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/Redundancy.v1_5_0.json",
3    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
4    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
5    "definitions": {
6        "Actions": {
7            "additionalProperties": false,
8            "description": "The available actions for this resource.",
9            "longDescription": "This type shall contain the available actions for this resource.",
10            "patternProperties": {
11                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
12                    "description": "This property shall specify a valid odata or Redfish property.",
13                    "type": [
14                        "array",
15                        "boolean",
16                        "integer",
17                        "number",
18                        "null",
19                        "object",
20                        "string"
21                    ]
22                }
23            },
24            "properties": {
25                "Oem": {
26                    "$ref": "#/definitions/OemActions",
27                    "description": "The available OEM-specific actions for this resource.",
28                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
29                    "versionAdded": "v1_2_0"
30                }
31            },
32            "type": "object"
33        },
34        "OemActions": {
35            "additionalProperties": true,
36            "description": "The available OEM-specific actions for this resource.",
37            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
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            "type": "object"
54        },
55        "Redundancy": {
56            "additionalProperties": false,
57            "description": "The common redundancy definition and structure used in other Redfish schemas.",
58            "longDescription": "This object represents the redundancy element property.",
59            "patternProperties": {
60                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
61                    "description": "This property shall specify a valid odata or Redfish property.",
62                    "type": [
63                        "array",
64                        "boolean",
65                        "integer",
66                        "number",
67                        "null",
68                        "object",
69                        "string"
70                    ]
71                }
72            },
73            "properties": {
74                "@odata.id": {
75                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
76                },
77                "Actions": {
78                    "$ref": "#/definitions/Actions",
79                    "description": "The available actions for this resource.",
80                    "longDescription": "This property shall contain the available actions for this resource.",
81                    "versionAdded": "v1_2_0"
82                },
83                "MaxNumSupported": {
84                    "description": "The maximum number of members allowable for this particular redundancy group.",
85                    "longDescription": "This property shall contain the maximum number of members allowed in the redundancy group.",
86                    "readonly": true,
87                    "type": [
88                        "integer",
89                        "null"
90                    ]
91                },
92                "MemberId": {
93                    "description": "The unique identifier for the member within an array.",
94                    "longDescription": "This property shall contain the unique identifier for this member within an array.  For services supporting Redfish v1.6 or higher, this value shall contain the zero-based array index.",
95                    "readonly": true,
96                    "type": "string"
97                },
98                "MinNumNeeded": {
99                    "description": "The minimum number of members needed for this group to be redundant.",
100                    "longDescription": "This property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.",
101                    "readonly": true,
102                    "type": [
103                        "integer",
104                        "null"
105                    ]
106                },
107                "Mode": {
108                    "anyOf": [
109                        {
110                            "$ref": "#/definitions/RedundancyMode"
111                        },
112                        {
113                            "type": "null"
114                        }
115                    ],
116                    "description": "The redundancy mode of the group.",
117                    "longDescription": "This property shall contain the information about the redundancy mode of this subsystem.",
118                    "readonly": false
119                },
120                "Name": {
121                    "description": "The name of the resource or array member.",
122                    "longDescription": "This object represents the name of this resource or array member.  The resource values shall comply with the Redfish Specification-described requirements.  This string value shall be of the 'Name' reserved word format.",
123                    "readonly": true,
124                    "type": "string"
125                },
126                "Oem": {
127                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
128                    "description": "The OEM extension property.",
129                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
130                },
131                "RedundancyEnabled": {
132                    "description": "An indication of whether redundancy is enabled.",
133                    "longDescription": "This property shall indicate whether the redundancy is enabled.",
134                    "readonly": false,
135                    "type": [
136                        "boolean",
137                        "null"
138                    ],
139                    "versionAdded": "v1_1_0"
140                },
141                "RedundancySet": {
142                    "description": "The links to components of this redundancy set.",
143                    "items": {
144                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
145                    },
146                    "longDescription": "This property shall contain the links to components that are part of this redundancy set.",
147                    "readonly": true,
148                    "type": "array"
149                },
150                "RedundancySet@odata.count": {
151                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
152                },
153                "Status": {
154                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
155                    "description": "The status and health of the resource and its subordinate or dependent resources.",
156                    "longDescription": "This property shall contain any status or health properties of the resource."
157                }
158            },
159            "required": [
160                "Name",
161                "Mode",
162                "MinNumNeeded",
163                "Status",
164                "RedundancySet",
165                "@odata.id",
166                "MemberId"
167            ],
168            "type": "object"
169        },
170        "RedundancyMode": {
171            "enum": [
172                "Failover",
173                "N+m",
174                "Sharing",
175                "Sparing",
176                "NotRedundant"
177            ],
178            "enumDescriptions": {
179                "Failover": "Failure of one unit automatically causes a standby or offline unit in the redundancy set to take over its functions.",
180                "N+m": "Multiple units are available and active such that normal operation will continue if one or more units fail.",
181                "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.",
182                "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.",
183                "Sparing": "One or more spare units are available to take over the function of a failed unit, but takeover is not automatic."
184            },
185            "enumVersionAdded": {
186                "NotRedundant": "v1_3_0"
187            },
188            "type": "string"
189        },
190        "RedundancyType": {
191            "enum": [
192                "Failover",
193                "NPlusM",
194                "Sharing",
195                "Sparing",
196                "NotRedundant"
197            ],
198            "enumDescriptions": {
199                "Failover": "Failure of one unit automatically causes a standby or offline unit in the redundancy set to take over its functions.",
200                "NPlusM": "Multiple units are available and active such that normal operation will continue if one or more units fail.",
201                "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.",
202                "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.",
203                "Sparing": "One or more spare units are available to take over the function of a failed unit, but takeover is not automatic."
204            },
205            "enumLongDescriptions": {
206                "Failover": "This value shall indicate that a failure of one unit automatically causes a standby or offline unit in the redundancy set to take over its functions.",
207                "NPlusM": "This value shall indicate that the capacity or services provided by the set of N+M devices can withstand failure of up to M units, with all units in the group normally providing capacity or service."
208            },
209            "type": "string"
210        },
211        "RedundantGroup": {
212            "additionalProperties": false,
213            "description": "The redundancy information for the devices in a redundancy group.",
214            "longDescription": "This type shall contain redundancy information for the set of devices in this redundancy group.",
215            "patternProperties": {
216                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
217                    "description": "This property shall specify a valid odata or Redfish property.",
218                    "type": [
219                        "array",
220                        "boolean",
221                        "integer",
222                        "number",
223                        "null",
224                        "object",
225                        "string"
226                    ]
227                }
228            },
229            "properties": {
230                "GroupName": {
231                    "description": "The name of the redundant group.",
232                    "longDescription": "This property shall contain the name of the redundant group used to identify the particular group of redundant resources.  The value shall conform with the 'Name' clause of the Redfish Specification.",
233                    "readonly": true,
234                    "type": "string",
235                    "versionAdded": "v1_5_0"
236                },
237                "MaxSupportedInGroup": {
238                    "description": "The maximum number of devices supported in this redundancy group.",
239                    "longDescription": "This property shall contain the maximum number of devices allowed in the redundancy group.",
240                    "readonly": true,
241                    "type": [
242                        "integer",
243                        "null"
244                    ],
245                    "versionAdded": "v1_4_0"
246                },
247                "MinNeededInGroup": {
248                    "description": "The minimum number of devices needed for this group to be redundant.",
249                    "longDescription": "This property shall contain the minimum number of functional devices needed in the redundancy group for the current redundancy mode to be fault tolerant.",
250                    "readonly": true,
251                    "type": [
252                        "integer",
253                        "null"
254                    ],
255                    "versionAdded": "v1_4_0"
256                },
257                "RedundancyGroup": {
258                    "description": "The links to the devices included in this redundancy group.",
259                    "items": {
260                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
261                    },
262                    "longDescription": "This property shall contain the links to the resources that represent the devices that are part of this redundancy group.",
263                    "readonly": true,
264                    "type": "array",
265                    "versionAdded": "v1_4_0"
266                },
267                "RedundancyGroup@odata.count": {
268                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
269                },
270                "RedundancyType": {
271                    "anyOf": [
272                        {
273                            "$ref": "#/definitions/RedundancyType"
274                        },
275                        {
276                            "type": "null"
277                        }
278                    ],
279                    "description": "The redundancy mode of the group.",
280                    "longDescription": "This property shall contain the information about the redundancy mode of this redundancy group.",
281                    "readonly": false,
282                    "versionAdded": "v1_4_0"
283                },
284                "Status": {
285                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
286                    "description": "The status and health of the resource and its subordinate or dependent resources.",
287                    "longDescription": "This property shall contain any status or health properties of the resource.",
288                    "versionAdded": "v1_4_0"
289                }
290            },
291            "required": [
292                "RedundancyType",
293                "MinNeededInGroup",
294                "Status",
295                "RedundancyGroup"
296            ],
297            "type": "object"
298        }
299    },
300    "language": "en",
301    "owningEntity": "DMTF",
302    "release": "2024.4",
303    "title": "#Redundancy.v1_5_0"
304}