{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Used to express the dynamic constraints on transport parameters. These constraints may be set and changed at run time. Parameters must also conform with constraints inferred from the specification. Every transport parameter must have an entry, even if it is only an empty object.",
    "items": {
        "description": "Constraints on transport parameters",
        "patternProperties": {
            "^[a-zA-Z0-9_]+$": {
                "additionalProperties": false,
                "description": "The constraints for a single transport parameter",
                "properties": {
                    "description": {
                        "description": "A human readable string describing the constraint (optional)",
                        "type": "string"
                    },
                    "enum": {
                        "description": "An array of allowed values",
                        "items": {
                            "anyOf": [
                                {
                                    "type": "boolean"
                                },
                                {
                                    "type": "integer"
                                },
                                {
                                    "type": "null"
                                },
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "minItems": 1,
                        "type": "array",
                        "uniqueItems": true
                    },
                    "maximum": {
                        "description": "The inclusive maximum value the parameter can be set to",
                        "type": [
                            "integer",
                            "number"
                        ]
                    },
                    "minimum": {
                        "description": "The inclusive minimum value the parameter can be set to",
                        "type": [
                            "integer",
                            "number"
                        ]
                    },
                    "pattern": {
                        "description": "A regex pattern that must be satisfied for this parameter",
                        "format": "regex",
                        "type": "string"
                    }
                },
                "type": "object"
            }
        },
        "type": "object"
    },
    "title": "Constraints",
    "type": "array"
}
