1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/Redundancy.v1_4_2.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                "MaxSupportedInGroup": {
231                    "description": "The maximum number of devices supported in this redundancy group.",
232                    "longDescription": "This property shall contain the maximum number of devices allowed in the redundancy group.",
233                    "readonly": true,
234                    "type": [
235                        "integer",
236                        "null"
237                    ],
238                    "versionAdded": "v1_4_0"
239                },
240                "MinNeededInGroup": {
241                    "description": "The minimum number of devices needed for this group to be redundant.",
242                    "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.",
243                    "readonly": true,
244                    "type": [
245                        "integer",
246                        "null"
247                    ],
248                    "versionAdded": "v1_4_0"
249                },
250                "RedundancyGroup": {
251                    "description": "The links to the devices included in this redundancy group.",
252                    "items": {
253                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
254                    },
255                    "longDescription": "This property shall contain the links to the resources that represent the devices that are part of this redundancy group.",
256                    "readonly": true,
257                    "type": "array",
258                    "versionAdded": "v1_4_0"
259                },
260                "RedundancyGroup@odata.count": {
261                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
262                },
263                "RedundancyType": {
264                    "anyOf": [
265                        {
266                            "$ref": "#/definitions/RedundancyType"
267                        },
268                        {
269                            "type": "null"
270                        }
271                    ],
272                    "description": "The redundancy mode of the group.",
273                    "longDescription": "This property shall contain the information about the redundancy mode of this redundancy group.",
274                    "readonly": false,
275                    "versionAdded": "v1_4_0"
276                },
277                "Status": {
278                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
279                    "description": "The status and health of the resource and its subordinate or dependent resources.",
280                    "longDescription": "This property shall contain any status or health properties of the resource.",
281                    "versionAdded": "v1_4_0"
282                }
283            },
284            "required": [
285                "RedundancyType",
286                "MinNeededInGroup",
287                "Status",
288                "RedundancyGroup"
289            ],
290            "type": "object"
291        }
292    },
293    "language": "en",
294    "owningEntity": "DMTF",
295    "release": "2020.4",
296    "title": "#Redundancy.v1_4_2"
297}