package schema import "fmt" // CreateHost is the schema for incoming data validation // This schema supports 3 possible types with different data combinations: // - proxy // - redirection // - dead func CreateHost() string { return fmt.Sprintf(` { "oneOf": [ { "type": "object", "additionalProperties": false, "required": [ "type", "domain_names", "host_template_id" ], "properties": { "type": { "type": "string", "pattern": "^proxy$" }, "host_template_id": { "type": "integer", "minimum": 1 }, "listen_interface": %s, "domain_names": %s, "upstream_id": { "type": "integer" }, "certificate_id": { "type": "integer" }, "access_list_id": { "type": "integer" }, "ssl_forced": { "type": "boolean" }, "caching_enabled": { "type": "boolean" }, "block_exploits": { "type": "boolean" }, "allow_websocket_upgrade": { "type": "boolean" }, "http2_support": { "type": "boolean" }, "hsts_enabled": { "type": "boolean" }, "hsts_subdomains": { "type": "boolean" }, "paths": { "type": "string" }, "upstream_options": { "type": "string" }, "advanced_config": { "type": "string" }, "is_disabled": { "type": "boolean" } } } ] } `, stringMinMax(0, 255), domainNames()) }