{
  "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t  Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t  Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\n\nDeprecated: This API is deprecated in v1.33+.",
  "properties": {
    "addresses": {
      "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.",
      "items": {
        "description": "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.",
        "properties": {
          "hostname": {
            "description": "The Hostname of this endpoint",
            "type": [
              "string",
              "null"
            ]
          },
          "ip": {
            "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).",
            "type": "string"
          },
          "nodeName": {
            "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.",
            "type": [
              "string",
              "null"
            ]
          },
          "targetRef": {
            "description": "ObjectReference contains enough information to let you inspect or modify the referred object.",
            "properties": {
              "apiVersion": {
                "description": "API version of the referent.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "fieldPath": {
                "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                "type": [
                  "string",
                  "null"
                ]
              },
              "namespace": {
                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                "type": [
                  "string",
                  "null"
                ]
              },
              "resourceVersion": {
                "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
                "type": [
                  "string",
                  "null"
                ]
              },
              "uid": {
                "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": [
              "object",
              "null"
            ],
            "x-kubernetes-map-type": "atomic",
            "additionalProperties": false
          }
        },
        "required": [
          "ip"
        ],
        "type": [
          "object",
          "null"
        ],
        "x-kubernetes-map-type": "atomic",
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    },
    "notReadyAddresses": {
      "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.",
      "items": {
        "description": "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.",
        "properties": {
          "hostname": {
            "description": "The Hostname of this endpoint",
            "type": [
              "string",
              "null"
            ]
          },
          "ip": {
            "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).",
            "type": "string"
          },
          "nodeName": {
            "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.",
            "type": [
              "string",
              "null"
            ]
          },
          "targetRef": {
            "description": "ObjectReference contains enough information to let you inspect or modify the referred object.",
            "properties": {
              "apiVersion": {
                "description": "API version of the referent.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "fieldPath": {
                "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                "type": [
                  "string",
                  "null"
                ]
              },
              "namespace": {
                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                "type": [
                  "string",
                  "null"
                ]
              },
              "resourceVersion": {
                "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
                "type": [
                  "string",
                  "null"
                ]
              },
              "uid": {
                "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": [
              "object",
              "null"
            ],
            "x-kubernetes-map-type": "atomic",
            "additionalProperties": false
          }
        },
        "required": [
          "ip"
        ],
        "type": [
          "object",
          "null"
        ],
        "x-kubernetes-map-type": "atomic",
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    },
    "ports": {
      "description": "Port numbers available on the related IP addresses.",
      "items": {
        "description": "EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.",
        "properties": {
          "appProtocol": {
            "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n  * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n  * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n  * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "The name of this port.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.",
            "type": [
              "string",
              "null"
            ]
          },
          "port": {
            "description": "The port number of the endpoint.",
            "format": "int32",
            "type": "integer"
          },
          "protocol": {
            "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "port"
        ],
        "type": [
          "object",
          "null"
        ],
        "x-kubernetes-map-type": "atomic",
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    }
  },
  "type": "object",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/schema#"
}