{
    "$id": "http://redfish.dmtf.org/schemas/v1/Connection.v1_0_0.json",
    "$ref": "#/definitions/Connection",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2020 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "AccessCapability": {
            "enum": [
                "Read",
                "Write"
            ],
            "enumDescriptions": {
                "Read": "Endpoints are allowed to perform reads from the specified resource.",
                "Write": "Endpoints are allowed to perform writes to the specified resource."
            },
            "type": "string"
        },
        "AccessState": {
            "description": "Describes the options for the access characteristics of a resource.",
            "enum": [
                "Optimized",
                "NonOptimized",
                "Standby",
                "Unavailable",
                "Transitioning"
            ],
            "enumDescriptions": {
                "NonOptimized": "The resource is in an active and non-optimized state.",
                "Optimized": "The resource is in an active and optimized state.",
                "Standby": "The resource is in a standby state.",
                "Transitioning": "The resource is transitioning to a new state.",
                "Unavailable": "The resource is in an unavailable state."
            },
            "enumLongDescriptions": {
                "NonOptimized": "This value shall indicate the resource is in an active and non-optimized state.",
                "Optimized": "This value shall indicate the resource is in an active and optimized state.",
                "Standby": "This value shall indicate the resource is in a standby state.",
                "Transitioning": "This value shall indicate the resource is transitioning to a new state.",
                "Unavailable": "This value shall indicate the resource is in an unavailable state."
            },
            "longDescription": "This type shall describe the access to the associated resource in this connection.",
            "type": "string"
        },
        "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": "The available OEM-specific actions for this resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
                }
            },
            "type": "object"
        },
        "Connection": {
            "additionalProperties": false,
            "description": "The Connection schema describes the access permissions endpoints, or groups of endpoints, have with other resources in the service.",
            "longDescription": "This resource shall represent a connection information in the Redfish Specification.",
            "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": "This property shall contain the available actions for this resource."
                },
                "ConnectionType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/ConnectionType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The type of resources this connection specifies.",
                    "longDescription": "This property shall contain the type of resources this connection specifies.",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "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."
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "VolumeInfo": {
                    "description": "The set of volumes and access capabilities specified for this connection.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/VolumeInfo"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain the set of volumes and access capabilities specified for this connection.",
                    "type": "array"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "ConnectionType": {
            "enum": [
                "Storage",
                "Memory"
            ],
            "enumDescriptions": {
                "Memory": "A connection to memory related resources.",
                "Storage": "A connection to storage related resources, such as volumes."
            },
            "type": "string"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other resources that are related to this resource.",
            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or 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": {
                "InitiatorEndpointGroups": {
                    "description": "An array of links to the initiator endpoint groups that are associated with this connection.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/EndpointGroup.json#/definitions/EndpointGroup"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type EndpointGroup that are the initiator endpoint groups associated with this connection.  If the referenced endpoint groups contain the GroupType property, the GroupType property shall contain the value `Initiator` or `Client`.  This property shall not be present if InitiatorEndpoints is present.",
                    "readonly": false,
                    "type": "array"
                },
                "InitiatorEndpointGroups@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "InitiatorEndpoints": {
                    "description": "An array of links to the initiator endpoints that are associated with this connection.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Endpoint that are the initiator endpoints associated with this connection.  If the referenced endpoints contain the EntityRole property, the EntityRole property shall contain the value `Initiator` or `Both`.  This property shall not be present if InitiatorEndpointGroups is present.",
                    "readonly": false,
                    "type": "array"
                },
                "InitiatorEndpoints@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "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."
                },
                "TargetEndpointGroups": {
                    "description": "An array of links to the target endpoint groups that are associated with this connection.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/EndpointGroup.json#/definitions/EndpointGroup"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type EndpointGroup that are the target endpoint groups associated with this connection.  If the referenced endpoint groups contain the GroupType property, the GroupType property shall contain the value `Target` or `Server`.  This property shall not be present if TargetEndpoints is present.",
                    "readonly": false,
                    "type": "array"
                },
                "TargetEndpointGroups@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "TargetEndpoints": {
                    "description": "An array of links to the target endpoints that are associated with this connection.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Endpoint that are the target endpoints associated with this connection.  If the referenced endpoints contain the EntityRole property, the EntityRole property shall contain the value `Target` or `Both`.  This property shall not be present if TargetEndpointGroups is present.",
                    "readonly": false,
                    "type": "array"
                },
                "TargetEndpoints@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this resource.",
            "longDescription": "This type shall contain the available OEM-specific 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"
        },
        "VolumeInfo": {
            "additionalProperties": false,
            "description": "The combination of permissions and volume information.",
            "longDescription": "This type shall contain the combination of permissions and volume information.",
            "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": {
                "AccessCapabilities": {
                    "description": "Supported IO access capabilities.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/AccessCapability"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "Each entry shall specify a current storage access capability.",
                    "readonly": false,
                    "type": "array"
                },
                "AccessState": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/AccessState"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The access state for this connection.",
                    "longDescription": "The value of this property shall contain the access state for the associated resource in this connection.",
                    "readonly": false
                },
                "Volume": {
                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume",
                    "description": "The specified volume.",
                    "longDescription": "This property shall contain a link to a resource of type Volume.  The endpoints referenced by the InitiatorEndpoints or InitiatorEndpointGroups properties shall be given access to this volume as described by this object.  If TargetEndpoints or TargetEndpointGroups is present, the referenced initiator endpoints shall be required to access the referenced volume through one of the referenced target endpoints.",
                    "readonly": false
                }
            },
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2020.3",
    "title": "#Connection.v1_0_0.Connection"
}