{
  "properties": {
    "spec": {
      "additionalProperties": false,
      "description": "Peer authentication configuration for workloads. See more details at: https://istio.io/docs/reference/config/security/peer_authentication.html",
      "properties": {
        "mtls": {
          "additionalProperties": false,
          "description": "Mutual TLS settings for workload.",
          "properties": {
            "mode": {
              "description": "Defines the mTLS mode used for peer authentication.\n\nValid Options: DISABLE, PERMISSIVE, STRICT",
              "enum": [
                "UNSET",
                "DISABLE",
                "PERMISSIVE",
                "STRICT"
              ],
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "portLevelMtls": {
          "additionalProperties": {
            "additionalProperties": false,
            "properties": {
              "mode": {
                "description": "Defines the mTLS mode used for peer authentication.\n\nValid Options: DISABLE, PERMISSIVE, STRICT",
                "enum": [
                  "UNSET",
                  "DISABLE",
                  "PERMISSIVE",
                  "STRICT"
                ],
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "description": "Port specific mutual TLS settings.",
          "minProperties": 1,
          "type": [
            "object",
            "null"
          ],
          "x-kubernetes-validations": [
            {
              "message": "port must be between 1-65535",
              "rule": "self.all(key, 0 \u003c int(key) \u0026\u0026 int(key) \u003c= 65535)"
            }
          ]
        },
        "selector": {
          "additionalProperties": false,
          "description": "The selector determines the workloads to apply the PeerAuthentication on.",
          "properties": {
            "matchLabels": {
              "additionalProperties": {
                "maxLength": 63,
                "type": "string",
                "x-kubernetes-validations": [
                  {
                    "message": "wildcard not allowed in label value match",
                    "rule": "!self.contains(\"*\")"
                  }
                ]
              },
              "description": "One or more labels that indicate a specific set of pods/VMs on which a policy should be applied.",
              "maxProperties": 4096,
              "type": [
                "object",
                "null"
              ],
              "x-kubernetes-validations": [
                {
                  "message": "wildcard not allowed in label key match",
                  "rule": "self.all(key, !key.contains(\"*\"))"
                },
                {
                  "message": "key must not be empty",
                  "rule": "self.all(key, key.size() != 0)"
                }
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-validations": [
        {
          "message": "portLevelMtls requires selector",
          "rule": "has(self.portLevelMtls) ? (((has(self.selector) \u0026\u0026 has(self.selector.matchLabels)) ? self.selector.matchLabels : {}).size() \u003e 0) : true"
        }
      ]
    },
    "status": {
      "additionalProperties": false,
      "properties": {
        "conditions": {
          "description": "Current service state of the resource.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "lastProbeTime": {
                "description": "Last time we probed the condition.",
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ]
              },
              "message": {
                "description": "Human-readable message indicating details about last transition.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "observedGeneration": {
                "description": "Resource Generation to which the Condition refers.",
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ],
                "x-kubernetes-int-or-string": true
              },
              "reason": {
                "description": "Unique, one-word, CamelCase reason for the condition's last transition.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "description": "Status is the status of the condition.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "description": "Type is the type of the condition.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "observedGeneration": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "x-kubernetes-int-or-string": true
        },
        "validationMessages": {
          "description": "Includes any errors or warnings detected by Istio's analyzers.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "documentationUrl": {
                "description": "A url pointing to the Istio documentation for this specific error type.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "level": {
                "description": "Represents how severe a message is.\n\nValid Options: UNKNOWN, ERROR, WARNING, INFO",
                "enum": [
                  "UNKNOWN",
                  "ERROR",
                  "WARNING",
                  "INFO"
                ],
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "description": "A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "A human-readable name for the message type.",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ],
      "x-kubernetes-preserve-unknown-fields": true
    }
  },
  "type": "object"
}