{
  "description": "ServicePort contains information on service's port.",
  "properties": {
    "appProtocol": {
      "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.",
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.",
      "type": [
        "string",
        "null"
      ]
    },
    "nodePort": {
      "description": "The port on each node on which this service is exposed when type is NodePort or LoadBalancer.  Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail.  If not specified, a port will be allocated if this Service requires one.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "port": {
      "description": "The port that will be exposed by this service.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "protocol": {
      "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.",
      "type": [
        "string",
        "null"
      ]
    },
    "targetPort": {
      "oneOf": [
        {
          "type": [
            "string",
            "null"
          ]
        },
        {
          "type": [
            "integer",
            "null"
          ]
        }
      ]
    }
  },
  "required": [
    "port"
  ],
  "type": "object",
  "$schema": "http://json-schema.org/schema#"
}