{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/CreateWebhookCredentialDTO",
  "title": "CreateWebhookCredentialDTO",
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "webhook"
      ]
    },
    "authenticationPlan": {
      "description": "This is the authentication plan. Supports OAuth2 RFC 6749, HMAC signing, and Bearer authentication.",
      "oneOf": [
        {
          "$ref": "#/components/schemas/OAuth2AuthenticationPlan"
        },
        {
          "$ref": "#/components/schemas/HMACAuthenticationPlan"
        },
        {
          "$ref": "#/components/schemas/BearerAuthenticationPlan"
        }
      ],
      "discriminator": {
        "propertyName": "type",
        "mapping": {
          "oauth2": "#/components/schemas/OAuth2AuthenticationPlan",
          "hmac": "#/components/schemas/HMACAuthenticationPlan",
          "bearer": "#/components/schemas/BearerAuthenticationPlan"
        }
      }
    },
    "name": {
      "type": "string",
      "description": "This is the name of credential. This is just for your reference.",
      "minLength": 1,
      "maxLength": 40
    }
  },
  "required": [
    "provider",
    "authenticationPlan"
  ]
}