{
    "$schema": "http://json-schema.org/schema#",
    "$id": "Processing",
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "description": "Name of the stream that acts as identifier",
            "$comment": "Must have some regex"
        },
        "description": {
            "type": "string",
            "description": "General description of the processing unit"
        },
        "repository": {
            "type": "object",
            "properties": {
                "credentials": {
                    "type": "object"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "owner": {
            "type": "object"
        },
        "license": {
            "type": "object"
        },
        "price": {
            "type": "object"
        },
        "execution_requirements": {
            "type": "object",
            "properties": {
                "parallel": {
                    "type": "object",
                    "description": "Defines if can be parallelized"
                },
                "GPU": {
                    "type": "object"
                },
                "scanling_model": {
                    "type": "object",
                    "description": "List of different configuration options"
                },
                "RAM": {
                    "type": "object"
                },
                "DISK_IO": {
                    "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"
                    }
                ]
            }
        }
    }
}