{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "anyOf": [
        {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes a String Parameter Constraint",
            "properties": {
                "enum": {
                    "items": {
                        "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                }
            },
            "title": "String Parameter Constraint",
            "type": "object"
        },
        {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an Integer Parameter Constraint",
            "properties": {
                "enum": {
                    "items": {
                        "type": "integer"
                    },
                    "minItems": 1,
                    "type": "array"
                },
                "maximum": {
                    "type": "integer"
                },
                "minimum": {
                    "type": "integer"
                }
            },
            "title": "Integer Parameter Constraint",
            "type": "object"
        },
        {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes a Number Parameter Constraint",
            "properties": {
                "enum": {
                    "items": {
                        "type": "number"
                    },
                    "minItems": 1,
                    "type": "array"
                },
                "maximum": {
                    "type": "number"
                },
                "minimum": {
                    "type": "number"
                }
            },
            "title": "Number Parameter Constraint",
            "type": "object"
        },
        {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes a Boolean Parameter Constraint",
            "properties": {
                "enum": {
                    "items": {
                        "type": "boolean"
                    },
                    "minItems": 1,
                    "type": "array"
                }
            },
            "title": "Boolean Parameter Constraint",
            "type": "object"
        },
        {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "definitions": {
                "rational": {
                    "additionalProperties": false,
                    "properties": {
                        "denominator": {
                            "default": 1,
                            "type": "integer"
                        },
                        "numerator": {
                            "type": "integer"
                        }
                    },
                    "required": [
                        "numerator"
                    ],
                    "type": "object"
                }
            },
            "description": "Describes a Rational Parameter Constraint",
            "properties": {
                "enum": {
                    "items": {
                        "additionalProperties": false,
                        "properties": {
                            "denominator": {
                                "default": 1,
                                "type": "integer"
                            },
                            "numerator": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "numerator"
                        ],
                        "type": "object"
                    },
                    "minItems": 1,
                    "type": "array"
                },
                "maximum": {
                    "additionalProperties": false,
                    "properties": {
                        "denominator": {
                            "default": 1,
                            "type": "integer"
                        },
                        "numerator": {
                            "type": "integer"
                        }
                    },
                    "required": [
                        "numerator"
                    ],
                    "type": "object"
                },
                "minimum": {
                    "additionalProperties": false,
                    "properties": {
                        "denominator": {
                            "default": 1,
                            "type": "integer"
                        },
                        "numerator": {
                            "type": "integer"
                        }
                    },
                    "required": [
                        "numerator"
                    ],
                    "type": "object"
                }
            },
            "title": "Rational Parameter Constraint",
            "type": "object"
        }
    ],
    "description": "Describes a Parameter Constraint",
    "title": "Parameter Constraint",
    "type": "object"
}
