{
  "properties": {
    "spec": {
      "oneOf": [
        {
          "required": [
            "podSelector"
          ]
        },
        {
          "required": [
            "externalWorkloadSelector"
          ]
        }
      ],
      "properties": {
        "externalWorkloadSelector": {
          "description": "Selects ExternalWorkloads in the same namespace.\nThe result of matchLabels and matchExpressions are ANDed. Selects all if empty.",
          "properties": {
            "matchExpressions": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "operator": {
                    "enum": [
                      "In",
                      "NotIn",
                      "Exists",
                      "DoesNotExist"
                    ],
                    "type": "string"
                  },
                  "values": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "key",
                  "operator"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "matchLabels": {
              "type": "object",
              "x-kubernetes-preserve-unknown-fields": true
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "podSelector": {
          "description": "Selects pods in the same namespace.\nThe result of matchLabels and matchExpressions are ANDed. Selects all if empty.",
          "properties": {
            "matchExpressions": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "operator": {
                    "enum": [
                      "In",
                      "NotIn",
                      "Exists",
                      "DoesNotExist"
                    ],
                    "type": "string"
                  },
                  "values": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "key",
                  "operator"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "matchLabels": {
              "type": "object",
              "x-kubernetes-preserve-unknown-fields": true
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "port": {
          "description": "A port name or number. Must exist in a pod spec.",
          "x-kubernetes-int-or-string": true
        },
        "proxyProtocol": {
          "default": "unknown",
          "description": "Configures protocol discovery for inbound connections.\nSupersedes the `config.linkerd.io/opaque-ports` annotation.",
          "type": "string"
        }
      },
      "required": [
        "port"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
