{
    "$id": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePool.v1_9_2.json",
    "$ref": "#/definitions/StoragePool",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2015-2026 Storage Networking Industry Association (SNIA), USA. All rights reserved.",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "The Actions property 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": {
                "#StoragePool.AddDrives": {
                    "$ref": "#/definitions/AddDrives"
                },
                "#StoragePool.RemoveDrives": {
                    "$ref": "#/definitions/RemoveDrives"
                },
                "#StoragePool.SetCompressionState": {
                    "$ref": "#/definitions/SetCompressionState"
                },
                "#StoragePool.SetDeduplicationState": {
                    "$ref": "#/definitions/SetDeduplicationState"
                },
                "#StoragePool.SetEncryptionState": {
                    "$ref": "#/definitions/SetEncryptionState"
                },
                "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_3_0"
                }
            },
            "type": "object"
        },
        "AddDrives": {
            "additionalProperties": false,
            "description": "This action is used to add an additional drive, or set of drives, to a capacity source for the storage pool.",
            "longDescription": "This action shall be used to add a drive, or set of drives, to an underlying capacity source for the storage pool.",
            "parameters": {
                "CapacitySource": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Capacity.json#/definitions/CapacitySource",
                    "description": "The capacity source to be extended.",
                    "longDescription": "This parameter shall contain the target capacity source for the drive(s). This property does not need to be specified if the storage pool only contains one capacity source, or if the implementation is capable of automatically selecting the appropriate capacity source."
                },
                "Drives": {
                    "description": "The drive(s) to be added.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
                    },
                    "longDescription": "This parameter shall contain the Uri to the existing drive or drives to be added to a capacity source of the storage pool. The implementation may impose restrictions on the number of drives added simultaneously.",
                    "requiredParameter": true,
                    "type": "array"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "EndGrpLifetime": {
            "additionalProperties": false,
            "description": "This contains properties the Endurance Group Lifetime attributes.",
            "longDescription": "This contains properties for the Endurance Group Lifetime attributes.",
            "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": {
                "DataUnitsRead": {
                    "description": "The property contains the total number of data units read from this endurance group.",
                    "longDescription": "The property shall contain the total number of data units read from this endurance group. This value does not include controller reads due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "DataUnitsWritten": {
                    "description": "The property contains the total number of data units written from this endurance group.",
                    "longDescription": "The property shall contain the total number of data units written from this endurance group. This value does not include controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "EnduranceEstimate": {
                    "description": "This property contains an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1.",
                    "longDescription": "This property shall contain an estimate of the total number of data bytes that may be written to the Endurance Group over the lifetime of the Endurance Group assuming a write amplication of 1.  The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates endurance estimates are unsupported.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "ErrorInformationLogEntryCount": {
                    "description": "This property contains the number of error information log entries over the life of the controller for the endurance group.",
                    "longDescription": "This property shall contain the number of error information log entries over the life of the controller for the endurance group.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "HostReadCommandCount": {
                    "description": "This property contains the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group.",
                    "longDescription": "This property shall contain the number of read commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and read commands.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "HostWriteCommandCount": {
                    "description": "This property contains the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group.",
                    "longDescription": "This property shall contain the number of write commands completed by all controllers in the NVM subsystem for the Endurance Group. For the NVM command set, the is the number of compare commands and write commands.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "MediaAndDataIntegrityErrorCount": {
                    "description": "This property contains the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group.",
                    "longDescription": "This property shall contain the number of occurences where the controller detected an unrecovered data integrity error for the Endurance Group. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "MediaUnitsWritten": {
                    "description": "The property contains the total number of data units written from this endurance group.",
                    "longDescription": "The property shall contain the total number of data units written from this endurance group. This value includes host and controller writes due to internal operations such as garbage collection. The value is reported in billions, where a value of 1 corresponds to 1 billion bytes written, and is rounded up. A value of zero indicates the property is unsupported.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "PercentUsed": {
                    "description": "A vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life.",
                    "longDescription": "This property shall contain a vendor-specific estimate of the percent life used for the endurance group based on the actual usage and the manufacturer prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the Endurance Group has been consumed, but may not indicate an NVM failure. According to the NVMe and JEDEC specs, the value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                }
            },
            "type": "object"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links object contains the links to other resources that are related to this resource.",
            "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), 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": {
                "DedicatedSpareDrives": {
                    "description": "An array of references to the drives which are dedicated spares for this StoragePool.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
                    },
                    "longDescription": "The value of this property shall be a reference to the resources that this StoragePool is associated with and shall reference resources of type Drive. This property shall only contain references to Drive entities which are currently assigned as a dedicated spare and are able to support this StoragePool.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_2_0"
                },
                "DedicatedSpareDrives@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "DefaultClassOfService": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/ClassOfService.json#/definitions/ClassOfService",
                    "deprecated": "Default ClassOfService moved from Links to NavigationProperty.",
                    "description": "The default class of service for entities allocated from this storage pool.",
                    "longDescription": "If present, this property shall reference the default class of service for entities allocated from this storage pool.  If the ClassesOfService collection is not empty, then the value of this property shall be one of its entries. If not present, the default class of service of the containing StorageService entity shall be used.",
                    "readonly": false
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                },
                "OwningStorageResource": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage",
                    "description": "A pointer to the Storage resource that owns or contains this StoragePool.",
                    "longDescription": "This shall be a pointer to the Storage resource that owns or contains this StoragePool.",
                    "readonly": true,
                    "versionAdded": "v1_4_0"
                },
                "SpareResourceSets": {
                    "description": "An array of references to SpareResourceSets.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/SpareResourceSet.json#/definitions/SpareResourceSet"
                    },
                    "longDescription": "Each referenced SpareResourceSet shall contain resources that may be utilized to replace the capacity provided by a failed resource having a compatible type.",
                    "readonly": false,
                    "type": "array",
                    "versionAdded": "v1_2_0"
                },
                "SpareResourceSets@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                }
            },
            "type": "object"
        },
        "NVMeEnduranceGroupProperties": {
            "additionalProperties": false,
            "description": "This contains properties to use when StoragePool is used to describe an NVMe Endurance Group.",
            "longDescription": "This contains properties to use when StoragePool is used to describe an NVMe Endurance Group.",
            "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": {
                "EndGrpLifetime": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/EndGrpLifetime"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This property contains the Endurance Group Lifetime properties.",
                    "longDescription": "This property shall contain any Endurance Group Lifetime properties.",
                    "versionAdded": "v1_4_0"
                },
                "PredictedMediaLifeLeftPercent": {
                    "description": "The percentage of reads and writes that are predicted to be available for the media.",
                    "longDescription": "This property shall contain an indicator of the percentage of life remaining in the drive's media.",
                    "readonly": true,
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "%",
                    "versionAdded": "v1_4_0"
                }
            },
            "type": "object"
        },
        "NVMeProperties": {
            "additionalProperties": false,
            "description": "This contains properties to use when StoragePool is used to describe an NVMe construct.",
            "longDescription": "This contains properties to use when StoragePool is used to describe an NVMe construct.",
            "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": {
                "NVMePoolType": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePool.json#/definitions/NVMePoolType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Indicates whether the StoragePool is used as an EnduranceGroup or an NVMSet.",
                    "longDescription": "This property shall indicate whether the StoragePool is used as an EnduranceGroup or an NVMSet.",
                    "readonly": true,
                    "versionAdded": "v1_6_0"
                }
            },
            "type": "object"
        },
        "NVMeSetProperties": {
            "additionalProperties": false,
            "description": "This contains properties to use when StoragePool is used to describe an NVMe Set.",
            "longDescription": "This contains properties to use when StoragePool is used to describe an NVMe Set.",
            "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": {
                "EnduranceGroupIdentifier": {
                    "description": "A 16-bit hex value that contains the endurance group identifier.",
                    "longDescription": "This property shall contain a 16-bit hex value that contains the endurance group identifier.  The endurance group identifier is unique within a subsystem.  Reserved values include 0.",
                    "pattern": "^0[xX](([a-fA-F]|[0-9])*)$",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "OptimalWriteSizeBytes": {
                    "description": "This property contains the Optimal Write Size in Bytes for this NVMe Set.",
                    "longDescription": "This property shall contain the Optimal Write Size in Bytes for this NVMe Set.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "By",
                    "versionAdded": "v1_4_0"
                },
                "Random4kReadTypicalNanoSeconds": {
                    "description": "Indicates the typical time to complete a 4k read in 100 nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set.",
                    "longDescription": "This property shall contain the typical time to complete a 4k read in 100 nano-second units when the NVM Set is in a Predictable Latency Mode Deterministic Window and there is 1 outstanding command per NVM Set.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "SetIdentifier": {
                    "description": "A 16-bit hex value that contains the NVMe Set group identifier.",
                    "longDescription": "This property shall contain a 16-bit hex value that contains the NVMe Set group identifier. The NVM Set identifier is unique within a subsystem. Reserved values include 0.",
                    "pattern": "^0[xX](([a-fA-F]|[0-9])*)$",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_4_0"
                },
                "UnallocatedNVMNamespaceCapacityBytes": {
                    "description": "Indicates the unallocated capacity of the NVMe Set in bytes.",
                    "longDescription": "This property shall contain the unallocated capacity of the NVMe Set in bytes.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "By",
                    "versionAdded": "v1_4_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"
        },
        "RemoveDrives": {
            "additionalProperties": false,
            "description": "This action is used to remove drive(s) from the capacity source for the StoragePool.",
            "longDescription": "This action shall be used to remove a drive from the StoragePool. This action is targeted at a graceful drive removal process, such as initiating a drive cleanup and data reallocation before drive removal from the pool. The implementation may impose restrictions on the number of drives removed simultaneously.",
            "parameters": {
                "Drives": {
                    "description": "The drive(s) to be removed.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
                    },
                    "longDescription": "This parameter shall contain the Uri to the drive or drives to be removed from the underlying capacity source.",
                    "requiredParameter": true,
                    "type": "array"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "SetCompressionState": {
            "additionalProperties": false,
            "description": "This action is used to set the compression state of the pool.",
            "longDescription": "This action shall be used to set the compression state of the storage pool. This may be both a highly impactful, as well as a long running operation.",
            "parameters": {
                "Enable": {
                    "description": "This property indicates the desired compression state of the storage pool.",
                    "longDescription": "This property shall indicate the desired compression state of the storage pool.",
                    "requiredParameter": true,
                    "type": "boolean"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "SetDeduplicationState": {
            "additionalProperties": false,
            "description": "This action is used to set the dedupe state of the pool.",
            "longDescription": "This action shall be used to set the dedupe state of the storage pool. This may be both a highly impactful, as well as a long running operation.",
            "parameters": {
                "Enable": {
                    "description": "This property indicates the desired deduplication state of the storage pool.",
                    "longDescription": "This property shall indicate the desired deduplication state of the storage pool.",
                    "requiredParameter": true,
                    "type": "boolean"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "SetEncryptionState": {
            "additionalProperties": false,
            "description": "This action is used to set the encryption state of the pool.",
            "longDescription": "This action shall be used to set the encryption state of the storage pool. This may be both a highly impactful, as well as a long running operation.",
            "parameters": {
                "Enable": {
                    "description": "This property indicates the desired encryption state of the storage pool.",
                    "longDescription": "This property shall indicate the desired encryption state of the storage pool.",
                    "requiredParameter": true,
                    "type": "boolean"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "StoragePool": {
            "additionalProperties": false,
            "description": "A container of data storage.",
            "longDescription": "A container of data storage capable of providing capacity conforming to one of its supported classes of service. The storage pool does not support IO to its data storage.",
            "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.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.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.",
                    "versionAdded": "v1_3_0"
                },
                "AllocatedPools": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePoolCollection.json#/definitions/StoragePoolCollection",
                    "description": "A reference to the collection of storage pools allocated from this storage pool.",
                    "longDescription": "The value of this property shall contain a reference to the collection of storage pools allocated from this storage pool.",
                    "readonly": true
                },
                "AllocatedVolumes": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/VolumeCollection.json#/definitions/VolumeCollection",
                    "description": "A reference to the collection of volumes allocated from this storage pool.",
                    "longDescription": "The value of this property shall contain a reference to the collection of volumes allocated from this storage pool.",
                    "readonly": true
                },
                "BlockSizeBytes": {
                    "deprecated": "This property has been Deprecated in favor of StoragePool.v1_1_1.StoragePool.MaxBlockSizeBytes",
                    "description": "Maximum Block size in bytes.",
                    "longDescription": "Maximum size in bytes of the blocks which form this Volume. If the block size is variable, then the maximum block size in bytes should be specified. If the block size is unknown or if a block concept is not valid (for example, with Memory), enter a 1.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "By"
                },
                "Capacity": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Capacity.json#/definitions/Capacity",
                    "description": "Capacity utilization.",
                    "longDescription": "The value of this property shall provide an information about the actual utilization of the capacity within this storage pool."
                },
                "CapacitySources": {
                    "autoExpand": true,
                    "description": "An array of space allocations to this store.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Capacity.json#/definitions/CapacitySource"
                    },
                    "longDescription": "Fully or partially consumed storage from a source resource. Each entry shall provide capacity allocation data from a named source resource.",
                    "readonly": false,
                    "type": "array"
                },
                "CapacitySources@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "ClassesOfService": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/ClassOfServiceCollection.json#/definitions/ClassOfServiceCollection",
                    "description": "The ClassesOfService supported by this storage pool.",
                    "longDescription": "This property shall contain references to all classes of service supported by this storage pool. Capacity allocated from this storage pool shall conform to one of the referenced classes of service.",
                    "readonly": false
                },
                "Compressed": {
                    "deprecated": "This property has been deprecated in favor of the IsCompressed and DefaultCompressionBehavior properties.",
                    "description": "Indicator of whether or not the StoragePool has compression enabled.",
                    "longDescription": "This property shall contain a boolean indicator if the StoragePool is currently utilizing compression or not.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_3_0",
                    "versionDeprecated": "v1_6_0"
                },
                "CompressionEnabled": {
                    "description": "Indicates whether or not compression is enabled on the storage pool.",
                    "longDescription": "The property shall indicate whether or not compression is enabled on the storage pool.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "Deduplicated": {
                    "deprecated": "This property has been deprecated in favor of the IsDeduplicated and DefaultDedupeBehavior properties.",
                    "description": "Indicator of whether or not the StoragePool has deduplication enabled.",
                    "longDescription": "This property shall contain a boolean indicator if the StoragePool is currently utilizing deduplication or not.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_3_0",
                    "versionDeprecated": "v1_6_0"
                },
                "DeduplicationEnabled": {
                    "description": "Indicates whether or not deduplication is enabled on the storage pool.",
                    "longDescription": "The property shall indicate whether or not deduplication is enabled on the storage pool.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "DefaultClassOfService": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/ClassOfService.json#/definitions/ClassOfService",
                    "description": "The default class of service for entities allocated from this storage pool.",
                    "longDescription": "If present, this property shall reference the default class of service for entities allocated from this storage pool.  If the ClassesOfService collection is not empty, then the value of this property shall be one of its entries. If not present, the default class of service of the containing StorageService entity shall be used.",
                    "readonly": false,
                    "versionAdded": "v1_2_0"
                },
                "DefaultCompressionBehavior": {
                    "description": "Indicates the default dedupe behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Compressed' property is not set on the create request.",
                    "longDescription": "If implemented, this property shall indicate the default dedupe behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Compressed' property is not set on the create request.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "DefaultDeduplicationBehavior": {
                    "description": "Indicates the default deduplication behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Deduplicated' property is not set on the create request.",
                    "longDescription": "If implemented, this property shall indicate the default deduplication behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Deduplicated' property is not set on the create request.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "DefaultEncryptionBehavior": {
                    "description": "Indicates the default dedupe behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Encrypted' property is not set on the create request.",
                    "longDescription": "If implemented, this property shall indicate the default dedupe behavior applied to the child resource (E.g., volume or storage pool) created out of the storage pool if the 'Encrypted' property is not set on the create request.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Encrypted": {
                    "deprecated": "This property has been deprecated in favor of the IsEncrypted and DefaultEncryptionBehavior properties.",
                    "description": "Indicator of whether or not the StoragePool has encryption enabled.",
                    "longDescription": "This property shall contain a boolean indicator if the StoragePool is currently utilizing encryption or not.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_3_0",
                    "versionDeprecated": "v1_6_0"
                },
                "EncryptionEnabled": {
                    "description": "Indicates whether or not encryption is enabled on the storage pool.",
                    "longDescription": "The property shall indicate whether or not encryption is enabled on the storage pool.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "IOStatistics": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/IOStatistics.json#/definitions/IOStatistics",
                    "deprecated": "This property has been deprecated in favor of the IOStatistics property in Metrics.",
                    "description": "Statistics for this StoragePool.",
                    "longDescription": "The value shall represent IO statistics for this StoragePool.",
                    "versionAdded": "v1_2_0",
                    "versionDeprecated": "v1_9_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Identifier": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier",
                    "description": "The value identifies this resource.",
                    "longDescription": "The value identifies this resource. The value shall be unique within the managed ecosystem."
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links object contains the links to other resources that are related to this resource.",
                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
                },
                "LowSpaceWarningThresholdPercents": {
                    "description": "Low space warning threshold specified in percents.",
                    "items": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "longDescription": "Each time the following value is less than one of the values in the array the LOW_SPACE_THRESHOLD_WARNING event shall be triggered: Across all CapacitySources entries, percent = (SUM(AllocatedBytes) - SUM(ConsumedBytes))/SUM(AllocatedBytes).",
                    "maximum": 100,
                    "minimum": 0,
                    "readonly": false,
                    "type": "array",
                    "units": "%"
                },
                "MaxBlockSizeBytes": {
                    "description": "Maximum Block size in bytes.",
                    "longDescription": "If present, the value is the maximum block size of an allocated resource. If the block size is unknown or if a block concept is not valid (for example, with Memory), this property shall be NULL.",
                    "minimum": 0,
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "By",
                    "versionAdded": "v1_1_1"
                },
                "Metrics": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePoolMetrics.json#/definitions/StoragePoolMetrics"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The link to the metrics for this storage pool.",
                    "longDescription": "This property shall contain a link to a resource of type StoragePoolMetrics that specifies the metrics for this storage pool. IO metrics are reported in the IOStatistics property.",
                    "readonly": true,
                    "versionAdded": "v1_9_0"
                },
                "NVMeEnduranceGroupProperties": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/NVMeEnduranceGroupProperties"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This property contains properties to use when StoragePool is used to describe an NVMe Endurance Group.",
                    "longDescription": "This property shall contain properties to use when StoragePool is used to describe an NVMe Endurance Group.",
                    "versionAdded": "v1_4_0"
                },
                "NVMeProperties": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/NVMeProperties"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "NVMe properties for this storage pool.",
                    "longDescription": "The property shall indicate the type of storage pool.",
                    "versionAdded": "v1_6_0"
                },
                "NVMeSetProperties": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/NVMeSetProperties"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This property contains properties to use when StoragePool is used to describe an NVMe Set.",
                    "longDescription": "This property shall contain properties to use when StoragePool is used to describe an NVMe Set.",
                    "versionAdded": "v1_4_0"
                },
                "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": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PoolType": {
                    "deprecated": "This property has been deprecated in favor of the SupportedPoolTypes property.",
                    "description": "Pool usage type for this storage pool.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePool.json#/definitions/PoolType"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "The property shall indicate the type of storage pool.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_6_0",
                    "versionDeprecated": "v1_7_0"
                },
                "RecoverableCapacitySourceCount": {
                    "description": "Current number of capacity source resources that are available as replacements.",
                    "longDescription": "The value is the number of available capacity source resources currently available in the event that an equivalent capacity source resource fails.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "RemainingCapacityPercent": {
                    "description": "The percentage of the capacity remaining in the StoragePool.",
                    "longDescription": "If present, this value shall return  {[(SUM(AllocatedBytes) - SUM(ConsumedBytes)]/SUM(AllocatedBytes)}*100 represented as an integer value.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_1_0"
                },
                "ReplicationEnabled": {
                    "description": "Indicates whether or not replication is enabled on the storage pool.",
                    "longDescription": "The property shall indicate whether or not replication is enabled on the storage pool. If enabled for pool, replication can still be disabled on individual resources (e.g., volumes) within the pool.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_8_0"
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The property contains the status of the StoragePool.",
                    "longDescription": "The property shall contain the status of the StoragePool."
                },
                "SupportedPoolTypes": {
                    "description": "A collection of the Pool Types supported by the storage pool.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/StoragePool.json#/definitions/PoolType"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This collection shall contain all the PoolType values supported by the storage pool.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_7_0"
                },
                "SupportedProvisioningPolicies": {
                    "description": "This collection specifies all supported storage allocation properties for the Storage Pool.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/DataStorageLoSCapabilities.json#/definitions/ProvisioningPolicy"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This collection shall specify all supported storage allocation policies for the Storage Pool.",
                    "readonly": false,
                    "type": "array",
                    "versionAdded": "v1_3_0"
                },
                "SupportedRAIDTypes": {
                    "description": "A collection of the RAID Types supported by the storage pool.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/RAIDType"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This collection shall contain all the RAIDType values supported by the storage pool.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_3_0"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        }
    },
    "language": "en",
    "owningEntity": "SNIA",
    "release": "1.2.6",
    "title": "#StoragePool.v1_9_2.StoragePool"
}