diff --git a/APIs/schemas/constraints-schema.json b/APIs/schemas/constraints-schema.json index d43a11d..ef42b8f 100644 --- a/APIs/schemas/constraints-schema.json +++ b/APIs/schemas/constraints-schema.json @@ -2,7 +2,8 @@ "$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.", "title": "Constraints", - "anyOf": [{ + "anyOf": [ + { "type": "array", "items": { "$ref": "constraints-schema-rtp.json" @@ -19,6 +20,18 @@ "items": { "$ref": "constraints-schema-mqtt.json" } + }, + { + "type": "array", + "items": { + "description": "Constraints on transport parameters for another transport defined in Transports register of the NMOS Parameter Registers", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9_]+$": { + "$ref": "constraint-schema.json#/definitions/constraint" + } + } + } } ] } diff --git a/APIs/schemas/receiver_transport_params.json b/APIs/schemas/receiver_transport_params.json index 3656ead..67d8259 100644 --- a/APIs/schemas/receiver_transport_params.json +++ b/APIs/schemas/receiver_transport_params.json @@ -2,7 +2,8 @@ "$schema": "http://json-schema.org/draft-04/schema#", "description": "Transport-specific parameters. If this parameter is included in a client request it must include the same number of array elements (or 'legs') as specified in the constraints. If no changes are required to a specific leg it must be included as an empty object ({}).", "title": "Receiver Transport Parameters", - "anyOf": [{ + "anyOf": [ + { "type": "array", "items": { "$ref": "receiver_transport_params_rtp.json" @@ -25,6 +26,23 @@ "items": { "$ref": "receiver_transport_params_mqtt.json" } + }, + { + "type": "array", + "items": { + "description": "Transport-specific parameters for another transport defined in Transports register of the NMOS Parameter Registers", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9_]+$": { + "type": [ + "string", + "boolean", + "null", + "number" + ] + } + } + } } ] } diff --git a/APIs/schemas/sender_transport_params.json b/APIs/schemas/sender_transport_params.json index 226ba4b..d8b4824 100644 --- a/APIs/schemas/sender_transport_params.json +++ b/APIs/schemas/sender_transport_params.json @@ -2,7 +2,8 @@ "$schema": "http://json-schema.org/draft-04/schema#", "description": "Transport-specific parameters. If this parameter is included in a client request it must include the same number of array elements (or 'legs') as specified in the constraints. If no changes are required to a specific leg it must be included as an empty object ({}).", "title": "Sender Transport Parameters", - "anyOf": [{ + "anyOf": [ + { "type": "array", "items": { "$ref": "sender_transport_params_rtp.json" @@ -25,6 +26,23 @@ "items": { "$ref": "sender_transport_params_mqtt.json" } + }, + { + "type": "array", + "items": { + "description": "Transport-specific parameters for another transport defined in Transports register of the NMOS Parameter Registers", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9_]+$": { + "type": [ + "string", + "boolean", + "null", + "number" + ] + } + } + } } ] } diff --git a/APIs/schemas/transporttype-response-schema.json b/APIs/schemas/transporttype-response-schema.json index 77ce38f..feeebd6 100644 --- a/APIs/schemas/transporttype-response-schema.json +++ b/APIs/schemas/transporttype-response-schema.json @@ -3,7 +3,7 @@ "title": "Transport Type", "description": "Transport type URN base used by the Sender or Receiver (i.e. with any subclassifications or versions removed)", "type": "string", - "oneOf": [ + "anyOf": [ { "enum": [ "urn:x-nmos:transport:rtp", @@ -11,6 +11,17 @@ "urn:x-nmos:transport:websocket", "urn:x-nmos:transport:mqtt" ] + }, + { + "description": "Any transport type URN base defined by an AMWA specification in the Transports register of the NMOS Parameter Registers", + "type": "string", + "pattern": "^urn:x-nmos:transport:[^./]+$" + }, + { + "description": "Any manufacturer-specific transport type URN base defined in the Transports register of the NMOS Parameter Registers", + "not": { + "pattern": "^urn:x-nmos:" + } } ], "format": "uri"