### ServiceList Schema Example Source: https://api.qrator.net/schema/ServiceList.json This is the JSON schema definition for the ServiceList, outlining the structure and constraints for configuring network services. ```json { "props": { "id": { "default": null, "oneOf": [ { "type": "null" }, { "type": "integer", "minimum": 0 } ] }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "proto": { "description": "Protocol number as per IANA assignments,\nsee https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml", "type": "integer", "minimum": 1, "maximum": 254 }, "upstreamSni": { "description": "SNI name to use in upstream SSL handshake", "type": "string", "maxLength": 255, "allOf": [ { "pattern": "^[0-9a-zA-z._-]*$" }, { "not": { "pattern": "(?:^[_.-]|[_.-]$)" } }, { "not": { "pattern": "(?:[_-]\.|\.[_-])" } }, { "not": { "pattern": "\\.\\." } }, { "not": { "pattern": "[^.]{64,}\\." } }, { "not": { "pattern": "\\.[^.]{64,}" } } ] } }, "services": { "icmp": { "type": "object", "required": [ "type" ], "additionalProperties": false, "properties": { "id": { "$ref": "#/props/id" }, "type": { "type": "string", "enum": [ "icmp" ] }, "defaultDrop": { "description": "If true, only whitelisted IPs can access the service", "type": "boolean", "default": false }, "rateLimit": { "description": "Maximum packet rate per second per IP address (bps)", "type": "integer", "minimum": 8000, "maximum": 1000000000000, "multipleOf": 8000, "default": 8000000 } } }, "dns": { "type": "object", "required": [ "type", "port" ], "additionalProperties": false, "properties": { "id": { "$ref": "#/props/id" }, "type": { "type": "string", "enum": [ "dns" ] }, "port": { "$ref": "#/props/port" }, "defaultDrop": { "description": "If true, only whitelisted IPs can access the service", "type": "boolean", "default": false } } }, "http": { "type": "object", "required": [ "type", "port", "upstream" ], "additionalProperties": false, "properties": { "id": { "$ref": "#/props/id" }, "type": { "type": "string", "enum": [ "http" ] }, "port": { "$ref": "#/props/port" }, "ssl": { "description": "If true, TLS is enabled for this service", "type": "boolean", "default": false }, "http2": { "description": "If true, HTTP/2 is enabled for this service", "type": "boolean", "default": false }, "defaultDrop": { "description": "If true, only whitelisted IPs can access the service", "type": "boolean", "default": false }, "upstream": { "type": "object", "required": [ "ssl" ], "properties": { "ssl": { ``` -------------------------------- ### DomainServiceList Schema Source: https://api.qrator.net/schema/DomainServiceList.json JSON schema defining the structure and constraints for DomainServiceList properties, including upstream server configurations for WebSocket and HTTP protocols. ```json { "props": { "id": { "default": null, "oneOf": [ { "type": "null" }, { "type": "integer", "minimum": 0 } ] }, "weight": { "description": "Weight of the upstream server in load balancing, more weight means more traffic, 0 means the server is disabled", "type": "integer", "minimum": 0, "maximum": 100 }, "name": { "description": "Mnemonic name, for easier identification", "type": "string", "maxLength": 255, "default": "" }, "proto": { "description": "Protocol number as per IANA assignments,\nsee https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml", "type": "integer", "minimum": 1, "maximum": 254 }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "wsUpstreamItemIp": { "description": "WebSocket upstream item with IP address", "type": "object", "required": [ "type", "ip", "weight", "port" ], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "primary", "backup" ] }, "ip": { "type": "string", "format": "ipv4" }, "dns_record": { "type": "null" }, "weight": { "$ref": "#/props/weight" }, "name": { "$ref": "#/props/name" }, "port": { "$ref": "#/props/port" } } }, "wsUpstreamItemDns": { "description": "WebSocket upstream item with DNS record", "type": "object", "required": [ "type", "dns_record", "weight", "port" ], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "primary", "backup" ] }, "ip": { "type": "null" }, "dns_record": { "type": "string", "minLength": 4 }, "weight": { "$ref": "#/props/weight" }, "name": { "$ref": "#/props/name" }, "port": { "$ref": "#/props/port" } } }, "httpUpstreamItemIp": { "description": "HTTP upstream item with IP address", "type": "object", "required": [ "type", "ip", "weight", "port" ], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "primary", "backup" ] }, "ip": { "type": "string", "format": "ipv4" }, "dns_record": { "type": "null" }, "weight": { "$ref": "#/props/weight" }, "name": { "$ref": "#/props/name" }, "port": { "$ref": "#/props/port" } } }, "httpUpstreamItemDns": { "description": "HTTP upstream item with DNS record", "type": "object", "required": [ "type", "dns_record", "weight", "port" ], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "primary", "backup" ] }, "ip": { "type": "null" }, "dns_record": { "type": "string", "minLength": 4 }, "weight": { "$ref": "#/props/weight" }, "name": { "$ref": "#/props/name" }, "port": { "$ref": "#/props/port" } } } } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.