{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "event": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "Resource identifier returned by the operation."
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "watchId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ]
        },
        "contactId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ]
        },
        "source": {
          "type": "object",
          "properties": {
            "namespace": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "accountRef": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "recordRef": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "eventId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          "required": [
            "namespace",
            "accountRef",
            "recordRef",
            "eventId"
          ],
          "additionalProperties": false
        },
        "outcome": {
          "type": "string",
          "enum": [
            "contacted",
            "replied",
            "publication_promised",
            "declined",
            "publication_claimed",
            "bounced",
            "send_error",
            "wrong_person",
            "do_not_contact",
            "email_health"
          ]
        },
        "occurredAt": {
          "type": "string"
        },
        "receivedAt": {
          "type": "string"
        },
        "method": {
          "type": "string",
          "enum": [
            "email",
            "contact_url",
            "none"
          ]
        },
        "validity": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "valid",
                "role",
                "invalid",
                "catch-all",
                "unknown"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "restrictionScope": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "method",
                "contact",
                "publisher"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "disposition": {
          "type": "string",
          "enum": [
            "accepted",
            "older",
            "contact_changed",
            "closed",
            "verified_win"
          ]
        }
      },
      "required": [
        "id",
        "projectId",
        "watchId",
        "contactId",
        "source",
        "outcome",
        "occurredAt",
        "receivedAt",
        "method",
        "validity",
        "restrictionScope",
        "disposition"
      ],
      "additionalProperties": false
    },
    "replayed": {
      "type": "boolean",
      "description": "True when the response reuses an earlier request with the same idempotency value."
    },
    "progressChanged": {
      "type": "boolean"
    }
  },
  "required": [
    "event",
    "replayed",
    "progressChanged"
  ],
  "additionalProperties": false
}
