{
  "description": "Backend is a specification for a Backend resource",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "BackendSpec defines the desired state of Backend",
      "properties": {
        "acls": {
          "description": "Acls ACL Lines Array\n\nHAProxy ACL lines array (corresponds to acl directives)\n\nswagger:model acls",
          "items": {
            "description": "ACL ACL Lines\n\nThe use of Access Control Lists (ACL) provides a flexible solution to perform\ncontent switching and generally to take decisions based on content extracted\nfrom the request, the response or any environmental status.\n\nswagger:model acl",
            "properties": {
              "acl_name": {
                "description": "acl name\nRequired: true\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "criterion": {
                "description": "criterion\nRequired: true\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "index": {
                "description": "index\nRequired: true",
                "format": "int64",
                "type": "integer"
              },
              "value": {
                "description": "value",
                "type": "string"
              }
            },
            "required": [
              "acl_name",
              "criterion"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "config": {
          "description": "Backend Backend\n\nHAProxy backend configuration\nExample: {\"adv_check\":\"httpchk\",\"balance\":{\"algorithm\":\"roundrobin\"},\"forwardfor\":{\"enabled\":\"enabled\"},\"httpchk_params\":{\"method\":\"GET\",\"uri\":\"/check\",\"version\":\"HTTP/1.1\"},\"mode\":\"http\",\"name\":\"test_backend\"}\n\nswagger:model backend",
          "properties": {
            "abortonclose": {
              "description": "abortonclose\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "accept_invalid_http_response": {
              "description": "accept invalid http response\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "adv_check": {
              "description": "adv check\nEnum: [httpchk ldap-check mysql-check pgsql-check redis-check smtpchk ssl-hello-chk tcp-check]",
              "enum": [
                "httpchk",
                "ldap-check",
                "mysql-check",
                "pgsql-check",
                "redis-check",
                "smtpchk",
                "ssl-hello-chk",
                "tcp-check"
              ],
              "type": "string"
            },
            "allbackups": {
              "description": "allbackups\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "balance": {
              "description": "balance",
              "properties": {
                "algorithm": {
                  "description": "algorithm\nRequired: true\nEnum: [first hash hdr leastconn random rdp-cookie roundrobin source static-rr uri url_param]",
                  "enum": [
                    "first",
                    "hash",
                    "hdr",
                    "leastconn",
                    "random",
                    "rdp-cookie",
                    "roundrobin",
                    "source",
                    "static-rr",
                    "uri",
                    "url_param"
                  ],
                  "type": "string"
                },
                "hash_expression": {
                  "description": "hash expression",
                  "type": "string"
                },
                "hdr_name": {
                  "description": "hdr name",
                  "type": "string"
                },
                "hdr_use_domain_only": {
                  "description": "hdr use domain only",
                  "type": "boolean"
                },
                "random_draws": {
                  "description": "random draws",
                  "format": "int64",
                  "type": "integer"
                },
                "rdp_cookie_name": {
                  "description": "rdp cookie name\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "uri_depth": {
                  "description": "uri depth",
                  "format": "int64",
                  "type": "integer"
                },
                "uri_len": {
                  "description": "uri len",
                  "format": "int64",
                  "type": "integer"
                },
                "uri_path_only": {
                  "description": "uri path only",
                  "type": "boolean"
                },
                "uri_whole": {
                  "description": "uri whole",
                  "type": "boolean"
                },
                "url_param": {
                  "description": "url param\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "url_param_check_post": {
                  "description": "url param check post",
                  "format": "int64",
                  "type": "integer"
                },
                "url_param_max_wait": {
                  "description": "url param max wait",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "required": [
                "algorithm"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "bind_process": {
              "description": "bind process\nPattern: ^[^\\s]+$",
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "check_timeout": {
              "description": "check timeout",
              "format": "int64",
              "type": "integer"
            },
            "checkcache": {
              "description": "checkcache\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "compression": {
              "description": "compression",
              "properties": {
                "algo-req": {
                  "description": "algo req\nEnum: [identity gzip deflate raw-deflate]",
                  "enum": [
                    "identity",
                    "gzip",
                    "deflate",
                    "raw-deflate"
                  ],
                  "type": "string"
                },
                "algorithms": {
                  "description": "algorithms",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "algos-res": {
                  "description": "algos res",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "direction": {
                  "description": "direction\nEnum: [request response both]",
                  "enum": [
                    "request",
                    "response",
                    "both"
                  ],
                  "type": "string"
                },
                "offload": {
                  "description": "offload",
                  "type": "boolean"
                },
                "types": {
                  "description": "types",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "types-req": {
                  "description": "types req",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "types-res": {
                  "description": "types res",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "connect_timeout": {
              "description": "connect timeout",
              "format": "int64",
              "type": "integer"
            },
            "cookie": {
              "description": "cookie",
              "properties": {
                "attr": {
                  "description": "attrs",
                  "items": {
                    "description": "Attr attr\n\nswagger:model Attr",
                    "properties": {
                      "value": {
                        "description": "value\nPattern: ^[^\\s]+$",
                        "pattern": "^[^\\s]+$",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "domain": {
                  "description": "domains",
                  "items": {
                    "description": "Domain domain\n\nswagger:model Domain",
                    "properties": {
                      "value": {
                        "description": "value\nPattern: ^[^\\s]+$",
                        "pattern": "^[^\\s]+$",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "dynamic": {
                  "description": "dynamic",
                  "type": "boolean"
                },
                "httponly": {
                  "description": "httponly",
                  "type": "boolean"
                },
                "indirect": {
                  "description": "indirect",
                  "type": "boolean"
                },
                "maxidle": {
                  "description": "maxidle",
                  "format": "int64",
                  "type": "integer"
                },
                "maxlife": {
                  "description": "maxlife",
                  "format": "int64",
                  "type": "integer"
                },
                "name": {
                  "description": "name\nRequired: true\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "nocache": {
                  "description": "nocache",
                  "type": "boolean"
                },
                "postonly": {
                  "description": "postonly",
                  "type": "boolean"
                },
                "preserve": {
                  "description": "preserve",
                  "type": "boolean"
                },
                "secure": {
                  "description": "secure",
                  "type": "boolean"
                },
                "type": {
                  "description": "type\nEnum: [rewrite insert prefix]",
                  "enum": [
                    "rewrite",
                    "insert",
                    "prefix"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "default_server": {
              "description": "default server",
              "properties": {
                "agent-addr": {
                  "description": "agent addr\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "agent-check": {
                  "description": "agent check\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "agent-inter": {
                  "description": "agent inter",
                  "format": "int64",
                  "type": "integer"
                },
                "agent-port": {
                  "description": "agent port\nMaximum: 65535\nMinimum: 1",
                  "format": "int64",
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                },
                "agent-send": {
                  "description": "agent send",
                  "type": "string"
                },
                "allow_0rtt": {
                  "description": "allow 0rtt",
                  "type": "boolean"
                },
                "alpn": {
                  "description": "alpn\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "backup": {
                  "description": "backup\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "check": {
                  "description": "check\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "check-send-proxy": {
                  "description": "check send proxy\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "check-sni": {
                  "description": "check sni\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "check-ssl": {
                  "description": "check ssl\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "check_alpn": {
                  "description": "check alpn\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "check_proto": {
                  "description": "check proto\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "check_via_socks4": {
                  "description": "check via socks4\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "ciphers": {
                  "description": "ciphers",
                  "type": "string"
                },
                "ciphersuites": {
                  "description": "ciphersuites",
                  "type": "string"
                },
                "client_sigalgs": {
                  "description": "client sigalgs",
                  "type": "string"
                },
                "cookie": {
                  "description": "cookie\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "crl_file": {
                  "description": "crl file",
                  "type": "string"
                },
                "curves": {
                  "description": "curves",
                  "type": "string"
                },
                "downinter": {
                  "description": "downinter",
                  "format": "int64",
                  "type": "integer"
                },
                "error_limit": {
                  "description": "error limit",
                  "format": "int64",
                  "type": "integer"
                },
                "fall": {
                  "description": "fall",
                  "format": "int64",
                  "type": "integer"
                },
                "fastinter": {
                  "description": "fastinter",
                  "format": "int64",
                  "type": "integer"
                },
                "force_sslv3": {
                  "description": "force sslv3\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "force_tlsv10": {
                  "description": "force tlsv10\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "force_tlsv11": {
                  "description": "force tlsv11\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "force_tlsv12": {
                  "description": "force tlsv12\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "force_tlsv13": {
                  "description": "force tlsv13\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "health_check_address": {
                  "description": "health check address\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "health_check_port": {
                  "description": "health check port\nMaximum: 65535\nMinimum: 1",
                  "format": "int64",
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                },
                "init-addr": {
                  "description": "init addr\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "inter": {
                  "description": "inter",
                  "format": "int64",
                  "type": "integer"
                },
                "log-bufsize": {
                  "description": "log bufsize",
                  "format": "int64",
                  "type": "integer"
                },
                "log_proto": {
                  "description": "log proto\nEnum: [legacy octet-count]",
                  "enum": [
                    "legacy",
                    "octet-count"
                  ],
                  "type": "string"
                },
                "maintenance": {
                  "description": "maintenance\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "max_reuse": {
                  "description": "max reuse",
                  "format": "int64",
                  "type": "integer"
                },
                "maxconn": {
                  "description": "maxconn",
                  "format": "int64",
                  "type": "integer"
                },
                "maxqueue": {
                  "description": "maxqueue",
                  "format": "int64",
                  "type": "integer"
                },
                "minconn": {
                  "description": "minconn",
                  "format": "int64",
                  "type": "integer"
                },
                "namespace": {
                  "description": "namespace",
                  "type": "string"
                },
                "no_sslv3": {
                  "description": "no sslv3\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "no_tlsv10": {
                  "description": "no tlsv10\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "no_tlsv11": {
                  "description": "no tlsv11\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "no_tlsv12": {
                  "description": "no tlsv12\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "no_tlsv13": {
                  "description": "no tlsv13\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "no_verifyhost": {
                  "description": "no verifyhost\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "npn": {
                  "description": "npn",
                  "type": "string"
                },
                "observe": {
                  "description": "observe\nEnum: [layer4 layer7]",
                  "enum": [
                    "layer4",
                    "layer7"
                  ],
                  "type": "string"
                },
                "on-error": {
                  "description": "on error\nEnum: [fastinter fail-check sudden-death mark-down]",
                  "enum": [
                    "fastinter",
                    "fail-check",
                    "sudden-death",
                    "mark-down"
                  ],
                  "type": "string"
                },
                "on-marked-down": {
                  "description": "on marked down\nEnum: [shutdown-sessions]",
                  "enum": [
                    "shutdown-sessions"
                  ],
                  "type": "string"
                },
                "on-marked-up": {
                  "description": "on marked up\nEnum: [shutdown-backup-sessions]",
                  "enum": [
                    "shutdown-backup-sessions"
                  ],
                  "type": "string"
                },
                "pool_low_conn": {
                  "description": "pool low conn",
                  "format": "int64",
                  "type": "integer"
                },
                "pool_max_conn": {
                  "description": "pool max conn",
                  "format": "int64",
                  "type": "integer"
                },
                "pool_purge_delay": {
                  "description": "pool purge delay",
                  "format": "int64",
                  "type": "integer"
                },
                "proto": {
                  "description": "proto\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "proxy-v2-options": {
                  "description": "proxy v2 options",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "redir": {
                  "description": "redir",
                  "type": "string"
                },
                "resolve-net": {
                  "description": "resolve net\nPattern: ^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$",
                  "pattern": "^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$",
                  "type": "string"
                },
                "resolve-prefer": {
                  "description": "resolve prefer\nEnum: [ipv4 ipv6]",
                  "enum": [
                    "ipv4",
                    "ipv6"
                  ],
                  "type": "string"
                },
                "resolve_opts": {
                  "description": "resolve opts\nPattern: ^(allow-dup-ip|ignore-weight|prevent-dup-ip)(,(allow-dup-ip|ignore-weight|prevent-dup-ip))*$",
                  "pattern": "^(allow-dup-ip|ignore-weight|prevent-dup-ip)(,(allow-dup-ip|ignore-weight|prevent-dup-ip))*$",
                  "type": "string"
                },
                "resolvers": {
                  "description": "resolvers\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "rise": {
                  "description": "rise",
                  "format": "int64",
                  "type": "integer"
                },
                "send-proxy": {
                  "description": "send proxy\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "send-proxy-v2": {
                  "description": "send proxy v2\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "send_proxy_v2_ssl": {
                  "description": "send proxy v2 ssl\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "send_proxy_v2_ssl_cn": {
                  "description": "send proxy v2 ssl cn\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "set-proxy-v2-tlv-fmt": {
                  "description": "set proxy v2 tlv fmt",
                  "properties": {
                    "id": {
                      "description": "id\nRequired: true",
                      "type": "string"
                    },
                    "value": {
                      "description": "value\nRequired: true",
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "value"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "shard": {
                  "description": "shard",
                  "format": "int64",
                  "type": "integer"
                },
                "sigalgs": {
                  "description": "sigalgs",
                  "type": "string"
                },
                "slowstart": {
                  "description": "slowstart",
                  "format": "int64",
                  "type": "integer"
                },
                "sni": {
                  "description": "sni\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "socks4": {
                  "description": "socks4\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "source": {
                  "description": "source",
                  "type": "string"
                },
                "ssl": {
                  "description": "ssl\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "ssl_cafile": {
                  "description": "ssl cafile\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "ssl_certificate": {
                  "description": "ssl certificate\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "ssl_max_ver": {
                  "description": "ssl max ver\nEnum: [SSLv3 TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3]",
                  "enum": [
                    "SSLv3",
                    "TLSv1.0",
                    "TLSv1.1",
                    "TLSv1.2",
                    "TLSv1.3"
                  ],
                  "type": "string"
                },
                "ssl_min_ver": {
                  "description": "ssl min ver\nEnum: [SSLv3 TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3]",
                  "enum": [
                    "SSLv3",
                    "TLSv1.0",
                    "TLSv1.1",
                    "TLSv1.2",
                    "TLSv1.3"
                  ],
                  "type": "string"
                },
                "ssl_reuse": {
                  "description": "ssl reuse\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "stick": {
                  "description": "stick\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "tcp_ut": {
                  "description": "tcp ut",
                  "format": "int64",
                  "type": "integer"
                },
                "tfo": {
                  "description": "tfo\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "tls_tickets": {
                  "description": "tls tickets\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "track": {
                  "description": "track",
                  "type": "string"
                },
                "verify": {
                  "description": "verify\nEnum: [none required]",
                  "enum": [
                    "none",
                    "required"
                  ],
                  "type": "string"
                },
                "verifyhost": {
                  "description": "verifyhost",
                  "type": "string"
                },
                "weight": {
                  "description": "weight",
                  "format": "int64",
                  "type": "integer"
                },
                "ws": {
                  "description": "ws\nEnum: [auto h1 h2]",
                  "enum": [
                    "auto",
                    "h1",
                    "h2"
                  ],
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "description": {
              "description": "description",
              "type": "string"
            },
            "disabled": {
              "description": "disabled",
              "type": "boolean"
            },
            "dynamic_cookie_key": {
              "description": "dynamic cookie key\nPattern: ^[^\\s]+$",
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "email_alert": {
              "description": "email alert",
              "properties": {
                "from": {
                  "description": "from\nRequired: true\nPattern: ^\\S+@\\S+$",
                  "pattern": "^\\S+@\\S+$",
                  "type": "string"
                },
                "level": {
                  "description": "level\nEnum: [emerg alert crit err warning notice info debug]",
                  "enum": [
                    "emerg",
                    "alert",
                    "crit",
                    "err",
                    "warning",
                    "notice",
                    "info",
                    "debug"
                  ],
                  "type": "string"
                },
                "mailers": {
                  "description": "mailers\nRequired: true",
                  "type": "string"
                },
                "myhostname": {
                  "description": "myhostname",
                  "type": "string"
                },
                "to": {
                  "description": "to\nRequired: true\nPattern: ^\\S+@\\S+$",
                  "pattern": "^\\S+@\\S+$",
                  "type": "string"
                }
              },
              "required": [
                "from",
                "mailers",
                "to"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "enabled": {
              "description": "enabled",
              "type": "boolean"
            },
            "error_files": {
              "description": "error files",
              "items": {
                "description": "Errorfile errorfile\n\nswagger:model errorfile",
                "properties": {
                  "code": {
                    "description": "code\nEnum: [200 400 401 403 404 405 407 408 410 413 425 429 500 501 502 503 504]",
                    "enum": [
                      200,
                      400,
                      401,
                      403,
                      404,
                      405,
                      407,
                      408,
                      410,
                      413,
                      425,
                      429,
                      500,
                      501,
                      502,
                      503,
                      504
                    ],
                    "format": "int64",
                    "type": "integer"
                  },
                  "file": {
                    "description": "file",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "errorfiles_from_http_errors": {
              "description": "error files from HTTP errors",
              "items": {
                "description": "Errorfiles errorfiles\n\nswagger:model errorfiles",
                "properties": {
                  "codes": {
                    "description": "codes",
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  },
                  "name": {
                    "description": "name",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "errorloc302": {
              "description": "errorloc302",
              "properties": {
                "code": {
                  "description": "code\nRequired: true\nEnum: [200 400 401 403 404 405 407 408 410 413 425 429 500 501 502 503 504]",
                  "enum": [
                    200,
                    400,
                    401,
                    403,
                    404,
                    405,
                    407,
                    408,
                    410,
                    413,
                    425,
                    429,
                    500,
                    501,
                    502,
                    503,
                    504
                  ],
                  "format": "int64",
                  "type": "integer"
                },
                "url": {
                  "description": "url\nRequired: true",
                  "type": "string"
                }
              },
              "required": [
                "code",
                "url"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "errorloc303": {
              "description": "errorloc303",
              "properties": {
                "code": {
                  "description": "code\nRequired: true\nEnum: [200 400 401 403 404 405 407 408 410 413 425 429 500 501 502 503 504]",
                  "enum": [
                    200,
                    400,
                    401,
                    403,
                    404,
                    405,
                    407,
                    408,
                    410,
                    413,
                    425,
                    429,
                    500,
                    501,
                    502,
                    503,
                    504
                  ],
                  "format": "int64",
                  "type": "integer"
                },
                "url": {
                  "description": "url\nRequired: true",
                  "type": "string"
                }
              },
              "required": [
                "code",
                "url"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "external_check": {
              "description": "external check\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "external_check_command": {
              "description": "external check command\nPattern: ^[^\\s]+$",
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "external_check_path": {
              "description": "external check path\nPattern: ^[^\\s]+$",
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "force_persist": {
              "description": "force persist",
              "properties": {
                "cond": {
                  "description": "cond\nRequired: true\nEnum: [if unless]",
                  "enum": [
                    "if",
                    "unless"
                  ],
                  "type": "string"
                },
                "cond_test": {
                  "description": "cond test\nRequired: true",
                  "type": "string"
                }
              },
              "required": [
                "cond",
                "cond_test"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "force_persist_list": {
              "description": "force persist list",
              "items": {
                "description": "ForcePersist force persist\n\nswagger:model ForcePersist",
                "properties": {
                  "cond": {
                    "description": "cond\nRequired: true\nEnum: [if unless]",
                    "enum": [
                      "if",
                      "unless"
                    ],
                    "type": "string"
                  },
                  "cond_test": {
                    "description": "cond test\nRequired: true",
                    "type": "string"
                  }
                },
                "required": [
                  "cond",
                  "cond_test"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "forwardfor": {
              "description": "forwardfor",
              "properties": {
                "enabled": {
                  "description": "enabled\nRequired: true\nEnum: [enabled]",
                  "enum": [
                    "enabled"
                  ],
                  "type": "string"
                },
                "except": {
                  "description": "except\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "header": {
                  "description": "header\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "ifnone": {
                  "description": "ifnone",
                  "type": "boolean"
                }
              },
              "required": [
                "enabled"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "from": {
              "description": "from\nPattern: ^[A-Za-z0-9-_.:]+$",
              "pattern": "^[A-Za-z0-9-_.:]+$",
              "type": "string"
            },
            "fullconn": {
              "description": "fullconn",
              "format": "int64",
              "type": "integer"
            },
            "h1_case_adjust_bogus_server": {
              "description": "h1 case adjust bogus server\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "hash_balance_factor": {
              "description": "hash balance factor",
              "format": "int64",
              "type": "integer"
            },
            "hash_type": {
              "description": "hash type",
              "properties": {
                "function": {
                  "description": "function\nEnum: [sdbm djb2 wt6 crc32 none]",
                  "enum": [
                    "sdbm",
                    "djb2",
                    "wt6",
                    "crc32",
                    "none"
                  ],
                  "type": "string"
                },
                "method": {
                  "description": "method\nEnum: [map-based consistent]",
                  "enum": [
                    "map-based",
                    "consistent"
                  ],
                  "type": "string"
                },
                "modifier": {
                  "description": "modifier\nEnum: [avalanche]",
                  "enum": [
                    "avalanche"
                  ],
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "http-buffer-request": {
              "description": "http buffer request\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http-check": {
              "description": "http check",
              "properties": {
                "addr": {
                  "description": "addr\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "alpn": {
                  "description": "alpn\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "body": {
                  "description": "body",
                  "type": "string"
                },
                "body_log_format": {
                  "description": "body log format",
                  "type": "string"
                },
                "check_comment": {
                  "description": "check comment",
                  "type": "string"
                },
                "default": {
                  "description": "default",
                  "type": "boolean"
                },
                "error_status": {
                  "description": "error status\nEnum: [L7OKC L7RSP L7STS L6RSP L4CON]",
                  "enum": [
                    "L7OKC",
                    "L7RSP",
                    "L7STS",
                    "L6RSP",
                    "L4CON"
                  ],
                  "type": "string"
                },
                "exclamation_mark": {
                  "description": "exclamation mark",
                  "type": "boolean"
                },
                "headers": {
                  "description": "check headers",
                  "items": {
                    "description": "ReturnHeader return header\n\nswagger:model ReturnHeader",
                    "properties": {
                      "fmt": {
                        "description": "fmt\nRequired: true",
                        "type": "string"
                      },
                      "name": {
                        "description": "name\nRequired: true",
                        "type": "string"
                      }
                    },
                    "required": [
                      "fmt",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "index": {
                  "description": "index\nRequired: true",
                  "format": "int64",
                  "type": "integer"
                },
                "linger": {
                  "description": "linger",
                  "type": "boolean"
                },
                "match": {
                  "description": "match\nPattern: ^[^\\s]+$\nEnum: [status rstatus hdr fhdr string rstring]",
                  "enum": [
                    "status",
                    "rstatus",
                    "hdr",
                    "fhdr",
                    "string",
                    "rstring"
                  ],
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "method": {
                  "description": "method\nEnum: [HEAD PUT POST GET TRACE PATCH DELETE CONNECT OPTIONS]",
                  "enum": [
                    "HEAD",
                    "PUT",
                    "POST",
                    "GET",
                    "TRACE",
                    "PATCH",
                    "DELETE",
                    "CONNECT",
                    "OPTIONS"
                  ],
                  "type": "string"
                },
                "min_recv": {
                  "description": "min recv",
                  "format": "int64",
                  "type": "integer"
                },
                "ok_status": {
                  "description": "ok status\nEnum: [L7OK L7OKC L6OK L4OK]",
                  "enum": [
                    "L7OK",
                    "L7OKC",
                    "L6OK",
                    "L4OK"
                  ],
                  "type": "string"
                },
                "on_error": {
                  "description": "on error",
                  "type": "string"
                },
                "on_success": {
                  "description": "on success",
                  "type": "string"
                },
                "pattern": {
                  "description": "pattern",
                  "type": "string"
                },
                "port": {
                  "description": "port\nMaximum: 65535\nMinimum: 1",
                  "format": "int64",
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                },
                "port_string": {
                  "description": "port string",
                  "type": "string"
                },
                "proto": {
                  "description": "proto",
                  "type": "string"
                },
                "send_proxy": {
                  "description": "send proxy",
                  "type": "boolean"
                },
                "sni": {
                  "description": "sni",
                  "type": "string"
                },
                "ssl": {
                  "description": "ssl",
                  "type": "boolean"
                },
                "status-code": {
                  "description": "status code",
                  "type": "string"
                },
                "tout_status": {
                  "description": "tout status\nEnum: [L7TOUT L6TOUT L4TOUT]",
                  "enum": [
                    "L7TOUT",
                    "L6TOUT",
                    "L4TOUT"
                  ],
                  "type": "string"
                },
                "type": {
                  "description": "type\nRequired: true\nEnum: [comment connect disable-on-404 expect send send-state set-var set-var-fmt unset-var]",
                  "enum": [
                    "comment",
                    "connect",
                    "disable-on-404",
                    "expect",
                    "send",
                    "send-state",
                    "set-var",
                    "set-var-fmt",
                    "unset-var"
                  ],
                  "type": "string"
                },
                "uri": {
                  "description": "uri",
                  "type": "string"
                },
                "uri_log_format": {
                  "description": "uri log format",
                  "type": "string"
                },
                "var_expr": {
                  "description": "var expr",
                  "type": "string"
                },
                "var_format": {
                  "description": "var format",
                  "type": "string"
                },
                "var_name": {
                  "description": "var name\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "var_scope": {
                  "description": "var scope\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "version": {
                  "description": "version",
                  "type": "string"
                },
                "via_socks4": {
                  "description": "via socks4",
                  "type": "boolean"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "http-keep-alive": {
              "description": "http keep alive\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http-no-delay": {
              "description": "http no delay\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http-server-close": {
              "description": "http server close\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http-use-htx": {
              "description": "http use htx\nPattern: ^[^\\s]+$\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "http_connection_mode": {
              "description": "http connection mode\nEnum: [httpclose http-server-close http-keep-alive]",
              "enum": [
                "httpclose",
                "http-server-close",
                "http-keep-alive"
              ],
              "type": "string"
            },
            "http_keep_alive_timeout": {
              "description": "http keep alive timeout",
              "format": "int64",
              "type": "integer"
            },
            "http_pretend_keepalive": {
              "description": "http pretend keepalive\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http_proxy": {
              "description": "http proxy\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "http_request_timeout": {
              "description": "http request timeout",
              "format": "int64",
              "type": "integer"
            },
            "http_restrict_req_hdr_names": {
              "description": "http restrict req hdr names\nEnum: [preserve delete reject]",
              "enum": [
                "preserve",
                "delete",
                "reject"
              ],
              "type": "string"
            },
            "http_reuse": {
              "description": "http reuse\nEnum: [aggressive always never safe]",
              "enum": [
                "aggressive",
                "always",
                "never",
                "safe"
              ],
              "type": "string"
            },
            "http_send_name_header": {
              "description": "http send name header",
              "type": "string"
            },
            "httpchk_params": {
              "description": "httpchk params",
              "properties": {
                "method": {
                  "description": "method\nEnum: [HEAD PUT POST GET TRACE PATCH DELETE CONNECT OPTIONS]",
                  "enum": [
                    "HEAD",
                    "PUT",
                    "POST",
                    "GET",
                    "TRACE",
                    "PATCH",
                    "DELETE",
                    "CONNECT",
                    "OPTIONS"
                  ],
                  "type": "string"
                },
                "uri": {
                  "description": "uri\nPattern: ^[^ ]*$",
                  "pattern": "^[^ ]*$",
                  "type": "string"
                },
                "version": {
                  "description": "version",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "httpclose": {
              "description": "httpclose\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "id": {
              "description": "id",
              "format": "int64",
              "type": "integer"
            },
            "ignore_persist": {
              "description": "ignore persist",
              "properties": {
                "cond": {
                  "description": "cond\nRequired: true\nEnum: [if unless]",
                  "enum": [
                    "if",
                    "unless"
                  ],
                  "type": "string"
                },
                "cond_test": {
                  "description": "cond test\nRequired: true",
                  "type": "string"
                }
              },
              "required": [
                "cond",
                "cond_test"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "ignore_persist_list": {
              "description": "ignore persist list",
              "items": {
                "description": "IgnorePersist ignore persist\n\nswagger:model IgnorePersist",
                "properties": {
                  "cond": {
                    "description": "cond\nRequired: true\nEnum: [if unless]",
                    "enum": [
                      "if",
                      "unless"
                    ],
                    "type": "string"
                  },
                  "cond_test": {
                    "description": "cond test\nRequired: true",
                    "type": "string"
                  }
                },
                "required": [
                  "cond",
                  "cond_test"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "independent_streams": {
              "description": "independent streams\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "load_server_state_from_file": {
              "description": "load server state from file\nEnum: [global local none]",
              "enum": [
                "global",
                "local",
                "none"
              ],
              "type": "string"
            },
            "log_health_checks": {
              "description": "log health checks\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "log_tag": {
              "description": "log tag\nPattern: ^[^\\s]+$",
              "pattern": "^[^\\s]+$",
              "type": "string"
            },
            "max_keep_alive_queue": {
              "description": "max keep alive queue",
              "format": "int64",
              "type": "integer"
            },
            "mode": {
              "description": "mode\nEnum: [http tcp log]",
              "enum": [
                "http",
                "tcp",
                "log"
              ],
              "type": "string"
            },
            "mysql_check_params": {
              "description": "mysql check params",
              "properties": {
                "client_version": {
                  "description": "client version\nEnum: [pre-41 post-41]",
                  "enum": [
                    "pre-41",
                    "post-41"
                  ],
                  "type": "string"
                },
                "username": {
                  "description": "username",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "name": {
              "description": "name\nRequired: true\nPattern: ^[A-Za-z0-9-_.:]+$",
              "pattern": "^[A-Za-z0-9-_.:]+$",
              "type": "string"
            },
            "nolinger": {
              "description": "nolinger\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "originalto": {
              "description": "originalto",
              "properties": {
                "enabled": {
                  "description": "enabled\nRequired: true\nEnum: [enabled]",
                  "enum": [
                    "enabled"
                  ],
                  "type": "string"
                },
                "except": {
                  "description": "except\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "header": {
                  "description": "header\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                }
              },
              "required": [
                "enabled"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "persist": {
              "description": "persist\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "persist_rule": {
              "description": "persist rule",
              "properties": {
                "rdp_cookie_name": {
                  "description": "rdp cookie name\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "type": {
                  "description": "type\nRequired: true\nEnum: [rdp-cookie]",
                  "enum": [
                    "rdp-cookie"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "pgsql_check_params": {
              "description": "pgsql check params",
              "properties": {
                "username": {
                  "description": "username",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "prefer_last_server": {
              "description": "prefer last server\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "queue_timeout": {
              "description": "queue timeout",
              "format": "int64",
              "type": "integer"
            },
            "redispatch": {
              "description": "redispatch",
              "properties": {
                "enabled": {
                  "description": "enabled\nRequired: true\nEnum: [enabled disabled]",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "type": "string"
                },
                "interval": {
                  "description": "interval",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "required": [
                "enabled"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "retries": {
              "description": "retries",
              "format": "int64",
              "type": "integer"
            },
            "retry_on": {
              "description": "retry on",
              "type": "string"
            },
            "server_fin_timeout": {
              "description": "server fin timeout",
              "format": "int64",
              "type": "integer"
            },
            "server_state_file_name": {
              "description": "server state file name",
              "type": "string"
            },
            "server_timeout": {
              "description": "server timeout",
              "format": "int64",
              "type": "integer"
            },
            "smtpchk_params": {
              "description": "smtpchk params",
              "properties": {
                "domain": {
                  "description": "domain",
                  "type": "string"
                },
                "hello": {
                  "description": "hello",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "source": {
              "description": "source",
              "properties": {
                "address": {
                  "description": "address\nRequired: true",
                  "type": "string"
                },
                "address_second": {
                  "description": "address second",
                  "type": "string"
                },
                "hdr": {
                  "description": "hdr",
                  "type": "string"
                },
                "interface": {
                  "description": "interface",
                  "type": "string"
                },
                "occ": {
                  "description": "occ",
                  "type": "string"
                },
                "port": {
                  "description": "port\nMaximum: 65535\nMinimum: 1",
                  "format": "int64",
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                },
                "port_second": {
                  "description": "port second\nMaximum: 65535\nMinimum: 1",
                  "format": "int64",
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                },
                "usesrc": {
                  "description": "usesrc\nEnum: [address client clientip hdr_ip]",
                  "enum": [
                    "address",
                    "client",
                    "clientip",
                    "hdr_ip"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "address"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "splice_auto": {
              "description": "splice auto\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "splice_request": {
              "description": "splice request\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "splice_response": {
              "description": "splice response\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "spop_check": {
              "description": "spop check\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "srvtcpka": {
              "description": "srvtcpka\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "srvtcpka_cnt": {
              "description": "srvtcpka cnt",
              "format": "int64",
              "type": "integer"
            },
            "srvtcpka_idle": {
              "description": "srvtcpka idle",
              "format": "int64",
              "type": "integer"
            },
            "srvtcpka_intvl": {
              "description": "srvtcpka intvl",
              "format": "int64",
              "type": "integer"
            },
            "stats_options": {
              "description": "stats options",
              "properties": {
                "stats_admin": {
                  "description": "stats admin",
                  "type": "boolean"
                },
                "stats_admin_cond": {
                  "description": "stats admin cond\nEnum: [if unless]",
                  "enum": [
                    "if",
                    "unless"
                  ],
                  "type": "string"
                },
                "stats_admin_cond_test": {
                  "description": "stats admin cond test",
                  "type": "string"
                },
                "stats_auths": {
                  "description": "stats auths",
                  "items": {
                    "description": "StatsAuth stats auth\n\nswagger:model stats_auth",
                    "properties": {
                      "passwd": {
                        "description": "passwd\nRequired: true",
                        "type": "string"
                      },
                      "user": {
                        "description": "user\nRequired: true",
                        "type": "string"
                      }
                    },
                    "required": [
                      "passwd",
                      "user"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "stats_enable": {
                  "description": "stats enable",
                  "type": "boolean"
                },
                "stats_hide_version": {
                  "description": "stats hide version",
                  "type": "boolean"
                },
                "stats_http_requests": {
                  "description": "stats http requests",
                  "items": {
                    "description": "StatsHTTPRequest stats http request\n\nswagger:model stats_http_request",
                    "properties": {
                      "cond": {
                        "description": "cond",
                        "type": "string"
                      },
                      "cond_test": {
                        "description": "cond test",
                        "type": "string"
                      },
                      "realm": {
                        "description": "realm",
                        "type": "string"
                      },
                      "type": {
                        "description": "type\nRequired: true\nEnum: [allow deny auth]",
                        "enum": [
                          "allow",
                          "deny",
                          "auth"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "stats_maxconn": {
                  "description": "stats maxconn\nMinimum: 1",
                  "format": "int64",
                  "minimum": 1,
                  "type": "integer"
                },
                "stats_realm": {
                  "description": "stats realm",
                  "type": "boolean"
                },
                "stats_realm_realm": {
                  "description": "stats realm realm",
                  "type": "string"
                },
                "stats_refresh_delay": {
                  "description": "stats refresh delay",
                  "format": "int64",
                  "type": "integer"
                },
                "stats_show_desc": {
                  "description": "stats show desc",
                  "type": "string"
                },
                "stats_show_legends": {
                  "description": "stats show legends",
                  "type": "boolean"
                },
                "stats_show_modules": {
                  "description": "stats show modules",
                  "type": "boolean"
                },
                "stats_show_node_name": {
                  "description": "stats show node name\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "stats_uri_prefix": {
                  "description": "stats uri prefix\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                }
              },
              "required": [
                "stats_show_node_name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "stick_table": {
              "description": "stick table",
              "properties": {
                "expire": {
                  "description": "expire",
                  "format": "int64",
                  "type": "integer"
                },
                "keylen": {
                  "description": "keylen",
                  "format": "int64",
                  "type": "integer"
                },
                "nopurge": {
                  "description": "nopurge",
                  "type": "boolean"
                },
                "peers": {
                  "description": "peers\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "size": {
                  "description": "size",
                  "format": "int64",
                  "type": "integer"
                },
                "srvkey": {
                  "description": "srvkey\nEnum: [addr name]",
                  "enum": [
                    "addr",
                    "name"
                  ],
                  "type": "string"
                },
                "store": {
                  "description": "store\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                },
                "type": {
                  "description": "type\nEnum: [ip ipv6 integer string binary]",
                  "enum": [
                    "ip",
                    "ipv6",
                    "integer",
                    "string",
                    "binary"
                  ],
                  "type": "string"
                },
                "write_to": {
                  "description": "write to\nPattern: ^[^\\s]+$",
                  "pattern": "^[^\\s]+$",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "tarpit_timeout": {
              "description": "tarpit timeout",
              "format": "int64",
              "type": "integer"
            },
            "tcp_smart_connect": {
              "description": "tcp smart connect\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "tcpka": {
              "description": "tcpka\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "transparent": {
              "description": "transparent\nEnum: [enabled disabled]",
              "enum": [
                "enabled",
                "disabled"
              ],
              "type": "string"
            },
            "tunnel_timeout": {
              "description": "tunnel timeout",
              "format": "int64",
              "type": "integer"
            },
            "use_fcgi_app": {
              "description": "use fcgi app",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "http-requests": {
          "description": "HTTPRequestRules HTTP Request Rules Array\n\nHAProxy HTTP request rules array (corresponds to http-request directives)\n\nswagger:model http_request_rules",
          "items": {
            "description": "HTTPRequestRule HTTP Request Rule\n\nHAProxy HTTP request rule configuration (corresponds to http-request directives)\nExample: {\"cond\":\"unless\",\"cond_test\":\"{ src 192.168.0.0/16 }\",\"hdr_format\":\"%T\",\"hdr_name\":\"X-Haproxy-Current-Date\",\"index\":0,\"type\":\"add-header\"}\n\nswagger:model http_request_rule",
            "properties": {
              "acl_file": {
                "description": "acl file\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "acl_keyfmt": {
                "description": "acl keyfmt\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "auth_realm": {
                "description": "auth realm\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "bandwidth_limit_limit": {
                "description": "bandwidth limit limit",
                "type": "string"
              },
              "bandwidth_limit_name": {
                "description": "bandwidth limit name",
                "type": "string"
              },
              "bandwidth_limit_period": {
                "description": "bandwidth limit period",
                "type": "string"
              },
              "cache_name": {
                "description": "cache name\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "capture_id": {
                "description": "capture id",
                "format": "int64",
                "type": "integer"
              },
              "capture_len": {
                "description": "capture len",
                "format": "int64",
                "type": "integer"
              },
              "capture_sample": {
                "description": "capture sample\nPattern: ^(?:[A-Za-z]+\\(\"([A-Za-z\\s]+)\"\\)|[A-Za-z]+)",
                "pattern": "^(?:[A-Za-z]+\\(\"([A-Za-z\\s]+)\"\\)|[A-Za-z]+)",
                "type": "string"
              },
              "cond": {
                "description": "cond\nEnum: [if unless]",
                "enum": [
                  "if",
                  "unless"
                ],
                "type": "string"
              },
              "cond_test": {
                "description": "cond test",
                "type": "string"
              },
              "deny_status": {
                "description": "deny status\nMaximum: 599\nMinimum: 200",
                "format": "int64",
                "maximum": 599,
                "minimum": 200,
                "type": "integer"
              },
              "expr": {
                "description": "expr",
                "type": "string"
              },
              "hdr_format": {
                "description": "hdr format",
                "type": "string"
              },
              "hdr_match": {
                "description": "hdr match",
                "type": "string"
              },
              "hdr_method": {
                "description": "hdr method",
                "type": "string"
              },
              "hdr_name": {
                "description": "hdr name",
                "type": "string"
              },
              "hint_format": {
                "description": "hint format\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "hint_name": {
                "description": "hint name\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "index": {
                "description": "index\nRequired: true",
                "format": "int64",
                "type": "integer"
              },
              "log_level": {
                "description": "log level\nEnum: [emerg alert crit err warning notice info debug silent]",
                "enum": [
                  "emerg",
                  "alert",
                  "crit",
                  "err",
                  "warning",
                  "notice",
                  "info",
                  "debug",
                  "silent"
                ],
                "type": "string"
              },
              "lua_action": {
                "description": "lua action\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "lua_params": {
                "description": "lua params",
                "type": "string"
              },
              "map_file": {
                "description": "map file\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "map_keyfmt": {
                "description": "map keyfmt\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "map_valuefmt": {
                "description": "map valuefmt\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "mark_value": {
                "description": "mark value\nPattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$",
                "pattern": "^(0x[0-9A-Fa-f]+|[0-9]+)$",
                "type": "string"
              },
              "method_fmt": {
                "description": "method fmt\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "nice_value": {
                "description": "nice value\nMaximum: 1024\nMinimum: -1024",
                "format": "int64",
                "maximum": 1024,
                "minimum": -1024,
                "type": "integer"
              },
              "normalizer": {
                "description": "normalizer\nEnum: [fragment-encode fragment-strip path-merge-slashes path-strip-dot path-strip-dotdot percent-decode-unreserved percent-to-uppercase query-sort-by-name]",
                "enum": [
                  "fragment-encode",
                  "fragment-strip",
                  "path-merge-slashes",
                  "path-strip-dot",
                  "path-strip-dotdot",
                  "percent-decode-unreserved",
                  "percent-to-uppercase",
                  "query-sort-by-name"
                ],
                "type": "string"
              },
              "normalizer_full": {
                "description": "normalizer full",
                "type": "boolean"
              },
              "normalizer_strict": {
                "description": "normalizer strict",
                "type": "boolean"
              },
              "path_fmt": {
                "description": "path fmt\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "path_match": {
                "description": "path match\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "protocol": {
                "description": "protocol\nEnum: [ipv4 ipv6]",
                "enum": [
                  "ipv4",
                  "ipv6"
                ],
                "type": "string"
              },
              "query-fmt": {
                "description": "query fmt",
                "type": "string"
              },
              "redir_code": {
                "description": "redir code\nEnum: [301 302 303 307 308]",
                "enum": [
                  301,
                  302,
                  303,
                  307,
                  308
                ],
                "format": "int64",
                "type": "integer"
              },
              "redir_option": {
                "description": "redir option",
                "type": "string"
              },
              "redir_type": {
                "description": "redir type\nEnum: [location prefix scheme]",
                "enum": [
                  "location",
                  "prefix",
                  "scheme"
                ],
                "type": "string"
              },
              "redir_value": {
                "description": "redir value\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "resolvers": {
                "description": "resolvers",
                "type": "string"
              },
              "return_content": {
                "description": "return content",
                "type": "string"
              },
              "return_content_format": {
                "description": "return content format\nEnum: [default-errorfiles errorfile errorfiles file lf-file string lf-string]",
                "enum": [
                  "default-errorfiles",
                  "errorfile",
                  "errorfiles",
                  "file",
                  "lf-file",
                  "string",
                  "lf-string"
                ],
                "type": "string"
              },
              "return_content_type": {
                "description": "return content type",
                "type": "string"
              },
              "return_hdrs": {
                "description": "return headers",
                "items": {
                  "description": "ReturnHeader return header\n\nswagger:model ReturnHeader",
                  "properties": {
                    "fmt": {
                      "description": "fmt\nRequired: true",
                      "type": "string"
                    },
                    "name": {
                      "description": "name\nRequired: true",
                      "type": "string"
                    }
                  },
                  "required": [
                    "fmt",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "return_status_code": {
                "description": "return status code\nMaximum: 599\nMinimum: 200",
                "format": "int64",
                "maximum": 599,
                "minimum": 200,
                "type": "integer"
              },
              "rst_ttl": {
                "description": "rst ttl",
                "format": "int64",
                "type": "integer"
              },
              "sc_expr": {
                "description": "sc expr",
                "type": "string"
              },
              "sc_id": {
                "description": "sc id",
                "format": "int64",
                "type": "integer"
              },
              "sc_idx": {
                "description": "sc idx",
                "format": "int64",
                "type": "integer"
              },
              "sc_int": {
                "description": "sc int",
                "format": "int64",
                "type": "integer"
              },
              "service_name": {
                "description": "service name",
                "type": "string"
              },
              "spoe_engine": {
                "description": "spoe engine\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "spoe_group": {
                "description": "spoe group\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "strict_mode": {
                "description": "strict mode\nEnum: [on off]",
                "enum": [
                  "on",
                  "off"
                ],
                "type": "string"
              },
              "timeout": {
                "description": "timeout",
                "type": "string"
              },
              "timeout_type": {
                "description": "timeout type\nEnum: [server tunnel client]",
                "enum": [
                  "server",
                  "tunnel",
                  "client"
                ],
                "type": "string"
              },
              "tos_value": {
                "description": "tos value\nPattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$",
                "pattern": "^(0x[0-9A-Fa-f]+|[0-9]+)$",
                "type": "string"
              },
              "track-sc0-key": {
                "description": "track sc0 key\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track-sc0-table": {
                "description": "track sc0 table\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track-sc1-key": {
                "description": "track sc1 key\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track-sc1-table": {
                "description": "track sc1 table\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track-sc2-key": {
                "description": "track sc2 key\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track-sc2-table": {
                "description": "track sc2 table\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track_sc_key": {
                "description": "track sc key\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "track_sc_stick_counter": {
                "description": "track sc stick counter",
                "format": "int64",
                "type": "integer"
              },
              "track_sc_table": {
                "description": "track sc table\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "type": {
                "description": "type\nRequired: true\nEnum: [add-acl add-header allow auth cache-use capture del-acl del-header del-map deny disable-l7-retry do-resolve early-hint lua normalize-uri redirect reject replace-header replace-path replace-pathq replace-uri replace-value return sc-add-gpc sc-inc-gpc sc-inc-gpc0 sc-inc-gpc1 sc-set-gpt sc-set-gpt0 send-spoe-group set-dst set-dst-port set-header set-log-level set-map set-mark set-method set-nice set-path set-pathq set-priority-class set-priority-offset set-query set-src set-src-port set-timeout set-tos set-uri set-var set-var-fmt silent-drop strict-mode tarpit track-sc0 track-sc1 track-sc2 track-sc unset-var use-service wait-for-body wait-for-handshake set-bandwidth-limit]",
                "enum": [
                  "add-acl",
                  "add-header",
                  "allow",
                  "auth",
                  "cache-use",
                  "capture",
                  "del-acl",
                  "del-header",
                  "del-map",
                  "deny",
                  "disable-l7-retry",
                  "do-resolve",
                  "early-hint",
                  "lua",
                  "normalize-uri",
                  "redirect",
                  "reject",
                  "replace-header",
                  "replace-path",
                  "replace-pathq",
                  "replace-uri",
                  "replace-value",
                  "return",
                  "sc-add-gpc",
                  "sc-inc-gpc",
                  "sc-inc-gpc0",
                  "sc-inc-gpc1",
                  "sc-set-gpt",
                  "sc-set-gpt0",
                  "send-spoe-group",
                  "set-dst",
                  "set-dst-port",
                  "set-header",
                  "set-log-level",
                  "set-map",
                  "set-mark",
                  "set-method",
                  "set-nice",
                  "set-path",
                  "set-pathq",
                  "set-priority-class",
                  "set-priority-offset",
                  "set-query",
                  "set-src",
                  "set-src-port",
                  "set-timeout",
                  "set-tos",
                  "set-uri",
                  "set-var",
                  "set-var-fmt",
                  "silent-drop",
                  "strict-mode",
                  "tarpit",
                  "track-sc0",
                  "track-sc1",
                  "track-sc2",
                  "track-sc",
                  "unset-var",
                  "use-service",
                  "wait-for-body",
                  "wait-for-handshake",
                  "set-bandwidth-limit"
                ],
                "type": "string"
              },
              "uri-fmt": {
                "description": "uri fmt",
                "type": "string"
              },
              "uri-match": {
                "description": "uri match",
                "type": "string"
              },
              "var_expr": {
                "description": "var expr",
                "type": "string"
              },
              "var_format": {
                "description": "var format",
                "type": "string"
              },
              "var_name": {
                "description": "var name\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "var_scope": {
                "description": "var scope\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "wait_at_least": {
                "description": "wait at least",
                "format": "int64",
                "type": "integer"
              },
              "wait_time": {
                "description": "wait time",
                "format": "int64",
                "type": "integer"
              }
            },
            "required": [
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "config"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
