This is a draft to define the JSON objects retrieved from the shared state, for each node, that gives information about the firmware upgrade status. The possible stats are: **UPDATED**, **UPGRADE_AVAILABLE**, **DOWNLOADING**, **UPGRADE_READY**, **UPGRADE_SCHEDULED**. The error states are: **DOWNLOAD_ERROR**, **UPGRADE_CHECK_FAILED**, **INTERNAL_ERROR** (when is not possible to perform an action, could be an unexpected error related to permissions, or too outadted nodes that don't have the needed methods etc...) ### JSON example Not clear if use this JSON for all the states or delegate some of the information to the name state itself. ```json { "state": "UPGRADE_AVAILABLE", "new_version_info": "LibreRouterOs_1.5", "safe_upgrade": true, "downloaded": false, // Is already downloaded "downloading": false, // Is downloading the firmware "firmware_check": false, // If is downloaded, check the download is upgradable (check the firmware with sysupgrade) "scheduled": 30000, // Ms to perform the upgrade. If -1 means not set (?) } ```