diff --git a/backend/schema/endpoints/streams.json b/backend/schema/endpoints/streams.json index da3de83e..b0773525 100644 --- a/backend/schema/endpoints/streams.json +++ b/backend/schema/endpoints/streams.json @@ -20,6 +20,18 @@ "minimum": 1, "maximum": 65535 }, + "domain_name_port": { + "type": "string", + "pattern": "^(?:[^.*:]+\\.?)+[^.]:(?:(?:6553[0-5])|(?:655[0-2][0-9])|(?:65[0-4][0-9]{2})|(?:6[0-4][0-9]{3})|(?:[1-5][0-9]{4})|(?:[0-9]{1,4}))$" + }, + "ipv4_port": { + "type": "string", + "pattern": "^(?:\\b25[0-5]|\\b2[0-4][0-9]|\\b[01]?[0-9][0-9]?)(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}:(?:(?:6553[0-5])|(?:655[0-2][0-9])|(?:65[0-4][0-9]{2})|(?:6[0-4][0-9]{3})|(?:[1-5][0-9]{4})|(?:[0-9]{1,4}))$" + }, + "ipv6_port": { + "type": "string", + "pattern": "^(?:(?:[0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(?:(?::[0-9a-fA-F]{1,4}){1,6})|:(?:(?::[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(?::[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(?:ffff(:0{1,4}){0,1}:){0,1}(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])|(?:[0-9a-fA-F]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])):(?:(?:6553[0-5])|(?:655[0-2][0-9])|(?:65[0-4][0-9]{2})|(?:6[0-4][0-9]{3})|(?:[1-5][0-9]{4})|(?:[0-9]{1,4}))$" + }, "host": { "anyOf": [ { @@ -35,6 +47,19 @@ } ] }, + "host_port": { + "anyOf": [ + { + "$ref": "#/definitions/domain_name_port" + }, + { + "$ref": "#/definitions/ipv4_port" + }, + { + "$ref": "#/definitions/ipv6_port" + } + ] + }, "forwarding_hosts": { "anyOf": [ { @@ -46,7 +71,14 @@ "maxItems": 15, "uniqueItems": true, "items": { - "$ref": "#/definitions/host" + "anyOf": [ + { + "$ref": "#/definitions/host" + }, + { + "$ref": "#/definitions/host_port" + } + ] } } ]