nginx-proxy-manager/backend/internal/api/schema/create_host.go

89 lines
1.7 KiB
Go
Raw Normal View History

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",
2023-01-08 22:49:49 +00:00
"nginx_template_id",
"proxy_scheme"
],
"properties": {
"type": {
"type": "string",
"pattern": "^proxy$"
},
"nginx_template_id": {
"type": "integer",
"minimum": 1
},
"listen_interface": %s,
"domain_names": %s,
"upstream_id": {
"type": "integer"
},
2023-01-08 22:49:49 +00:00
"proxy_scheme": {
"type": "string",
"pattern": "^https?$"
},
"proxy_host": {
"type": "string"
},
"proxy_port": {
"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"
},
"advanced_config": {
"type": "string"
},
"is_disabled": {
"type": "boolean"
}
}
}
]
}
`, stringMinMax(0, 255), domainNames())
}