{
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",

  "title": "Input Parameters",
  "properties": {
    "url": {
      "title": "Backend URL",
      "description": "Url of the backend",
      "type": "string",
      "pattern": "^(http|https|ftp)://"
    },
    "https-url": {
      "title": "HTTPS Backend URL",
      "description": "Url of the backend if it is diferent from url parameter",
      "type": "string",
      "pattern": "^(http|https|ftp)://"
    },
    "custom_domain": {
      "title": "Custom Domain",
      "description": "Custom Domain to use for the website",
      "type": "string",
      "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
    },

    "server-alias": {
      "title": "Server Alias",
      "description": "Server Alias List separated by space",
      "type": "string",
      "default": ""
    },
    "type": {
      "title": "Backend Type",
      "description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
      "type": "string",
      "default": "",
      "enum": ["", "zope", "redirect", "notebook", "eventsource"]
    },

    "path": {
      "title": "Backend Path",
      "description": "Path to proxy to in the backend",
      "type": "string",
      "default": ""
    },

    "default-path": {
      "title": "Default Path",
      "description": "Provide default path to redirect user to when user access / (the site root)",
      "type": "string",
      "default": ""
    },

    "ssl_crt": {
      "title": "SSL Certificate",
      "description": "Content of the SSL Certificate file",
      "type": "string",
      "textarea": true,
      "default": ""
    },
    "ssl_key": {
      "title": "SSL Key",
      "description": "Content of the SSL Key file",
      "type": "string",
      "textarea": true,
      "default": ""
    },

    "ssl_ca_crt": {
      "title": "SSL Certificate Authority's Certificate",
      "description": "Content of the CA certificate file",
      "type": "string",
      "textarea": true,
      "default": ""
    },
    "https-only": {
      "title": "HTTPS Only",
      "description": "If set to true, http requests will be redirected to https",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "ssl-proxy-verify": {
      "title": "Verify Backend Certificates",
      "description": "If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "ssl_proxy_ca_crt": {
      "title": "SSL Backend Authority's Certificate",
      "description": "Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
      "type": "string",
      "default": ""
    },

    "monitor-ipv6-test": {
      "title": "IPv6 Address to Monitor Packet Lost",
      "description": "IPv6 Address for the frontend keep monitoring with ping6 (without brackets)",
      "type": "string",
      "default": ""
    },

    "monitor-ipv4-test": {
      "title": "IPv4 Address to Monitor Packet Lost",
      "description": "IPv4 Address for the frontend keep monitoring with ping",
      "type": "string",
      "default": ""
    },

    "re6st-optimal-test": {
      "title": "IPv6 and IPv4 Address to test Re6st",
      "description": "IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)",
      "type": "string",
      "default": ""
    },

    "enable_cache": {
      "title": "Enable Cache",
      "description": "If set to true, http caching server (Apache Traffic Server) will be used between frontend apache and backend",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "disable-no-cache-request": {
      "title": "Disable 'no-cache' requests",
      "description": "If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "disable-via-header": {
      "title": "Disable 'Via' headers from cache",
      "description": "If set to true, Via response headers will not be sent to client",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "prefer-gzip-encoding-to-backend": {
      "title": "Prefer gzip Encoding for Backend",
      "description": "If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used",
      "type": "string",
      "default": "false",
      "enum": ["false", "true"]
    },

    "disabled-cookie-list": {
      "title": "Disabled Cookies",
      "description": "List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers",
      "type": "string",
      "default": ""
    },

    "apache_custom_http": {
      "title": "HTTP configuration",
      "description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
      "default": "",
      "textarea": true,
      "type": "string"
    },
    "apache_custom_https": {
      "title": "HTTPS configuration",
      "description": "Raw https configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
      "default": "",
      "textarea": true,
      "type": "string"
    }
  }
}
