{
  "description": "ServersTransport is the CRD implementation of a ServersTransport.\nIf no serversTransport is specified, the default@internal will be used.\nThe default@internal serversTransport is created from the static configuration.\nMore info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_1",
  "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",
        "null"
      ]
    },
    "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",
        "null"
      ]
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "additionalProperties": false,
      "description": "ServersTransportSpec defines the desired state of a ServersTransport.",
      "properties": {
        "certificatesSecrets": {
          "description": "CertificatesSecrets defines a list of secret storing client certificates for mTLS.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "disableHTTP2": {
          "description": "DisableHTTP2 disables HTTP/2 for connections with backend servers.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "forwardingTimeouts": {
          "additionalProperties": false,
          "description": "ForwardingTimeouts defines the timeouts for requests forwarded to the backend servers.",
          "properties": {
            "dialTimeout": {
              "description": "DialTimeout is the amount of time to wait until a connection to a backend server can be established.",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            },
            "idleConnTimeout": {
              "description": "IdleConnTimeout is the maximum period for which an idle HTTP keep-alive connection will remain open before closing itself.",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            },
            "pingTimeout": {
              "description": "PingTimeout is the timeout after which the HTTP/2 connection will be closed if a response to ping is not received.",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            },
            "readIdleTimeout": {
              "description": "ReadIdleTimeout is the timeout after which a health check using ping frame will be carried out if no frame is received on the HTTP/2 connection.",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            },
            "responseHeaderTimeout": {
              "description": "ResponseHeaderTimeout is the amount of time to wait for a server's response headers after fully writing the request (including its body, if any).",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "x-kubernetes-int-or-string": true
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "insecureSkipVerify": {
          "description": "InsecureSkipVerify disables SSL certificate verification.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "maxIdleConnsPerHost": {
          "description": "MaxIdleConnsPerHost controls the maximum idle (keep-alive) to keep per-host.",
          "type": [
            "integer",
            "null"
          ]
        },
        "peerCertURI": {
          "description": "PeerCertURI defines the peer cert URI used to match against SAN URI during the peer certificate verification.",
          "type": [
            "string",
            "null"
          ]
        },
        "rootCAsSecrets": {
          "description": "RootCAsSecrets defines a list of CA secret used to validate self-signed certificate.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "serverName": {
          "description": "ServerName defines the server name used to contact the server.",
          "type": [
            "string",
            "null"
          ]
        },
        "spiffe": {
          "additionalProperties": false,
          "description": "Spiffe defines the SPIFFE configuration.",
          "properties": {
            "ids": {
              "description": "IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain).",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "trustDomain": {
              "description": "TrustDomain defines the allowed SPIFFE trust domain.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        }
      },
      "type": "object"
    }
  },
  "required": [
    "metadata",
    "spec"
  ],
  "type": "object"
}