{
    "$id": "http://redfish.dmtf.org/schemas/v1/Redundancy.v1_3_3.json",
    "$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": "This property contains the available OEM specific actions for this resource.",
                    "longDescription": "This property shall contain any additional OEM actions for this resource.",
                    "versionAdded": "v1_2_0"
                }
            },
            "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"
        },
        "Redundancy": {
            "additionalProperties": false,
            "description": "This is the redundancy definition to be used in other resource schemas.",
            "longDescription": "This object represents the Redundancy element property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification.  The value of this string shall be of the format for the reserved word *Redundancy*.",
            "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/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource.",
                    "versionAdded": "v1_2_0"
                },
                "MaxNumSupported": {
                    "description": "This is the maximum number of members allowable for this particular redundancy group.",
                    "longDescription": "The value of this property shall contain the maximum number of members allowed in the redundancy group.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "MemberId": {
                    "description": "This is the identifier for the member within the collection.",
                    "longDescription": "The value of this string shall uniquely identify the member within the collection.  For services supporting Redfish v1.6 or higher, this value shall be the zero-based array index.",
                    "readonly": true,
                    "type": "string"
                },
                "MinNumNeeded": {
                    "description": "This is the minumum number of members needed for this group to be redundant.",
                    "longDescription": "The value of this property shall contain the minimum number of members allowed in the redundancy group for the current redundancy mode to still be fault tolerant.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Mode": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/RedundancyMode"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This is the redundancy mode of the group.",
                    "longDescription": "The value of this property shall contain the information about the redundancy mode of this subsystem.",
                    "readonly": false
                },
                "Name": {
                    "description": "The name of the resource or array element.",
                    "longDescription": "This object represents the Name property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification. The value of this string shall be of the format for the reserved word *Name*.",
                    "readonly": true,
                    "type": "string"
                },
                "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*."
                },
                "RedundancyEnabled": {
                    "description": "This indicates whether redundancy is enabled.",
                    "longDescription": "The value of this property shall be a boolean indicating whether the redundancy is enabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_1_0"
                },
                "RedundancySet": {
                    "description": "Contains any ids that represent components of this redundancy set.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
                    },
                    "longDescription": "The value of this property shall contain the ids of components that are part of this redundancy set. The id values may or may not be dereferenceable.",
                    "readonly": true,
                    "type": "array"
                },
                "RedundancySet@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "This property describes the status and health of the resource and its children.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                }
            },
            "required": [
                "Name",
                "Mode",
                "MinNumNeeded",
                "Status",
                "RedundancySet",
                "@odata.id",
                "MemberId"
            ],
            "type": "object"
        },
        "RedundancyMode": {
            "enum": [
                "Failover",
                "N+m",
                "Sharing",
                "Sparing",
                "NotRedundant"
            ],
            "enumDescriptions": {
                "Failover": "Failure of one unit will automatically cause its functions to be taken over by a standby or offline unit in the redundancy set.",
                "N+m": "Multiple units are available and active such that normal operation will continue if one or more units fail.",
                "NotRedundant": "The subsystem is not configured in a redundancy mode, either due to configuration or the functionality has been disabled by the user.",
                "Sharing": "Multiple units contribute or share such that operation will continue, but at a reduced capacity, if one or more units fail.",
                "Sparing": "One or more spare units are available to take over the function of a failed unit, but takeover is not automatic."
            },
            "enumVersionAdded": {
                "NotRedundant": "v1_3_0"
            },
            "type": "string"
        }
    },
    "owningEntity": "DMTF",
    "release": "2017.3",
    "title": "#Redundancy.v1_3_3"
}