{
  "description": "Webhook connects to a third party API server to handle the secrets generation\nconfiguration parameters in spec.\nYou can specify the server, the token, and additional body parameters.\nSee documentation for the full API specification for requests and responses.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "WebhookSpec controls the behavior of the external generator. Any body parameters should be passed to the server through the parameters field.",
      "properties": {
        "body": {
          "description": "Body",
          "type": [
            "string",
            "null"
          ]
        },
        "caBundle": {
          "description": "PEM encoded CA bundle used to validate webhook server certificate. Only used\nif the Server URL is using HTTPS protocol. This parameter is ignored for\nplain HTTP protocol connection. If not set the system root certificates\nare used to validate the TLS connection.",
          "format": "byte",
          "type": [
            "string",
            "null"
          ]
        },
        "caProvider": {
          "additionalProperties": false,
          "description": "The provider for the CA bundle to use to validate webhook server certificate.",
          "properties": {
            "key": {
              "description": "The key where the CA certificate can be found in the Secret or ConfigMap.",
              "maxLength": 253,
              "minLength": 1,
              "pattern": "^[-._a-zA-Z0-9]+$",
              "type": [
                "string",
                "null"
              ]
            },
            "name": {
              "description": "The name of the object located at the provider type.",
              "maxLength": 253,
              "minLength": 1,
              "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
              "type": "string"
            },
            "namespace": {
              "description": "The namespace the Provider type is in.",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
              "type": [
                "string",
                "null"
              ]
            },
            "type": {
              "description": "The type of provider to use such as \"Secret\", or \"ConfigMap\".",
              "enum": [
                "Secret",
                "ConfigMap"
              ],
              "type": "string"
            }
          },
          "required": [
            "name",
            "type"
          ],
          "type": [
            "object",
            "null"
          ]
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Headers",
          "type": [
            "object",
            "null"
          ]
        },
        "method": {
          "description": "Webhook Method",
          "type": [
            "string",
            "null"
          ]
        },
        "result": {
          "additionalProperties": false,
          "description": "Result formatting",
          "properties": {
            "jsonPath": {
              "description": "Json path of return value",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "secrets": {
          "description": "Secrets to fill in templates\nThese secrets will be passed to the templating function as key value pairs under the given name",
          "items": {
            "additionalProperties": false,
            "properties": {
              "name": {
                "description": "Name of this secret in templates",
                "type": "string"
              },
              "secretRef": {
                "additionalProperties": false,
                "description": "Secret ref to fill in credentials",
                "properties": {
                  "key": {
                    "description": "The key where the token is found.",
                    "maxLength": 253,
                    "minLength": 1,
                    "pattern": "^[-._a-zA-Z0-9]+$",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "The name of the Secret resource being referred to.",
                    "maxLength": 253,
                    "minLength": 1,
                    "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "name",
              "secretRef"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "timeout": {
          "description": "Timeout",
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "description": "Webhook url to call",
          "type": "string"
        }
      },
      "required": [
        "result",
        "url"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}