{
    "additionalProperties": true,
    "description": "Schema for a Mailgun message opened event",
    "properties": {
        "campaignId": {
            "description": "id of campaign triggering the event.",
            "type": "string"
        },
        "campaignName": {
            "description": "The name of campaign triggering the event.",
            "type": "string"
        },
        "city": {
            "description": "Name of the city the event came from or \u2018unknown\u2019 if it couldn\u2019t be determined.",
            "maxLength": 64,
            "type": "string"
        },
        "clientName": {
            "description": "Name of the client software, e.g. \u2018Thunderbird\u2019, \u2018Chrome\u2019, \u2018Firefox\u2019.",
            "maxLength": 64,
            "type": "string"
        },
        "clientOs": {
            "description": "OS family running the client software, e.g. \u2018Linux\u2019, \u2018Windows\u2019, \u2018OSX\u2019.",
            "maxLength": 64,
            "type": "string"
        },
        "clientType": {
            "description": "Type of software the link was opened in, e.g. \u2018browser\u2019, \u2018mobile browser\u2019, \u2018email client\u2019.",
            "maxLength": 64,
            "type": "string"
        },
        "country": {
            "description": "Two-letter country code (as specified by ISO3166) the event came from or \u2018unknown\u2019 if it couldn\u2019t be determined.",
            "maxLength": 8,
            "type": "string"
        },
        "deviceType": {
            "description": "Device type the message was opened on. Can be \u2018desktop\u2019, \u2018mobile\u2019, \u2018tablet\u2019, \u2018other\u2019 or \u2018unknown\u2019.",
            "maxLength": 64,
            "type": "string"
        },
        "domain": {
            "_format": "hostname",
            "description": "Domain that sent the original message.",
            "maxLength": 256,
            "type": "string"
        },
        "ip": {
            "_format": "ipv4",
            "description": "IP address the event originated from (currently only seems to support ipv4).",
            "type": "string"
        },
        "mailingList": {
            "description": "The address of mailing list the original message was sent to.",
            "type": "string"
        },
        "messageId": {
            "description": "The Id of the message that bounced.",
            "maxLength": 1024,
            "type": "string"
        },
        "recipient": {
            "_format": "email",
            "description": "Recipient who opened the message.",
            "maxLength": 256,
            "type": "string"
        },
        "region": {
            "description": "Two-letter or two-digit region code or \u2018unknown\u2019 if it couldn\u2019t be determined.",
            "maxLength": 8,
            "type": "string"
        },
        "signature": {
            "description": "String with hexadecimal digits generate by HMAC algorithm (see securing webhooks).",
            "maxLength": 128,
            "type": "string"
        },
        "tag": {
            "description": "Message tag, if it was tagged. See Tagging.",
            "type": "string"
        },
        "timestamp": {
            "_format": "date-time",
            "description": "Timestamp in ISO8601 format.",
            "type": "string"
        },
        "token": {
            "description": "Randomly generated string with length 50 (see securing webhooks).",
            "maxLength": 50,
            "minLength": 50,
            "type": "string"
        },
        "userAgent": {
            "description": "User agent string of the client triggered the event.",
            "maxLength": 1024,
            "type": "string"
        }
    },
    "self": {
        "format": "jsonschema",
        "name": "message_opened",
        "vendor": "com.mailgun",
        "version": "1-0-0"
    },
    "type": "object"
}