mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-18 07:55:21 +01:00
Add json schema (as documentation only, verify is not enforced)
This commit is contained in:
parent
033ff07abf
commit
71754dd164
4 changed files with 830 additions and 0 deletions
164
doc/json-schema/os-list-schema.html
Normal file
164
doc/json-schema/os-list-schema.html
Normal file
File diff suppressed because one or more lines are too long
485
doc/json-schema/os-list-schema.json
Normal file
485
doc/json-schema/os-list-schema.json
Normal file
|
@ -0,0 +1,485 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||||||
|
"$id": "http://example.com/example.json",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Imager oslist.json schema",
|
||||||
|
"description": "oslist.json format.",
|
||||||
|
"default": {},
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"imager": {
|
||||||
|
"latest_version": "1.6",
|
||||||
|
"url": "https://www.raspberrypi.org/software/",
|
||||||
|
"default_os": "Raspberry Pi OS (32-bit)",
|
||||||
|
"embedded_default_os": "Raspberry Pi OS (32-bit)",
|
||||||
|
"embedded_default_destination": "/dev/mmcblk0p1"
|
||||||
|
},
|
||||||
|
"os_list": [
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (32-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Recommended)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2022-01-28/2022-01-28-raspios-bullseye-armhf.zip",
|
||||||
|
"extract_size": 4236247040,
|
||||||
|
"extract_sha256": "ceb7d7489847ed811e7746fa779837f78fc06d43663148a696280e6a1cfe00e3",
|
||||||
|
"image_download_size": 1306588543,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ubuntu Server 21.10 (RPi 3/4/400)",
|
||||||
|
"description": "64-bit server OS for arm64 architectures",
|
||||||
|
"icon": "https://assets.ubuntu.com/v1/85a9de76-ubuntu-icon.svg",
|
||||||
|
"url": "http://cdimage.ubuntu.com/releases/impish/release/ubuntu-21.10-preinstalled-server-arm64+raspi.img.xz",
|
||||||
|
"extract_size": 4068480000,
|
||||||
|
"extract_sha256": "4cf06429e0367f0a59b890819d1792b0d816bc531fcb5bd092e441d8d6a942b9",
|
||||||
|
"image_download_size": 921117368,
|
||||||
|
"release_date": "2021-10-14",
|
||||||
|
"website": "https://ubuntu.com/raspberry-pi/server",
|
||||||
|
"init_format": "cloudinit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bootloader",
|
||||||
|
"description": "Restore the factory default settings and change boot priority",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png",
|
||||||
|
"subitems_url": "https://downloads.raspberrypi.org/eeprom_recovery.json",
|
||||||
|
"website": "https://www.raspberrypi.org/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (other)",
|
||||||
|
"description": "Other Raspberry Pi OS based images",
|
||||||
|
"icon": "icons/cat_raspberry_pi_os.png",
|
||||||
|
"subitems": [
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (64-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Compatible with Raspberry Pi 3/4/400)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_arm64/Raspberry_Pi_OS_(64-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-01-28/2022-01-28-raspios-bullseye-arm64.zip",
|
||||||
|
"extract_size": 4156555264,
|
||||||
|
"extract_sha256": "6939d39cbbfbe85c68dae55f1b2375f17e21fe047b8dc1f84aa7d3c002047afb",
|
||||||
|
"image_download_size": 1189750489,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"required": [
|
||||||
|
"os_list"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"imager": {
|
||||||
|
"$id": "#/properties/imager",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Meta-data for the Imager program itself",
|
||||||
|
"description": "ONLY USED IN TOP-LEVEL OS_LIST.JSON. Not for Linux distributions linked by subitems url.",
|
||||||
|
"default": {},
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"latest_version": "1.6",
|
||||||
|
"url": "https://www.raspberrypi.org/software/",
|
||||||
|
"default_os": "Raspberry Pi OS (32-bit)",
|
||||||
|
"embedded_default_os": "Raspberry Pi OS (32-bit)",
|
||||||
|
"embedded_default_destination": "/dev/mmcblk0p1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"required": [
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"latest_version": {
|
||||||
|
"$id": "#/properties/imager/properties/latest_version",
|
||||||
|
"type": "string",
|
||||||
|
"title": "Latest imager version",
|
||||||
|
"description": "If version mentioned here is newer than the Imager that is currently being run, user is prompted for update.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"1.6"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"$id": "#/properties/imager/properties/url",
|
||||||
|
"type": "string",
|
||||||
|
"title": "Website to download new Imager version from",
|
||||||
|
"description": "If user accepts the update, a browser is opened to this address.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://www.raspberrypi.org/software/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default_os": {
|
||||||
|
"$id": "#/properties/imager/properties/default_os",
|
||||||
|
"type": "string",
|
||||||
|
"title": "default_os",
|
||||||
|
"description": "Optional. If set this OS will be selected automatically, without the user having to press 'CHOOSE OS'",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Raspberry Pi OS (32-bit)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"embedded_default_os": {
|
||||||
|
"$id": "#/properties/imager/properties/embedded_default_os",
|
||||||
|
"type": "string",
|
||||||
|
"title": "embedded_default_os",
|
||||||
|
"description": "Optional. Same as default_os but only applied if user is running the embedded Imager edition.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Raspberry Pi OS (32-bit)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"embedded_default_destination": {
|
||||||
|
"$id": "#/properties/imager/properties/embedded_default_destination",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The embedded_default_destination schema",
|
||||||
|
"description": "Optional. If set and the user is running the embedded Imager edition, this device will be automatically selected as destination drive.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"/dev/mmcblk0p1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"os_list": {
|
||||||
|
"$id": "#/properties/os_list",
|
||||||
|
"type": "array",
|
||||||
|
"title": "The os_list schema",
|
||||||
|
"description": "List of operating systems available.",
|
||||||
|
"default": [],
|
||||||
|
"examples": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (32-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Recommended)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2022-01-28/2022-01-28-raspios-bullseye-armhf.zip",
|
||||||
|
"extract_size": 4236247040,
|
||||||
|
"extract_sha256": "ceb7d7489847ed811e7746fa779837f78fc06d43663148a696280e6a1cfe00e3",
|
||||||
|
"image_download_size": 1306588543,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ubuntu Server 21.10 (RPi 3/4/400)",
|
||||||
|
"description": "64-bit server OS for arm64 architectures",
|
||||||
|
"icon": "https://assets.ubuntu.com/v1/85a9de76-ubuntu-icon.svg",
|
||||||
|
"url": "http://cdimage.ubuntu.com/releases/impish/release/ubuntu-21.10-preinstalled-server-arm64+raspi.img.xz",
|
||||||
|
"extract_size": 4068480000,
|
||||||
|
"extract_sha256": "4cf06429e0367f0a59b890819d1792b0d816bc531fcb5bd092e441d8d6a942b9",
|
||||||
|
"image_download_size": 921117368,
|
||||||
|
"release_date": "2021-10-14",
|
||||||
|
"website": "https://ubuntu.com/raspberry-pi/server",
|
||||||
|
"init_format": "cloudinit"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"additionalItems": true,
|
||||||
|
"items": {
|
||||||
|
"$id": "#/properties/os_list/items",
|
||||||
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Operating system entry",
|
||||||
|
"description": "An entry for an OS.",
|
||||||
|
"default": {},
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (32-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Recommended)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2022-01-28/2022-01-28-raspios-bullseye-armhf.zip",
|
||||||
|
"extract_size": 4236247040,
|
||||||
|
"extract_sha256": "ceb7d7489847ed811e7746fa779837f78fc06d43663148a696280e6a1cfe00e3",
|
||||||
|
"image_download_size": 1306588543,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
"icon",
|
||||||
|
"url",
|
||||||
|
"extract_size",
|
||||||
|
"extract_sha256",
|
||||||
|
"image_download_size",
|
||||||
|
"release_date"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/name",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The name schema",
|
||||||
|
"description": "Name of operating system as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Raspberry Pi OS (32-bit)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/description",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The description schema",
|
||||||
|
"description": "Description of operating system as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"A port of Debian Bullseye with the Raspberry Pi Desktop (Recommended)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/icon",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The icon schema",
|
||||||
|
"description": "Icon of the operating system as shown in the 'CHOOSE OS' list",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/url",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The url schema",
|
||||||
|
"description": "Download URL. Can be .zip, .gz, .xz (since Imager 1.7 also .zstd, but for compatibility with older versions, better not use it)",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2022-01-28/2022-01-28-raspios-bullseye-armhf.zip"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extract_size": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/extract_size",
|
||||||
|
"type": "integer",
|
||||||
|
"title": "The extract_size schema",
|
||||||
|
"description": "The size of the image after extraction. Used to check if the storage is large enough to accomdate the image.",
|
||||||
|
"default": 0,
|
||||||
|
"examples": [
|
||||||
|
4236247040
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extract_sha256": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/extract_sha256",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The extract_sha256 schema",
|
||||||
|
"description": "SHA256 of image after extraction. Must be correct or Imager will for security purposes abort and will not write the first MB of image (effectively invalidating parititon table)",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"ceb7d7489847ed811e7746fa779837f78fc06d43663148a696280e6a1cfe00e3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"image_download_size": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/image_download_size",
|
||||||
|
"type": "integer",
|
||||||
|
"title": "The image_download_size schema",
|
||||||
|
"description": "Size of the compressed image.",
|
||||||
|
"default": 0,
|
||||||
|
"examples": [
|
||||||
|
1306588543
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"release_date": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/release_date",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The release_date schema",
|
||||||
|
"description": "Release date of OS image. Shown in 'CHOOSE OS' list",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"2022-01-28"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"init_format": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/0/properties/init_format",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The init_format schema",
|
||||||
|
"description": "If set 'advanced settings' button will be shown. If 'init_format' is set to 'systemd', OS customization will be done by creating a firstrun.sh with shell commands on the SD card, and cmdline.txt will be modified to instruct systemd to execute /boot/firstrun.sh. THIS WILL ONLY WORK IF THE FAT PARTITION IS MOUNTED AT /boot in your /etc/fstab. If 'init_format' is set to 'cloudinit' a cloud-init 'user-data' file will be created on the FAT partition instead.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"systemd"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"website": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/1/properties/website",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The website schema",
|
||||||
|
"description": "Optional. If set a (I)nfo icon will be shown in the 'CHOOSE OS' list. Clicking it will cause a browser to be opened to the website listed.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://ubuntu.com/raspberry-pi/server"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2",
|
||||||
|
"type": "object",
|
||||||
|
"title": "subitems_url linking to another .json file",
|
||||||
|
"description": "Allows linking to subitems listed in an external .json file.",
|
||||||
|
"default": {},
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"name": "Bootloader",
|
||||||
|
"description": "Restore the factory default settings and change boot priority",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png",
|
||||||
|
"subitems_url": "https://downloads.raspberrypi.org/eeprom_recovery.json",
|
||||||
|
"website": "https://www.raspberrypi.org/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
"icon",
|
||||||
|
"subitems_url"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2/properties/name",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The name schema",
|
||||||
|
"description": "Name as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Bootloader"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2/properties/description",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The description schema",
|
||||||
|
"description": "Description as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Restore the factory default settings and change boot priority"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2/properties/icon",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The icon schema",
|
||||||
|
"description": "Icon as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://downloads.raspberrypi.org/raspios_armhf/Raspberry_Pi_OS_(32-bit).png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subitems_url": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2/properties/subitems_url",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The subitems_url schema",
|
||||||
|
"description": "URL of the file with the subitems.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://downloads.raspberrypi.org/eeprom_recovery.json"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"website": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/2/properties/website",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The website schema",
|
||||||
|
"description": "Optional. If set a (I)nfo icon will be shown in the 'CHOOSE OS' list. Clicking it will cause a browser to be opened to the website listed.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"https://www.raspberrypi.org/"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/3",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Inline subitems in same json file",
|
||||||
|
"description": "List of subitems listed in the same .json file. AVOID USE DUE TO BUG WHEN NESTED SUBITEMS ARE USED IN IMAGER VERSIONS PRIOR TO 1.7",
|
||||||
|
"default": {},
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (other)",
|
||||||
|
"description": "Other Raspberry Pi OS based images",
|
||||||
|
"icon": "icons/cat_raspberry_pi_os.png",
|
||||||
|
"subitems": [
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (64-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Compatible with Raspberry Pi 3/4/400)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_arm64/Raspberry_Pi_OS_(64-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-01-28/2022-01-28-raspios-bullseye-arm64.zip",
|
||||||
|
"extract_size": 4156555264,
|
||||||
|
"extract_sha256": "6939d39cbbfbe85c68dae55f1b2375f17e21fe047b8dc1f84aa7d3c002047afb",
|
||||||
|
"image_download_size": 1189750489,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
"icon",
|
||||||
|
"subitems"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/3/properties/name",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The name schema",
|
||||||
|
"description": "Name as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Raspberry Pi OS (other)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/3/properties/description",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The description schema",
|
||||||
|
"description": "Description as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"Other Raspberry Pi OS based images"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/3/properties/icon",
|
||||||
|
"type": "string",
|
||||||
|
"title": "The icon schema",
|
||||||
|
"description": "Icon as shown in the 'CHOOSE OS' list.",
|
||||||
|
"default": "",
|
||||||
|
"examples": [
|
||||||
|
"icons/cat_raspberry_pi_os.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subitems": {
|
||||||
|
"$id": "#/properties/os_list/items/anyOf/3/properties/subitems",
|
||||||
|
"type": "array",
|
||||||
|
"title": "The subitems schema",
|
||||||
|
"description": "Inline subitems.",
|
||||||
|
"default": [],
|
||||||
|
"examples": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Raspberry Pi OS (64-bit)",
|
||||||
|
"description": "A port of Debian Bullseye with the Raspberry Pi Desktop (Compatible with Raspberry Pi 3/4/400)",
|
||||||
|
"icon": "https://downloads.raspberrypi.org/raspios_arm64/Raspberry_Pi_OS_(64-bit).png",
|
||||||
|
"url": "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-01-28/2022-01-28-raspios-bullseye-arm64.zip",
|
||||||
|
"extract_size": 4156555264,
|
||||||
|
"extract_sha256": "6939d39cbbfbe85c68dae55f1b2375f17e21fe047b8dc1f84aa7d3c002047afb",
|
||||||
|
"image_download_size": 1189750489,
|
||||||
|
"release_date": "2022-01-28",
|
||||||
|
"init_format": "systemd"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"additionalItems": true,
|
||||||
|
"items": {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
180
doc/json-schema/schema_doc.css
Normal file
180
doc/json-schema/schema_doc.css
Normal file
|
@ -0,0 +1,180 @@
|
||||||
|
body {
|
||||||
|
font: 16px/1.5em "Overpass", "Open Sans", Helvetica, sans-serif;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 300;
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.btn-link {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jsfh-animated-property {
|
||||||
|
animation: eclair;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-duration: .75s;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes eclair {
|
||||||
|
0%,100% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: scale(1.03);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.btn-primary {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.example-show.collapsed:before {
|
||||||
|
content: "show"
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.example-show:before {
|
||||||
|
content: "hide"
|
||||||
|
}
|
||||||
|
|
||||||
|
.description.collapse:not(.show) {
|
||||||
|
max-height: 100px !important;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description.collapsing {
|
||||||
|
min-height: 100px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse-description-link.collapsed:after {
|
||||||
|
content: '+ Read More';
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapse-description-link:not(.collapsed):after {
|
||||||
|
content: '- Read Less';
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge {
|
||||||
|
font-size: 100%;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.value-type {
|
||||||
|
font-size: 120%;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.badge.default-value {
|
||||||
|
font-size: 120%;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.restriction {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.required-property,.badge.deprecated-property,.badge.pattern-property,.badge.no-additional {
|
||||||
|
font-size: 100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.accordion div.card:only-child {
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
|
||||||
|
}
|
||||||
|
|
||||||
|
.examples {
|
||||||
|
padding: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.examples pre {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight.jumbotron {
|
||||||
|
padding: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.generated-by-footer {
|
||||||
|
margin-top: 1em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* From https://github.com/richleland/pygments-css/blob/master/friendly.css, see https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks */
|
||||||
|
.highlight { background: #e9ecef; } /* Changed from #f0f0f0 in the original style to be the same as bootstrap's jumbotron */
|
||||||
|
.highlight .hll { background-color: #ffffcc }
|
||||||
|
.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
|
||||||
|
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||||
|
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
|
||||||
|
.highlight .o { color: #666666 } /* Operator */
|
||||||
|
.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
|
||||||
|
.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
|
||||||
|
.highlight .cp { color: #007020 } /* Comment.Preproc */
|
||||||
|
.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
|
||||||
|
.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
|
||||||
|
.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
|
||||||
|
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||||
|
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||||
|
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||||
|
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||||
|
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||||
|
.highlight .go { color: #888888 } /* Generic.Output */
|
||||||
|
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
|
||||||
|
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||||
|
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||||
|
.highlight .gt { color: #0044DD } /* Generic.Traceback */
|
||||||
|
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
|
||||||
|
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
||||||
|
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
|
||||||
|
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
|
||||||
|
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
||||||
|
.highlight .kt { color: #902000 } /* Keyword.Type */
|
||||||
|
.highlight .m { color: #40a070 } /* Literal.Number */
|
||||||
|
.highlight .s { color: #4070a0 } /* Literal.String */
|
||||||
|
.highlight .na { color: #4070a0 } /* Name.Attribute */
|
||||||
|
.highlight .nb { color: #007020 } /* Name.Builtin */
|
||||||
|
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
|
||||||
|
.highlight .no { color: #60add5 } /* Name.Constant */
|
||||||
|
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
||||||
|
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
|
||||||
|
.highlight .ne { color: #007020 } /* Name.Exception */
|
||||||
|
.highlight .nf { color: #06287e } /* Name.Function */
|
||||||
|
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
|
||||||
|
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
|
||||||
|
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
|
||||||
|
.highlight .nv { color: #bb60d5 } /* Name.Variable */
|
||||||
|
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
|
||||||
|
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||||
|
.highlight .mb { color: #40a070 } /* Literal.Number.Bin */
|
||||||
|
.highlight .mf { color: #40a070 } /* Literal.Number.Float */
|
||||||
|
.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
|
||||||
|
.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
|
||||||
|
.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
|
||||||
|
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
|
||||||
|
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
|
||||||
|
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
|
||||||
|
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
|
||||||
|
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
|
||||||
|
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
|
||||||
|
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
|
||||||
|
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
|
||||||
|
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
|
||||||
|
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
|
||||||
|
.highlight .sr { color: #235388 } /* Literal.String.Regex */
|
||||||
|
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
|
||||||
|
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
|
||||||
|
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
|
||||||
|
.highlight .fm { color: #06287e } /* Name.Function.Magic */
|
||||||
|
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
|
||||||
|
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
|
||||||
|
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
|
||||||
|
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
|
||||||
|
.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
|
1
doc/json-schema/schema_doc.min.js
vendored
Normal file
1
doc/json-schema/schema_doc.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
function flashElement(t){myElement=document.getElementById(t),myElement.classList.add("jsfh-animated-property"),setTimeout(function(){myElement.classList.remove("jsfh-animated-property")},1e3)}function setAnchor(t){history.pushState({},"",t)}function anchorOnLoad(){let t=window.location.hash.split("?")[0].split("&")[0];"#"===t[0]&&(t=t.substr(1)),t.length>0&&anchorLink(t)}function anchorLink(t){$("#"+t).parents().addBack().filter(".collapse:not(.show), .tab-pane, [role='tab']").each(function(t){if($(this).hasClass("collapse"))$(this).collapse("show");else if($(this).hasClass("tab-pane")){const t=$("a[href='#"+$(this).attr("id")+"']");t&&t.tab("show")}else"tab"===$(this).attr("role")&&$(this).tab("show")}),setTimeout(function(){let e=document.getElementById(t);e&&(e.scrollIntoView({block:"center",behavior:"smooth"}),setTimeout(function(){flashElement(t)},500))},1e3)}$(document).on("click",'a[href^="#"]',function(t){t.preventDefault(),history.pushState({},"",this.href)});
|
Loading…
Add table
Add a link
Reference in a new issue