{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/WebThingsIO/gateway-addon-ipc-schema/master/schema.json", "title": "Add-on IPC", "description": "IPC messages between WebThings Gateway and add-ons", "type": "object", "required": [ "message" ], "properties": { "message": { "type": "object", "title": "Message", "description": "The top-level message which encapsulates all message types", "oneOf": [ {"$ref": "messages/plugin-register-request.json"}, {"$ref": "messages/plugin-register-response.json"}, {"$ref": "messages/plugin-unload-request.json"}, {"$ref": "messages/plugin-unload-response.json"}, {"$ref": "messages/plugin-error-notification.json"}, {"$ref": "messages/adapter-added-notification.json"}, {"$ref": "messages/adapter-cancel-pairing-command.json"}, {"$ref": "messages/adapter-cancel-remove-device-command.json"}, {"$ref": "messages/adapter-pairing-prompt-notification.json"}, {"$ref": "messages/adapter-remove-device-request.json"}, {"$ref": "messages/adapter-remove-device-response.json"}, {"$ref": "messages/adapter-start-pairing-command.json"}, {"$ref": "messages/adapter-unload-request.json"}, {"$ref": "messages/adapter-unload-response.json"}, {"$ref": "messages/adapter-unpairing-prompt-notification.json"}, {"$ref": "messages/device-action-status-notification.json"}, {"$ref": "messages/device-added-notification.json"}, {"$ref": "messages/device-connected-state-notification.json"}, {"$ref": "messages/device-event-notification.json"}, {"$ref": "messages/device-property-changed-notification.json"}, {"$ref": "messages/device-remove-action-request.json"}, {"$ref": "messages/device-remove-action-response.json"}, {"$ref": "messages/device-request-action-request.json"}, {"$ref": "messages/device-request-action-response.json"}, {"$ref": "messages/device-set-credentials-request.json"}, {"$ref": "messages/device-set-credentials-response.json"}, {"$ref": "messages/device-set-pin-request.json"}, {"$ref": "messages/device-set-pin-response.json"}, {"$ref": "messages/device-set-property-command.json"}, {"$ref": "messages/device-saved-notification.json"}, {"$ref": "messages/notifier-added-notification.json"}, {"$ref": "messages/notifier-unload-request.json"}, {"$ref": "messages/notifier-unload-response.json"}, {"$ref": "messages/outlet-added-notification.json"}, {"$ref": "messages/outlet-notify-request.json"}, {"$ref": "messages/outlet-notify-response.json"}, {"$ref": "messages/outlet-removed-notification.json"}, {"$ref": "messages/api-handler-added-notification.json"}, {"$ref": "messages/api-handler-api-request.json"}, {"$ref": "messages/api-handler-api-response.json"}, {"$ref": "messages/api-handler-unload-request.json"}, {"$ref": "messages/api-handler-unload-response.json"}, {"$ref": "messages/mock-adapter-add-device-request.json"}, {"$ref": "messages/mock-adapter-add-device-response.json"}, {"$ref": "messages/mock-adapter-clear-state-request.json"}, {"$ref": "messages/mock-adapter-clear-state-response.json"}, {"$ref": "messages/mock-adapter-pair-device-command.json"}, {"$ref": "messages/mock-adapter-remove-device-request.json"}, {"$ref": "messages/mock-adapter-remove-device-response.json"}, {"$ref": "messages/mock-adapter-unpair-device-command.json"} ] } } }