{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Describes USB Receiver transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. Receivers must support at least the `source_ip`, `interface_ip` and `source_port` parameters.",
  "title": "USB Receiver Transport Parameters",
  "type": "object",
  "properties": {
    "source_ip": {
      "type": [
        "string",
        "null"
      ],
      "description": "IP address of the TCP server responsible for serving the USB packets (IP address of network interface bound to the sender). A null value indicates that the source IP address has not been configured.",
      "anyOf": [{
          "format": "ipv4"
        },
        {
          "format": "ipv6"
        },
        {
          "type": "null"
        }
      ]
    },
    "interface_ip": {
      "type": "string",
      "description": "IP address the TCP client responsible for receiving the USB packets (IP address of the network interface bound to this receiver). The receiver should provide an enum in the constraints endpoint, which should contain the available interface addresses. If set to 'auto' the receiver should determine which interface to use for itself, based on routing rules or its own internal configuration.",
      "anyOf": [{
          "format": "ipv4"
        },
        {
          "format": "ipv6"
        },
        {
          "pattern": "^auto$"
        }
      ]
    },
    "source_port": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Port of the TCP server responsible for serving the USB packets (auto = 5004 by default). A null value indicates that the source port has not been configured",
      "minimum": 0,
      "maximum": 65535
    }
  },
  "patternProperties": {
    "^ext_[a-zA-Z0-9_]+$": {
      "$ref": "receiver_transport_params_ext.json"
    }
  },
  "additionalProperties": false
}