{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "description": "Used to express the dynamic constraints on RTP transport parameters. These constraints may be set and changed at run time. Every transport parameter must have an entry, even if it is only an empty object.",
    "patternProperties": {
        "^ext_[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"
        }
    },
    "properties": {
        "destination_ip": {
            "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"
        },
        "destination_port": {
            "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"
        },
        "fec1D_destination_port": {
            "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"
        },
        "fec1D_source_port": {
            "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"
        },
        "fec2D_destination_port": {
            "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"
        },
        "fec2D_source_port": {
            "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"
        },
        "fec_block_height": {
            "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"
        },
        "fec_block_width": {
            "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"
        },
        "fec_destination_ip": {
            "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"
        },
        "fec_enabled": {
            "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"
        },
        "fec_mode": {
            "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"
        },
        "fec_type": {
            "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"
        },
        "interface_ip": {
            "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"
        },
        "multicast_ip": {
            "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"
        },
        "rtcp_destination_ip": {
            "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"
        },
        "rtcp_destination_port": {
            "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"
        },
        "rtcp_enabled": {
            "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"
        },
        "rtcp_source_port": {
            "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"
        },
        "rtp_enabled": {
            "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"
        },
        "source_ip": {
            "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"
        },
        "source_port": {
            "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"
        }
    },
    "required": [
        "source_ip",
        "destination_port",
        "rtp_enabled"
    ],
    "type": "object"
}
