{
    "additionalProperties": true,
    "description": "Schema for a SendGrid opened 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"
            ]
        },
        "email": {
            "_format": "email",
            "description": "The email address of the recipient",
            "type": "string"
        },
        "ip": {
            "_format": "ipv4",
            "description": "The IP address used to send 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"
        },
        "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"
        },
        "timestamp": {
            "_format": "date-time",
            "description": "The timestamp of when the message was sent",
            "type": "string"
        },
        "useragent": {
            "description": "The user agent responsible for the event. This is usually a web browser. For example, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36.",
            "type": "string"
        }
    },
    "self": {
        "format": "jsonschema",
        "name": "open",
        "vendor": "com.sendgrid",
        "version": "2-0-0"
    },
    "type": "object"
}