{
    "additionalProperties": false,
    "description": "Schema for a local or remote push notification",
    "properties": {
        "action": {
            "maxLength": 100,
            "type": "string"
        },
        "categoryIdentifier": {
            "maxLength": 100,
            "type": "string"
        },
        "deliveryDate": {
            "maxLength": 100,
            "type": "string"
        },
        "notification": {
            "additionalProperties": false,
            "properties": {
                "attachments": {
                    "items": {
                        "additionalProperties": false,
                        "properties": {
                            "identifier": {
                                "maxLength": 100,
                                "type": "string"
                            },
                            "type": {
                                "maxLength": 100,
                                "type": "string"
                            },
                            "url": {
                                "maxLength": 750,
                                "type": "string"
                            }
                        },
                        "required": [
                            "identifier",
                            "url",
                            "type"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                },
                "badge": {
                    "type": "integer"
                },
                "body": {
                    "maxLength": 1000,
                    "type": "string"
                },
                "launchImageName": {
                    "maxLength": 300,
                    "type": "string"
                },
                "sound": {
                    "maxLength": 300,
                    "type": "string"
                },
                "subtitle": {
                    "maxLength": 300,
                    "type": "string"
                },
                "title": {
                    "maxLength": 300,
                    "type": "string"
                },
                "userInfo": {
                    "additionalProperties": {
                        "type": [
                            "object",
                            "array",
                            "string",
                            "number",
                            "boolean"
                        ]
                    },
                    "properties": {
                        "aps": {
                            "additionalProperties": false,
                            "properties": {
                                "alert": {
                                    "additionalProperties": {
                                        "type": [
                                            "string",
                                            "number"
                                        ]
                                    },
                                    "properties": {
                                        "actionLocKey": {
                                            "maxLength": 100,
                                            "type": "string"
                                        },
                                        "body": {
                                            "maxLength": 1000,
                                            "type": "string"
                                        },
                                        "launchImage": {
                                            "maxLength": 300,
                                            "type": "string"
                                        },
                                        "locArgs": {
                                            "items": {
                                                "maxLength": 100,
                                                "type": "string"
                                            },
                                            "minItems": 1,
                                            "type": "array"
                                        },
                                        "locKey": {
                                            "maxLength": 100,
                                            "type": "string"
                                        },
                                        "title": {
                                            "maxLength": 300,
                                            "type": "string"
                                        },
                                        "titleLocArgs": {
                                            "items": {
                                                "maxLength": 100,
                                                "type": "string"
                                            },
                                            "minItems": 1,
                                            "type": "array"
                                        },
                                        "titleLocKey": {
                                            "maxLength": 100,
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "body"
                                    ],
                                    "type": [
                                        "string",
                                        "object"
                                    ]
                                },
                                "badge": {
                                    "type": "integer"
                                },
                                "category": {
                                    "maxLength": 100,
                                    "type": "string"
                                },
                                "contentAvailable": {
                                    "type": "boolean"
                                },
                                "sound": {
                                    "maxLength": 300,
                                    "type": "string"
                                },
                                "threadId": {
                                    "maxLength": 100,
                                    "type": "string"
                                }
                            },
                            "required": [
                                "alert"
                            ],
                            "type": "object"
                        }
                    },
                    "type": "object"
                }
            },
            "required": [
                "title",
                "body"
            ],
            "type": "object"
        },
        "threadIdentifier": {
            "maxLength": 100,
            "type": "string"
        },
        "trigger": {
            "enum": [
                "PUSH",
                "LOCATION",
                "CALENDAR",
                "TIME_INTERVAL"
            ],
            "type": "string"
        }
    },
    "required": [
        "action",
        "categoryIdentifier",
        "threadIdentifier",
        "trigger",
        "deliveryDate",
        "notification"
    ],
    "self": {
        "format": "jsonschema",
        "name": "notification_event",
        "vendor": "com.apple",
        "version": "1-0-0"
    },
    "type": "object"
}