{
    "pluginAlias": "NotifyEvents",
    "pluginType": "platform",
    "singular": true,
    "customUi": true,
    "schema": {
        "type": "object",
        "properties": {
            "action": {
                "title": "Action",
                "type": "object",
                "properties": {
                    "enabled": {
                        "title": "Enabled",
                        "type": "boolean",
                        "default": false
                    },
                    "listen": {
                        "title": "Listen host",
                        "type": "string",
                        "default": "0.0.0.0"
                    },
                    "port": {
                        "title": "Port",
                        "type": "number",
                        "default": 53535
                    },
                    "host": {
                        "title": "Your external host",
                        "type": "string"
                    }
                }
            },
            "channels": {
                "title": "Channels",
                "type": "array",
                "items": {
                    "title": "Channel",
                    "type": "object",
                    "properties": {
                        "title": {
                            "title": "Title",
                            "type": "string",
                            "required": true,
                            "default": "My Channel"
                        },
                        "token": {
                            "title": "Token",
                            "type": "string",
                            "required": true,
                            "minLength": 32,
                            "maxLength": 32,
                            "pattern": "^[0-9a-zA-Z-_]{32}$",
                            "description": "Please consult the plugin <a href='https://github.com/notify-events/homebridge#notifyevents-configuration' target='_blank'>documentation</a> for instructions on how to get token."
                        },
                        "messages": {
                            "title": "Messages",
                            "type": "array",
                            "items": {
                                "title": "Message",
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "title": "Accessory name",
                                        "type": "string",
                                        "required": true,
                                        "default": "My message"
                                    },
                                    "title": {
                                        "title": "Message title",
                                        "type": "string"
                                    },
                                    "text": {
                                        "title": "Text",
                                        "type": "string",
                                        "required": true,
                                        "default": "Message text",
                                        "description": "Allowed html tags: `&lt;b&gt;`, `&lt;i&gt;`, `&lt;a href=\"\"&gt;`, `&lt;br&gt;`"
                                    },
                                    "priority": {
                                        "title": "Priority",
                                        "type": "string",
                                        "required": true,
                                        "default": "normal",
                                        "oneOf": [
                                            {"title": "Lowest", "enum": ["lowest"]},
                                            {"title": "Low", "enum": ["low"]},
                                            {"title": "Normal", "enum": ["normal"]},
                                            {"title": "High", "enum": ["high"]},
                                            {"title": "Highest", "enum": ["highest"]}
                                        ]
                                    },
                                    "level": {
                                        "title": "Level",
                                        "type": "string",
                                        "required": true,
                                        "default": "info",
                                        "oneOf": [
                                            {"title": "Verbose", "enum": ["verbose"]},
                                            {"title": "Info", "enum": ["info"]},
                                            {"title": "Notice", "enum": ["notice"]},
                                            {"title": "Warning", "enum": ["warning"]},
                                            {"title": "Error", "enum": ["error"]},
                                            {"title": "Success", "enum": ["success"]}
                                        ]
                                    },
                                    "images": {
                                        "title": "Images",
                                        "type": "array",
                                        "maxItems": 5,
                                        "items": {
                                            "title": "Image",
                                            "type": "object",
                                            "properties": {
                                                "filename": {
                                                    "title": "Image filepath",
                                                    "type": "string",
                                                    "required": true
                                                }
                                            }
                                        }
                                    },
                                    "files": {
                                        "title": "Files",
                                        "type": "array",
                                        "maxItems": 5,
                                        "items": {
                                            "title": "File",
                                            "type": "object",
                                            "properties": {
                                                "filename": {
                                                    "title": "Image filename",
                                                    "type": "string",
                                                    "required": true
                                                }
                                            }
                                        }
                                    },
                                    "actions": {
                                        "title": "Actions",
                                        "type": "array",
                                        "maxItems": 3,
                                        "items": {
                                            "title": "Action",
                                            "type": "object",
                                            "properties": {
                                                "name": {
                                                    "title": "Accessory name",
                                                    "type": "string",
                                                    "required": true
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string",
                                                    "required": false
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
