mirror of
https://github.com/GNS3/gns3-registry.git
synced 2024-12-24 15:06:43 +00:00
265 lines
7.4 KiB
JSON
265 lines
7.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"type": "object",
|
|
"title": "JSON schema validating a GNS3 appliance",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Appliance name"
|
|
},
|
|
"category": {
|
|
"enum": [
|
|
"router",
|
|
"multilayer_switch",
|
|
"firewall",
|
|
"guest"
|
|
],
|
|
"title": "Category of the appliance"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description of the appliance. Could be a marketing description"
|
|
},
|
|
"vendor_name": {
|
|
"type": "string",
|
|
"title": "Name of the vendor"
|
|
},
|
|
"vendor_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"title": "Website of the vendor"
|
|
},
|
|
"documentation_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"title": "An optional documentation for using the appliance on vendor website"
|
|
},
|
|
"product_name": {
|
|
"type": "string",
|
|
"title": "Product name"
|
|
},
|
|
"product_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"title": "An optional product url on vendor website"
|
|
},
|
|
"registry_version": {
|
|
"enum": [1],
|
|
"title": "Version of the registry compatible with this appliance"
|
|
},
|
|
"status": {
|
|
"enum": ["stable", "experimental", "broken"],
|
|
"title": "Document if the appliance is working or not"
|
|
},
|
|
"maintainer": {
|
|
"type": "string",
|
|
"title": "Maintainer name"
|
|
},
|
|
"maintainer_email": {
|
|
"type": "string",
|
|
"format": "email",
|
|
"title": "Maintainer email"
|
|
},
|
|
"usage": {
|
|
"type": "string",
|
|
"title": "How to use the appliance"
|
|
},
|
|
"symbol": {
|
|
"type": "string",
|
|
"title": "An optional symbol for the appliance"
|
|
},
|
|
"first_port_name": {
|
|
"type": "string",
|
|
"title": "Optional name of the first networking port example: eth0"
|
|
},
|
|
"port_name_format": {
|
|
"type": "string",
|
|
"title": "Optional formating of the networking port example: eth{0}"
|
|
},
|
|
"port_segment_size": {
|
|
"type": "integer",
|
|
"title": "Optional port segment size. A port segment is a block of port. For example Ethernet0/0 Ethernet0/1 is the module 0 with a port segment size of 2"
|
|
},
|
|
"linked_base": {
|
|
"type": "boolean",
|
|
"title": "False if you don't want to use a single image for all nodes"
|
|
},
|
|
|
|
"qemu": {
|
|
"type": "object",
|
|
"title": "Qemu specific options",
|
|
"properties": {
|
|
"adapter_type": {
|
|
"enum": ["e1000", "i82551", "i82557b", "i82559er", "ne2k_pci", "pcnet", "rtl8139", "virtio", "virtio-net-pci"],
|
|
"title": "Type of network adapter"
|
|
},
|
|
"adapters": {
|
|
"type": "integer",
|
|
"title": "Number of adapters"
|
|
},
|
|
"ram": {
|
|
"type": "integer",
|
|
"title": "Ram allocated to the appliance (MB)"
|
|
},
|
|
"arch": {
|
|
"enum": ["aarch64", "alpha", "arm", "cris", "i386", "lm32", "m68k", "microblaze", "microblazeel", "mips", "mips64", "mips64el", "mipsel", "moxie", "or32", "ppc", "ppc64", "ppcemb", "s390x", "sh4", "sh4eb", "sparc", "sparc64", "tricore", "unicore32", "x86_64", "xtensa", "xtensaeb"],
|
|
"title": "Architecture emulated"
|
|
},
|
|
"console_type": {
|
|
"enum": ["telnet", "vnc"],
|
|
"title": "Type of console connection for the administration of the appliance"
|
|
},
|
|
"boot_priority": {
|
|
"type": "string",
|
|
"title": "Optional define the disk boot priory. Refer to -boot option in qemu manual for more details."
|
|
},
|
|
"kernel_command_line": {
|
|
"type": "string",
|
|
"title": "Command line parameters send to the kernel"
|
|
},
|
|
"options": {
|
|
"type": "string",
|
|
"title": "Optional additional qemu command line options"
|
|
},
|
|
"cpu_throttling": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"title": "Throttle the CPU"
|
|
},
|
|
"process_priority": {
|
|
"title": "Process priority for QEMU",
|
|
"enum": ["realtime",
|
|
"very high",
|
|
"high",
|
|
"normal",
|
|
"low",
|
|
"very low",
|
|
"null"]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"adapter_type",
|
|
"adapters",
|
|
"ram",
|
|
"arch",
|
|
"console_type"
|
|
]
|
|
},
|
|
"images": {
|
|
"type": "array",
|
|
"title": "Images for this appliance",
|
|
"items": {
|
|
"type": "object",
|
|
"title": "An image file",
|
|
"properties": {
|
|
"filename": {
|
|
"type": "string",
|
|
"title": "Filename"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"title": "Version of the file"
|
|
},
|
|
"md5sum": {
|
|
"type": "string",
|
|
"format": "md5",
|
|
"title": "md5sum of the file"
|
|
},
|
|
"filesize": {
|
|
"type": "integer",
|
|
"title": "File size in bytes"
|
|
},
|
|
"download_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"title": "Download url where you can download the appliance from a browser"
|
|
},
|
|
"direct_download_url": {
|
|
"type": "string",
|
|
"title": "Optional. Non authenticated url to the image file where you can download the image."
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"filename",
|
|
"version",
|
|
"md5sum",
|
|
"filesize",
|
|
"download_url"
|
|
]
|
|
}
|
|
},
|
|
"versions": {
|
|
"type": "array",
|
|
"title": "Versions of the appliance",
|
|
"items": {
|
|
"type": "object",
|
|
"title": "A version of the appliance",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name of the version"
|
|
},
|
|
"images": {
|
|
"type": "object",
|
|
"title": "Images used for this version",
|
|
"properties": {
|
|
"kernel_image": {
|
|
"type": "string",
|
|
"title": "Kernel image"
|
|
},
|
|
"initrd": {
|
|
"type": "string",
|
|
"title": "Initrd disk image"
|
|
},
|
|
"hda_disk_image": {
|
|
"type": "string",
|
|
"title": "Hdb disk image"
|
|
},
|
|
"hdb_disk_image": {
|
|
"type": "string",
|
|
"title": "Hdc disk image"
|
|
},
|
|
"hdc_disk_image": {
|
|
"type": "string",
|
|
"title": "Hdd disk image"
|
|
},
|
|
"hdd_disk_image": {
|
|
"type": "string",
|
|
"title": "Hdd diskimage"
|
|
},
|
|
"cdrom_image": {
|
|
"type": "string",
|
|
"title": "cdrom image"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"name",
|
|
"category",
|
|
"description",
|
|
"vendor_name",
|
|
"vendor_url",
|
|
"product_name",
|
|
"registry_version",
|
|
"status",
|
|
"maintainer",
|
|
"maintainer_email",
|
|
"qemu",
|
|
"images",
|
|
"versions"
|
|
]
|
|
}
|