All Downloads are FREE. Search and download functionalities are using the official Maven repository.

json.schema.entity.events.webhook.json Maven / Gradle / Ivy

The newest version!
{
  "$id": "https://open-metadata.org/schema/entity/events/webhook.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Webhook",
  "description": "This schema defines webhook for receiving events from OpenMetadata.",
  "type": "object",
  "javaType": "org.openmetadata.catalog.type.Webhook",
  "javaInterfaces": ["org.openmetadata.core.entity.interfaces.EntityInterface"],
  "properties": {
    "id": {
      "description": "Unique ID associated with a webhook subscription.",
      "$ref": "../../type/basic.json#/definitions/uuid"
    },
    "name": {
      "description": "Unique name of the application receiving webhook events.",
      "$ref": "../../type/basic.json#/definitions/entityName"
    },
    "fullyQualifiedName": {
      "description": "FullyQualifiedName same as `name`.",
      "$ref": "../../type/basic.json#/definitions/fullyQualifiedEntityName"
    },
    "displayName": {
      "description": "Display Name that identifies this webhook.",
      "type": "string"
    },
    "description": {
      "description": "Description of the application.",
      "$ref": "../../type/basic.json#/definitions/markdown"
    },
    "endpoint": {
      "description": "Endpoint to receive the webhook events over POST requests.",
      "type": "string",
      "format": "uri"
    },
    "eventFilters": {
      "description": "Endpoint to receive the webhook events over POST requests.",
      "type": "array",
      "items": {
        "$ref": "../../type/changeEvent.json#/definitions/eventFilter"
      }
    },
    "batchSize": {
      "description": "Maximum number of events sent in a batch (Default 10).",
      "type": "integer",
      "default": 10
    },
    "timeout": {
      "description": "Connection timeout in seconds. (Default 10s).",
      "type": "integer",
      "default": 10
    },
    "enabled": {
      "description": "When set to `true`, the webhook event notification is enabled. Set it to `false` to disable the subscription. (Default `true`).",
      "type": "boolean",
      "default": true
    },
    "secretKey": {
      "description": "Secret set by the webhook client used for computing HMAC SHA256 signature of webhook payload and sent in `X-OM-Signature` header in POST requests to publish the events.",
      "type": "string"
    },
    "version": {
      "description": "Metadata version of the entity.",
      "$ref": "../../type/entityHistory.json#/definitions/entityVersion"
    },
    "updatedAt": {
      "description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
      "$ref": "../../type/basic.json#/definitions/timestamp"
    },
    "updatedBy": {
      "description": "User who made the update.",
      "type": "string"
    },
    "status": {
      "description": "Status is `disabled`, when webhook was created with `enabled` set to false and it never started publishing events. Status is `active` when webhook is normally functioning and 200 OK response was received for callback notification. Status is `failed` on bad callback URL, connection failures, `1xx`, and `3xx` response was received for callback notification. Status is `awaitingRetry` when previous attempt at callback timed out or received `4xx`, `5xx` response. Status is `retryLimitReached` after all retries fail.",
      "type": "string",
      "enum": [
        "disabled",
        "failed",
        "retryLimitReached",
        "awaitingRetry",
        "active"
      ]
    },
    "failureDetails": {
      "description": "Failure details are set only when `status` is not `success`.",
      "type": "object",
      "javaType": "org.openmetadata.catalog.type.FailureDetails",
      "properties": {
        "lastSuccessfulAt": {
          "description": "Last non-successful callback time in UNIX UTC epoch time in milliseconds.",
          "$ref": "../../type/basic.json#/definitions/timestamp"
        },
        "lastFailedAt": {
          "description": "Last non-successful callback time in UNIX UTC epoch time in milliseconds.",
          "$ref": "../../type/basic.json#/definitions/timestamp"
        },
        "lastFailedStatusCode": {
          "description": "Last non-successful activity response code received during callback.",
          "type": "integer"
        },
        "lastFailedReason": {
          "description": "Last non-successful activity response reason received during callback.",
          "type": "string"
        },
        "nextAttempt": {
          "description": "Next retry will be done at this time in Unix epoch time milliseconds. Only valid is `status` is `awaitingRetry`.",
          "$ref": "../../type/basic.json#/definitions/timestamp"
        }
      },
      "additionalProperties": false
    },
    "href": {
      "description": "Link to this webhook resource.",
      "$ref": "../../type/basic.json#/definitions/href"
    },
    "changeDescription": {
      "description": "Change that lead to this version of the entity.",
      "$ref": "../../type/entityHistory.json#/definitions/changeDescription"
    }
  },
  "required": ["id", "name", "endpoint", "eventFilters"],
  "additionalProperties": false
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy