{
  "description": "TCP is a specification for a TCP 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": "TCPSpec defines the desired state of a TCPService",
      "items": {
        "properties": {
          "frontend": {
            "properties": {
              "accept_invalid_http_request": {
                "description": "accept invalid http request\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "acl_list": {
                "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"
              },
              "backend_switching_rule_list": {
                "description": "BackendSwitchingRules Backend Switching Rules Array\n\nHAProxy backend switching rules array (corresponds to use_backend directives)\n\nswagger:model backend_switching_rules",
                "items": {
                  "description": "BackendSwitchingRule Backend Switching Rule\n\nHAProxy backend switching rule configuration (corresponds to use_backend directive)\nExample: {\"cond\":\"if\",\"cond_test\":\"{ req_ssl_sni -i www.example.com }\",\"index\":0,\"name\":\"test_backend\"}\n\nswagger:model backend_switching_rule",
                  "properties": {
                    "cond": {
                      "description": "cond\nEnum: [if unless]",
                      "enum": [
                        "if",
                        "unless"
                      ],
                      "type": "string"
                    },
                    "cond_test": {
                      "description": "cond test",
                      "type": "string"
                    },
                    "index": {
                      "description": "index\nRequired: true",
                      "format": "int64",
                      "type": "integer"
                    },
                    "name": {
                      "description": "name\nRequired: true\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "backlog": {
                "description": "backlog",
                "format": "int64",
                "type": "integer"
              },
              "bind_process": {
                "description": "bind process\nPattern: ^[^\\s]+$",
                "pattern": "^[^\\s]+$",
                "type": "string"
              },
              "binds": {
                "items": {
                  "description": "Bind Bind\n\n# HAProxy frontend bind configuration\n\nswagger:model bind",
                  "properties": {
                    "accept_netscaler_cip": {
                      "description": "accept netscaler cip",
                      "format": "int64",
                      "type": "integer"
                    },
                    "accept_proxy": {
                      "description": "accept proxy",
                      "type": "boolean"
                    },
                    "address": {
                      "description": "address\nExample: 127.0.0.1\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "allow_0rtt": {
                      "description": "allow 0rtt",
                      "type": "boolean"
                    },
                    "alpn": {
                      "description": "alpn\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "backlog": {
                      "description": "backlog",
                      "type": "string"
                    },
                    "ca_ignore_err": {
                      "description": "ca ignore err",
                      "type": "string"
                    },
                    "ca_sign_file": {
                      "description": "ca sign file",
                      "type": "string"
                    },
                    "ca_sign_pass": {
                      "description": "ca sign pass",
                      "type": "string"
                    },
                    "ca_verify_file": {
                      "description": "ca verify file",
                      "type": "string"
                    },
                    "ciphers": {
                      "description": "ciphers",
                      "type": "string"
                    },
                    "ciphersuites": {
                      "description": "ciphersuites",
                      "type": "string"
                    },
                    "client_sigalgs": {
                      "description": "client sigalgs",
                      "type": "string"
                    },
                    "crl_file": {
                      "description": "crl file",
                      "type": "string"
                    },
                    "crt_ignore_err": {
                      "description": "crt ignore err",
                      "type": "string"
                    },
                    "crt_list": {
                      "description": "crt list",
                      "type": "string"
                    },
                    "curves": {
                      "description": "curves",
                      "type": "string"
                    },
                    "defer_accept": {
                      "description": "defer accept",
                      "type": "boolean"
                    },
                    "ecdhe": {
                      "description": "ecdhe",
                      "type": "string"
                    },
                    "expose_fd_listeners": {
                      "description": "expose fd listeners",
                      "type": "boolean"
                    },
                    "force_sslv3": {
                      "description": "force sslv3",
                      "type": "boolean"
                    },
                    "force_tlsv10": {
                      "description": "force tlsv10",
                      "type": "boolean"
                    },
                    "force_tlsv11": {
                      "description": "force tlsv11",
                      "type": "boolean"
                    },
                    "force_tlsv12": {
                      "description": "force tlsv12",
                      "type": "boolean"
                    },
                    "force_tlsv13": {
                      "description": "force tlsv13",
                      "type": "boolean"
                    },
                    "generate_certificates": {
                      "description": "generate certificates",
                      "type": "boolean"
                    },
                    "gid": {
                      "description": "gid",
                      "format": "int64",
                      "type": "integer"
                    },
                    "group": {
                      "description": "group",
                      "type": "string"
                    },
                    "id": {
                      "description": "id",
                      "type": "string"
                    },
                    "interface": {
                      "description": "interface",
                      "type": "string"
                    },
                    "level": {
                      "description": "level\nExample: user\nEnum: [user operator admin]",
                      "enum": [
                        "user",
                        "operator",
                        "admin"
                      ],
                      "type": "string"
                    },
                    "maxconn": {
                      "description": "maxconn\nExample: 1234",
                      "format": "int64",
                      "type": "integer"
                    },
                    "mode": {
                      "description": "mode",
                      "type": "string"
                    },
                    "mss": {
                      "description": "mss",
                      "type": "string"
                    },
                    "name": {
                      "description": "name\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "namespace": {
                      "description": "namespace\nExample: app",
                      "type": "string"
                    },
                    "nbconn": {
                      "description": "nbconn",
                      "format": "int64",
                      "type": "integer"
                    },
                    "nice": {
                      "description": "nice\nExample: 1",
                      "format": "int64",
                      "type": "integer"
                    },
                    "no_alpn": {
                      "description": "no alpn",
                      "type": "boolean"
                    },
                    "no_ca_names": {
                      "description": "no ca names",
                      "type": "boolean"
                    },
                    "no_sslv3": {
                      "description": "no sslv3",
                      "type": "boolean"
                    },
                    "no_tls_tickets": {
                      "description": "no tls tickets",
                      "type": "boolean"
                    },
                    "no_tlsv10": {
                      "description": "no tlsv10",
                      "type": "boolean"
                    },
                    "no_tlsv11": {
                      "description": "no tlsv11",
                      "type": "boolean"
                    },
                    "no_tlsv12": {
                      "description": "no tlsv12",
                      "type": "boolean"
                    },
                    "no_tlsv13": {
                      "description": "no tlsv13",
                      "type": "boolean"
                    },
                    "npn": {
                      "description": "npn",
                      "type": "string"
                    },
                    "port": {
                      "description": "port\nExample: 80\nMaximum: 65535\nMinimum: 1",
                      "format": "int64",
                      "maximum": 65535,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "port-range-end": {
                      "description": "port range end\nExample: 81\nMaximum: 65535\nMinimum: 1",
                      "format": "int64",
                      "maximum": 65535,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "prefer_client_ciphers": {
                      "description": "prefer client ciphers",
                      "type": "boolean"
                    },
                    "process": {
                      "description": "process\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "proto": {
                      "description": "proto",
                      "type": "string"
                    },
                    "quic-cc-algo": {
                      "description": "quic cc algo\nEnum: [cubic newreno]",
                      "enum": [
                        "cubic",
                        "newreno"
                      ],
                      "type": "string"
                    },
                    "quic-force-retry": {
                      "description": "quic force retry",
                      "type": "boolean"
                    },
                    "quic-socket": {
                      "description": "quic socket\nEnum: [connection listener]",
                      "enum": [
                        "connection",
                        "listener"
                      ],
                      "type": "string"
                    },
                    "severity_output": {
                      "description": "severity output\nExample: none\nEnum: [none number string]",
                      "enum": [
                        "none",
                        "number",
                        "string"
                      ],
                      "type": "string"
                    },
                    "sigalgs": {
                      "description": "sigalgs",
                      "type": "string"
                    },
                    "ssl": {
                      "description": "ssl",
                      "type": "boolean"
                    },
                    "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"
                    },
                    "strict_sni": {
                      "description": "strict sni",
                      "type": "boolean"
                    },
                    "tcp_user_timeout": {
                      "description": "tcp user timeout",
                      "format": "int64",
                      "type": "integer"
                    },
                    "tfo": {
                      "description": "tfo",
                      "type": "boolean"
                    },
                    "thread": {
                      "description": "thread",
                      "type": "string"
                    },
                    "tls_ticket_keys": {
                      "description": "tls ticket keys",
                      "type": "string"
                    },
                    "transparent": {
                      "description": "transparent",
                      "type": "boolean"
                    },
                    "uid": {
                      "description": "uid",
                      "type": "string"
                    },
                    "user": {
                      "description": "user",
                      "type": "string"
                    },
                    "v4v6": {
                      "description": "v4v6",
                      "type": "boolean"
                    },
                    "v6only": {
                      "description": "v6only",
                      "type": "boolean"
                    },
                    "verify": {
                      "description": "verify\nExample: none\nEnum: [none optional required]",
                      "enum": [
                        "none",
                        "optional",
                        "required"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "capture_list": {
                "description": "Captures Declare capture array\n\nswagger:model captures",
                "items": {
                  "description": "Capture Declare Capture\n\nswagger:model capture",
                  "properties": {
                    "index": {
                      "description": "index\nRequired: true",
                      "format": "int64",
                      "type": "integer"
                    },
                    "length": {
                      "description": "length\nRequired: true",
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "description": "type\nRequired: true\nEnum: [request response]",
                      "enum": [
                        "request",
                        "response"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "length",
                    "type"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "clflog": {
                "description": "clflog",
                "type": "boolean"
              },
              "client_fin_timeout": {
                "description": "client fin timeout",
                "format": "int64",
                "type": "integer"
              },
              "client_timeout": {
                "description": "client timeout",
                "format": "int64",
                "type": "integer"
              },
              "clitcpka": {
                "description": "clitcpka\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "clitcpka_cnt": {
                "description": "clitcpka cnt",
                "format": "int64",
                "type": "integer"
              },
              "clitcpka_idle": {
                "description": "clitcpka idle",
                "format": "int64",
                "type": "integer"
              },
              "clitcpka_intvl": {
                "description": "clitcpka intvl",
                "format": "int64",
                "type": "integer"
              },
              "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
              },
              "contstats": {
                "description": "contstats\nEnum: [enabled]",
                "enum": [
                  "enabled"
                ],
                "type": "string"
              },
              "default_backend": {
                "description": "default backend\nPattern: ^[A-Za-z0-9-_.:]+$",
                "pattern": "^[A-Za-z0-9-_.:]+$",
                "type": "string"
              },
              "description": {
                "description": "description",
                "type": "string"
              },
              "disable_h2_upgrade": {
                "description": "disable h2 upgrade\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "disabled": {
                "description": "disabled",
                "type": "boolean"
              },
              "dontlog_normal": {
                "description": "dontlog normal\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "dontlognull": {
                "description": "dontlognull\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "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"
              },
              "error_log_format": {
                "description": "error log format",
                "type": "string"
              },
              "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
              },
              "filter_list": {
                "description": "Filters Filters Array\n\nHAProxy filters array (corresponds to filter directive)\n\nswagger:model filters",
                "items": {
                  "description": "Filter Filter\n\nHAProxy filters\nExample: {\"index\":0,\"trace_name\":\"name\",\"trace_rnd_parsing\":true,\"type\":\"trace\"}\n\nswagger:model filter",
                  "properties": {
                    "app_name": {
                      "description": "Name of the fcgi-app section this filter will use.\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "bandwidth_limit_name": {
                      "description": "Filter name that will be used by 'set-bandwidth-limit' actions to reference a specific bandwidth limitation filter\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "cache_name": {
                      "description": "cache name\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "default_limit": {
                      "description": "The max number of bytes that can be forwarded over the period.\nThe value must be specified for per-stream and shared bandwidth limitation filters.\nIt follows the HAProxy size format and is expressed in bytes.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "default_period": {
                      "description": "The default time period used to evaluate the bandwidth limitation rate.\nIt can be specified for per-stream bandwidth limitation filters only.\nIt follows the HAProxy time format and is expressed in milliseconds.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "index": {
                      "description": "index\nRequired: true",
                      "format": "int64",
                      "type": "integer"
                    },
                    "key": {
                      "description": "A sample expression rule.\nIt describes what elements will be analyzed, extracted, combined, and used to select which table entry to update the counters.\nIt must be specified for shared bandwidth limitation filters only.",
                      "type": "string"
                    },
                    "limit": {
                      "description": "The max number of bytes that can be forwarded over the period.\nThe value must be specified for per-stream and shared bandwidth limitation filters.\nIt follows the HAProxy size format and is expressed in bytes.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "min_size": {
                      "description": "The optional minimum number of bytes forwarded at a time by a stream excluding the last packet that may be smaller.\nThis value can be specified for per-stream and shared bandwidth limitation filters.\nIt follows the HAProxy size format and is expressed in bytes.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "spoe_config": {
                      "description": "spoe config\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "spoe_engine": {
                      "description": "spoe engine\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "table": {
                      "description": "An optional table to be used instead of the default one, which is the stick-table declared in the current proxy.\nIt can be specified for shared bandwidth limitation filters only.",
                      "type": "string"
                    },
                    "trace_hexdump": {
                      "description": "trace hexdump",
                      "type": "boolean"
                    },
                    "trace_name": {
                      "description": "trace name\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "trace_rnd_forwarding": {
                      "description": "trace rnd forwarding",
                      "type": "boolean"
                    },
                    "trace_rnd_parsing": {
                      "description": "trace rnd parsing",
                      "type": "boolean"
                    },
                    "type": {
                      "description": "type\nRequired: true\nEnum: [bwlim-in bwlim-out cache compression fcgi-app spoe trace]",
                      "enum": [
                        "bwlim-in",
                        "bwlim-out",
                        "cache",
                        "compression",
                        "fcgi-app",
                        "spoe",
                        "trace"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "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"
              },
              "h1_case_adjust_bogus_client": {
                "description": "h1 case adjust bogus client\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "http-buffer-request": {
                "description": "http buffer request\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "http-use-htx": {
                "description": "http use htx\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "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_ignore_probes": {
                "description": "http ignore probes\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "http_keep_alive_timeout": {
                "description": "http keep alive timeout",
                "format": "int64",
                "type": "integer"
              },
              "http_no_delay": {
                "description": "http no delay\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_use_proxy_header": {
                "description": "http use proxy header\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "httplog": {
                "description": "httplog",
                "type": "boolean"
              },
              "httpslog": {
                "description": "httpslog\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "id": {
                "description": "id",
                "format": "int64",
                "type": "integer"
              },
              "idle_close_on_response": {
                "description": "idle close on response\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "independent_streams": {
                "description": "independent streams\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "log_format": {
                "description": "log format",
                "type": "string"
              },
              "log_format_sd": {
                "description": "log format sd",
                "type": "string"
              },
              "log_separate_errors": {
                "description": "log separate errors\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "log_tag": {
                "description": "log tag\nPattern: ^[A-Za-z0-9-_.:]+$",
                "pattern": "^[A-Za-z0-9-_.:]+$",
                "type": "string"
              },
              "log_target_list": {
                "description": "LogTargets Log Target Array\n\nHAProxy log target array (corresponds to log directives)\n\nswagger:model log_targets",
                "items": {
                  "description": "LogTarget Log Target\n\nPer-instance logging of events and traffic.\n\nswagger:model log_target",
                  "properties": {
                    "address": {
                      "description": "address\nPattern: ^[^\\s]+$",
                      "pattern": "^[^\\s]+$",
                      "type": "string"
                    },
                    "facility": {
                      "description": "facility\nEnum: [kern user mail daemon auth syslog lpr news uucp cron auth2 ftp ntp audit alert cron2 local0 local1 local2 local3 local4 local5 local6 local7]",
                      "enum": [
                        "kern",
                        "user",
                        "mail",
                        "daemon",
                        "auth",
                        "syslog",
                        "lpr",
                        "news",
                        "uucp",
                        "cron",
                        "auth2",
                        "ftp",
                        "ntp",
                        "audit",
                        "alert",
                        "cron2",
                        "local0",
                        "local1",
                        "local2",
                        "local3",
                        "local4",
                        "local5",
                        "local6",
                        "local7"
                      ],
                      "type": "string"
                    },
                    "format": {
                      "description": "format\nEnum: [local rfc3164 rfc5424 priority short timed iso raw]",
                      "enum": [
                        "local",
                        "rfc3164",
                        "rfc5424",
                        "priority",
                        "short",
                        "timed",
                        "iso",
                        "raw"
                      ],
                      "type": "string"
                    },
                    "global": {
                      "description": "global",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "index\nRequired: true",
                      "format": "int64",
                      "type": "integer"
                    },
                    "length": {
                      "description": "length",
                      "format": "int64",
                      "type": "integer"
                    },
                    "level": {
                      "description": "level\nEnum: [emerg alert crit err warning notice info debug]",
                      "enum": [
                        "emerg",
                        "alert",
                        "crit",
                        "err",
                        "warning",
                        "notice",
                        "info",
                        "debug"
                      ],
                      "type": "string"
                    },
                    "minlevel": {
                      "description": "minlevel\nEnum: [emerg alert crit err warning notice info debug]",
                      "enum": [
                        "emerg",
                        "alert",
                        "crit",
                        "err",
                        "warning",
                        "notice",
                        "info",
                        "debug"
                      ],
                      "type": "string"
                    },
                    "nolog": {
                      "description": "nolog",
                      "type": "boolean"
                    },
                    "sample_range": {
                      "description": "sample range",
                      "type": "string"
                    },
                    "sample_size": {
                      "description": "sample size",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "logasap": {
                "description": "logasap\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "maxconn": {
                "description": "maxconn",
                "format": "int64",
                "type": "integer"
              },
              "mode": {
                "description": "mode\nEnum: [http tcp]",
                "enum": [
                  "http",
                  "tcp"
                ],
                "type": "string"
              },
              "monitor_fail": {
                "description": "monitor fail",
                "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
              },
              "monitor_uri": {
                "description": "monitor uri",
                "type": "string"
              },
              "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
              },
              "socket_stats": {
                "description": "socket stats\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "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"
              },
              "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_request_rule_list": {
                "description": "TCPRequestRules TCP Request Rules Array\n\nHAProxy TCP request rules array (corresponds to tcp-request directive)\n\nswagger:model tcp_request_rules",
                "items": {
                  "description": "TCPRequestRule TCP Request Rule\n\nHAProxy TCP Request Rule configuration (corresponds to tcp-request)\nExample: {\"cond\":\"if\",\"cond_test\":\"{ src 192.168.0.0/16 }\",\"index\":0,\"type\":\"connection\"}\n\nswagger:model tcp_request_rule",
                  "properties": {
                    "action": {
                      "description": "action\nEnum: [accept attach-srv capture do-resolve expect-netscaler-cip expect-proxy lua reject sc-add-gpc sc-inc-gpc sc-inc-gpc0 sc-inc-gpc1 sc-set-gpt sc-set-gpt0 send-spoe-group set-bandwidth-limit set-dst-port set-dst set-log-level set-mark set-nice set-priority-class set-priority-offset set-src set-src-port set-tos set-var set-var-fmt silent-drop switch-mode track-sc0 track-sc1 track-sc2 track-sc unset-var use-service]",
                      "enum": [
                        "accept",
                        "attach-srv",
                        "capture",
                        "do-resolve",
                        "expect-netscaler-cip",
                        "expect-proxy",
                        "lua",
                        "reject",
                        "sc-add-gpc",
                        "sc-inc-gpc",
                        "sc-inc-gpc0",
                        "sc-inc-gpc1",
                        "sc-set-gpt",
                        "sc-set-gpt0",
                        "send-spoe-group",
                        "set-bandwidth-limit",
                        "set-dst-port",
                        "set-dst",
                        "set-log-level",
                        "set-mark",
                        "set-nice",
                        "set-priority-class",
                        "set-priority-offset",
                        "set-src",
                        "set-src-port",
                        "set-tos",
                        "set-var",
                        "set-var-fmt",
                        "silent-drop",
                        "switch-mode",
                        "track-sc0",
                        "track-sc1",
                        "track-sc2",
                        "track-sc",
                        "unset-var",
                        "use-service"
                      ],
                      "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"
                    },
                    "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"
                    },
                    "expr": {
                      "description": "expr",
                      "type": "string"
                    },
                    "gpt_value": {
                      "description": "gpt value",
                      "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"
                    },
                    "mark_value": {
                      "description": "mark value\nPattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$",
                      "pattern": "^(0x[0-9A-Fa-f]+|[0-9]+)$",
                      "type": "string"
                    },
                    "nice_value": {
                      "description": "nice value\nMaximum: 1024\nMinimum: -1024",
                      "format": "int64",
                      "maximum": 1024,
                      "minimum": -1024,
                      "type": "integer"
                    },
                    "resolve_protocol": {
                      "description": "resolve protocol\nEnum: [ipv4 ipv6]",
                      "enum": [
                        "ipv4",
                        "ipv6"
                      ],
                      "type": "string"
                    },
                    "resolve_resolvers": {
                      "description": "resolve resolvers",
                      "type": "string"
                    },
                    "resolve_var": {
                      "description": "resolve var",
                      "type": "string"
                    },
                    "rst_ttl": {
                      "description": "rst ttl",
                      "format": "int64",
                      "type": "integer"
                    },
                    "sc_idx": {
                      "description": "sc idx",
                      "type": "string"
                    },
                    "sc_inc_id": {
                      "description": "sc inc id",
                      "type": "string"
                    },
                    "sc_int": {
                      "description": "sc int",
                      "format": "int64",
                      "type": "integer"
                    },
                    "server_name": {
                      "description": "server name",
                      "type": "string"
                    },
                    "service_name": {
                      "description": "service name",
                      "type": "string"
                    },
                    "spoe_engine_name": {
                      "description": "spoe engine name",
                      "type": "string"
                    },
                    "spoe_group_name": {
                      "description": "spoe group name",
                      "type": "string"
                    },
                    "switch_mode_proto": {
                      "description": "switch mode proto",
                      "type": "string"
                    },
                    "timeout": {
                      "description": "timeout",
                      "format": "int64",
                      "type": "integer"
                    },
                    "tos_value": {
                      "description": "tos value\nPattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$",
                      "pattern": "^(0x[0-9A-Fa-f]+|[0-9]+)$",
                      "type": "string"
                    },
                    "track_key": {
                      "description": "track key",
                      "type": "string"
                    },
                    "track_stick_counter": {
                      "description": "track stick counter",
                      "format": "int64",
                      "type": "integer"
                    },
                    "track_table": {
                      "description": "track table",
                      "type": "string"
                    },
                    "type": {
                      "description": "type\nRequired: true\nEnum: [connection content inspect-delay session]",
                      "enum": [
                        "connection",
                        "content",
                        "inspect-delay",
                        "session"
                      ],
                      "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"
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "tcp_smart_accept": {
                "description": "tcp smart accept\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "tcpka": {
                "description": "tcpka\nEnum: [enabled disabled]",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "type": "string"
              },
              "tcplog": {
                "description": "tcplog",
                "type": "boolean"
              },
              "unique_id_format": {
                "description": "unique id format",
                "type": "string"
              },
              "unique_id_header": {
                "description": "unique id header",
                "type": "string"
              }
            },
            "required": [
              "binds",
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "name": {
            "type": "string"
          },
          "service": {
            "description": "Service defines the name of the default service (default_backend)",
            "properties": {
              "name": {
                "type": "string"
              },
              "port": {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "name",
              "port"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "services": {
            "description": "Services defines additional services for additional backends",
            "items": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "port": {
                  "maximum": 65535,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "name",
                "port"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "type": "array"
          }
        },
        "required": [
          "frontend",
          "name",
          "service"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
