{
    "additionalProperties": true,
    "description": "Schema for a SendGrid bounce event. Property descriptions derived from the SendGrid documentation: https://sendgrid.com/docs/for-developers/tracking-events/event/",
    "properties": {
        "asm_group_id": {
            "description": "The ID of the unsubscribe group the recipient\u2019s email address is included in. ASM IDs correspond to the ID that is returned when you create an unsubscribe group.",
            "maximum": 32767,
            "minimum": 0,
            "type": "integer"
        },
        "category": {
            "description": "Categories are custom tags that you set for the purpose of organizing your emails. Categories can be set as an array or string, and they will be returned as such when posted in your event endpoint.",
            "items": {
                "type": "string"
            },
            "type": [
                "array",
                "string"
            ]
        },
        "cert_error": {
            "description": "No longer found in the SendGrid documentation; possibly deprecated",
            "type": "string"
        },
        "email": {
            "_format": "email",
            "description": "The email address of the recipient",
            "type": "string"
        },
        "ip": {
            "_format": "ipv4",
            "description": "The IP address used to send the email. For open and click events, it is the IP address of the recipient who engaged with the email.",
            "type": "string"
        },
        "marketing_campaign_id": {
            "description": "For emails sent through our Marketing Campaigns feature, we add Marketing Campaigns specific parameters to the Event Webhook. Both marketing_campaign_name and marketing_campaign_id are displayed as unique arguments in the event data.",
            "type": "integer"
        },
        "marketing_campaign_name": {
            "description": "For emails sent through our Marketing Campaigns feature, we add Marketing Campaigns specific parameters to the Event Webhook. Both marketing_campaign_name and marketing_campaign_id are displayed as unique arguments in the event data.",
            "type": "string"
        },
        "marketing_campaign_split_id": {
            "description": "Marketing campaign split id",
            "type": "integer"
        },
        "marketing_campaign_version": {
            "description": "Displayed in the event data for emails sent as part of an A/B Test. The value for marketing_campaign_version are returned as A, B, C, etc.",
            "type": "string"
        },
        "newsletter": {
            "additionalProperties": true,
            "description": "Legacy Marketing Email tool fields",
            "properties": {
                "newsletter_id": {
                    "type": "string"
                },
                "newsletter_send_id": {
                    "type": "string"
                },
                "newsletter_user_list_id": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "reason": {
            "description": "Any sort of error response returned by the receiving server that describes the reason this event type was triggered",
            "type": "string"
        },
        "sg_event_id": {
            "description": "A unique ID to this event that you can use for deduplication purposes. These IDs are up to 100 characters long and are URL safe.",
            "maxLength": 4096,
            "minLength": 22,
            "type": "string"
        },
        "sg_message_id": {
            "description": "A unique, internal SendGrid ID for the message. The first half of this is pulled from the smtp-id.",
            "type": "string"
        },
        "smtp-id": {
            "description": "A unique ID attached to the message by the originating system",
            "type": "string"
        },
        "status": {
            "description": "Status code string. Corresponds to HTTP status code - for example, a JSON response of 5.0.0 is the same as a 500 error response.",
            "type": "string"
        },
        "timestamp": {
            "_format": "date-time",
            "description": "The timestamp of when the message was sent",
            "type": "string"
        },
        "tls": {
            "description": "Indicates whether TLS encription was used in sending this message. For more information about TLS, see the SendGrid TLS Glossary page.",
            "type": [
                "string",
                "integer"
            ]
        },
        "type": {
            "description": "Type of bounce, eg Bounce/Blocked/Expired",
            "type": "string"
        }
    },
    "self": {
        "format": "jsonschema",
        "name": "bounce",
        "vendor": "com.sendgrid",
        "version": "2-0-0"
    },
    "type": "object"
}