{
    "$schema": "http://json-schema.org/schema#",
    "$id": "Storage",
    "type": "object",
    "properties": {
        "name": {
            "description": "Name of the stream that acts as identifier",
            "type": "string",
            "$comment": "Must have some regex"
        },
        "description": {
            "type": "string",
            "description": "General description of the processing unit"
        },
        "size": {
            "type": "object"
        },
        "encryption": {
            "type": "object"
        },
        "redundancy": {
            "type": "object"
        },
        "throughput": {
            "description": "The available performance for the storage",
            "type": "object"
        },
        "booking_price": {
            "type": "object"
        },
        "type": {
            "type": "object"
        },
        "inputs": {
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "$ref": "stream.json#/definitions/file"
                    },
                    {
                        "$ref": "stream.json#/definitions/url"
                    }
                ]
            }
        },
        "outputs": {
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "$ref": "stream.json#/definitions/file"
                    },
                    {
                        "$ref": "stream.json#/definitions/url"
                    }
                ]
            }
        }
    }
}