{
  "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.",
  "properties": {
    "paths": {
      "description": "paths is a collection of paths that map requests to backends.",
      "items": {
        "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.",
        "properties": {
          "backend": {
            "description": "IngressBackend describes all endpoints for a given service and port.",
            "properties": {
              "resource": {
                "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.",
                "properties": {
                  "apiGroup": {
                    "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "description": "Kind is the type of resource being referenced",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of resource being referenced",
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "name"
                ],
                "type": [
                  "object",
                  "null"
                ],
                "x-kubernetes-map-type": "atomic",
                "additionalProperties": false
              },
              "service": {
                "description": "IngressServiceBackend references a Kubernetes Service as a Backend.",
                "properties": {
                  "name": {
                    "description": "name is the referenced service. The service must exist in the same namespace as the Ingress object.",
                    "type": "string"
                  },
                  "port": {
                    "description": "ServiceBackendPort is the service port being referenced.",
                    "properties": {
                      "name": {
                        "description": "name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "number": {
                        "description": "number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "type": [
                      "object",
                      "null"
                    ],
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  }
                },
                "required": [
                  "name"
                ],
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "path": {
            "description": "path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".",
            "type": [
              "string",
              "null"
            ]
          },
          "pathType": {
            "description": "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  done on a path element by element basis. A path element refers is the\n  list of labels in the path split by the '/' separator. A request is a\n  match for path p if every p is an element-wise prefix of p of the\n  request path. Note that if the last element of the path is a substring\n  of the last element in request path, it is not a match (e.g. /foo/bar\n  matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n  the IngressClass. Implementations can treat this as a separate PathType\n  or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.",
            "type": "string"
          }
        },
        "required": [
          "pathType",
          "backend"
        ],
        "type": [
          "object",
          "null"
        ],
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    }
  },
  "required": [
    "paths"
  ],
  "type": "object",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/schema#"
}