{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "Sample": {
            "type": "object",
            "properties": {
                "id": {
                    "description": "ID of the sample",
                    "type": "string"
                },
                "lon": {
                    "description": "WGS84 longitude",
                    "type": "string"
                },
                "lat": {
                    "description": "WGS84 latitude",
                    "type": "string"
                },
                "label": {
                    "description": "Name of the sample",
                    "type": "string"
                },
                "timeline": {
                    "description": "List of sample dates",
                    "type": "string"
                },
                "validdata": {
                    "description": "List of sample dates",
                    "type": "string"
                },
                "attributes": {
                    "description": "List of lists of observations",
                    "type": "string"
                }
            }
        },
        "Parameter": {
            "type": "object",
            "properties": {
                "keyname": {
                    "description": "The name of the parameter",
                    "type": "string"
                },
                "keytype": {
                    "description": "The description of the type of the parameter",
                    "type": "string"
                },
                "keymin": {
                    "description": "The minimum value of the parameter",
                    "type": "number"
                },
                "keymax": {
                    "description": "The maximum value of the parameter",
                    "type": "number"
                },
                "default": {
                    "description": "The default value of the parameter",
                    "type": "number"
                },
                "domain": {
                    "description": "The optional names of the values of the parameter",
                    "type": "array",
                    "_uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "keyname",
                "keytype",
                "keymin",
                "keymax",
                "default"
            ]
        },
        "Filter": {
            "type": "object",
            "properties": {
                "alias": {
                    "description": "The short name of the filter",
                    "type": "string"
                },
                "name": {
                    "description": "The complete name of the filter",
                    "type": "string"
                },
                "missingdata": {
                    "description": "Does the filter support the use of missing data?",
                    "type": "string"
                },
                "parameters": {
                    "description": "The list of parameters of the filter",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Parameter"
                    }
                },
                "sample": {
                    "description": "A sample object",
                    "type": "string"
                }
            },
            "required": [
                "alias",
                "name",
                "missingdata",
                "parameters",
                "sample"
            ]
        }
    },
    "title": "eotsfilter service",
    "description": "Capabilities document of a Earth-Observation Time-Series filter service",
    "type": "object",
    "properties": {
        "service": {
            "description": "The name of the service",
            "type": "string"
        },
        "filters": {
            "description": "A list of filters",
            "type": "array",
            "items": {
                "$ref": "#/definitions/Filter"
            }
        }
    },
    "required": [
        "service",
        "filters"
    ],
    "additionalProperties": false
}