mirror of
https://github.com/GNS3/gns3-registry.git
synced 2024-12-18 20:37:57 +00:00
522 lines
16 KiB
JSON
522 lines
16 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"type": "object",
|
|
"title": "JSON schema validating a GNS3 appliance",
|
|
|
|
"definitions": {
|
|
"dynamips_slot": {
|
|
"enum": ["C2600-MB-2FE", "C2600-MB-1E", "PA-A1", "PA-8E", "C1700-MB-1FE", "PA-8T", "PA-2FE-TX", "PA-FE-TX", "PA-GE", "C2600-MB-2E", "C7200-IO-FE", "NM-4T", "C2600-MB-1FE", "C7200-IO-2FE", "PA-POS-OC3", "PA-4T+", "C1700-MB-WIC1", "NM-16ESW", "C7200-IO-GE-E", "NM-4E", "GT96100-FE", "NM-1FE-TX", "Leopard-2FE", "NM-1E", "PA-4E", ""]
|
|
},
|
|
|
|
"dynamips_wic": {
|
|
"enum": ["WIC-1ENET", "WIC-1T", "WIC-2T", ""]
|
|
}
|
|
},
|
|
|
|
"properties": {
|
|
"appliance_id": {
|
|
"title": "Appliance ID",
|
|
"type": "string",
|
|
"minLength": 36,
|
|
"maxLength": 36,
|
|
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
},
|
|
"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"
|
|
},
|
|
"vendor_logo_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"title": "Link to the vendor logo (used by the GNS3 marketplace)"
|
|
},
|
|
"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, 2, 3, 4, 5, 6, 7],
|
|
"title": "Version of the registry compatible with this appliance"
|
|
},
|
|
"status": {
|
|
"enum": ["stable", "experimental", "broken"],
|
|
"title": "Document if the appliance is working or not"
|
|
},
|
|
"availability": {
|
|
"enum": ["free", "with-registration", "free-to-try", "service-contract"],
|
|
"title": "About image availability: can be downloaded directly; download requires a free registration; paid but a trial version (time or feature limited) is available; not available publicly"
|
|
},
|
|
"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_clone": {
|
|
"type": "boolean",
|
|
"title": "False if you don't want to use a single image for all nodes"
|
|
},
|
|
|
|
"docker": {
|
|
"type": "object",
|
|
"title": "Docker specific options",
|
|
"properties": {
|
|
"adapters": {
|
|
"type": "integer",
|
|
"title": "Number of ethernet adapters"
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"title": "Docker image in the Docker Hub"
|
|
},
|
|
"start_command": {
|
|
"type": "string",
|
|
"title": "Command executed when the container start. Empty will use the default"
|
|
},
|
|
"environment": {
|
|
"type": "string",
|
|
"title": "One KEY=VAR environment by line"
|
|
},
|
|
"console_type": {
|
|
"enum": ["telnet", "vnc", "http", "https", "none"],
|
|
"title": "Type of console connection for the administration of the appliance"
|
|
},
|
|
"console_http_port": {
|
|
"description": "Internal port in the container of the HTTP server",
|
|
"type": "integer"
|
|
},
|
|
"console_http_path": {
|
|
"description": "Path of the web interface",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"adapters",
|
|
"image"
|
|
]
|
|
},
|
|
"iou": {
|
|
"type": "object",
|
|
"title": "IOU specific options",
|
|
"properties": {
|
|
"ethernet_adapters": {
|
|
"type": "integer",
|
|
"title": "Number of ethernet adapters"
|
|
},
|
|
"serial_adapters": {
|
|
"type": "integer",
|
|
"title": "Number of serial adapters"
|
|
},
|
|
"nvram": {
|
|
"type": "integer",
|
|
"title": "Host NVRAM"
|
|
},
|
|
"ram": {
|
|
"type": "integer",
|
|
"title": "Host RAM"
|
|
},
|
|
"startup_config": {
|
|
"type": "string",
|
|
"title": "Config loaded at startup"
|
|
}
|
|
},
|
|
"required": [
|
|
"ethernet_adapters",
|
|
"serial_adapters",
|
|
"nvram",
|
|
"ram",
|
|
"startup_config"
|
|
]
|
|
},
|
|
"dynamips": {
|
|
"type": "object",
|
|
"title": "Dynamips specific options",
|
|
"properties": {
|
|
"chassis": {
|
|
"title": "Chassis type",
|
|
"enum": ["1720", "1721", "1750", "1751", "1760", "2610", "2620", "2610XM", "2620XM", "2650XM", "2621", "2611XM", "2621XM", "2651XM", "3620", "3640", "3660", ""]
|
|
},
|
|
"platform": {
|
|
"title": "Platform type",
|
|
"enum": ["c1700", "c2600", "c2691", "c3725", "c3745", "c3600", "c7200"]
|
|
},
|
|
"ram": {
|
|
"title": "Amount of ram",
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"nvram": {
|
|
"title": "Amount of nvram",
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"startup_config": {
|
|
"type": "string",
|
|
"title": "Config loaded at startup"
|
|
},
|
|
"wic0": { "$ref": "#/definitions/dynamips_wic" },
|
|
"wic1": { "$ref": "#/definitions/dynamips_wic" },
|
|
"wic2": { "$ref": "#/definitions/dynamips_wic" },
|
|
"slot0": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot1": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot2": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot3": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot4": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot5": { "$ref": "#/definitions/dynamips_slot" },
|
|
"slot6": { "$ref": "#/definitions/dynamips_slot" },
|
|
"midplane": { "enum": ["std", "vxr"] },
|
|
"npe": { "enum": ["npe-100", "npe-150", "npe-175", "npe-200", "npe-225", "npe-300", "npe-400", "npe-g2"] }
|
|
},
|
|
"required": [
|
|
"platform",
|
|
"ram",
|
|
"nvram"
|
|
]
|
|
},
|
|
|
|
"qemu": {
|
|
"type": "object",
|
|
"title": "Qemu specific options",
|
|
"properties": {
|
|
"adapter_type": {
|
|
"enum": [
|
|
"e1000",
|
|
"i82550",
|
|
"i82551",
|
|
"i82557a",
|
|
"i82557b",
|
|
"i82557c",
|
|
"i82558a",
|
|
"i82558b",
|
|
"i82559a",
|
|
"i82559b",
|
|
"i82559c",
|
|
"i82559er",
|
|
"i82562",
|
|
"i82801",
|
|
"igb",
|
|
"ne2k_pci",
|
|
"pcnet",
|
|
"rtl8139",
|
|
"virtio",
|
|
"virtio-net-pci",
|
|
"vmxnet3"
|
|
],
|
|
"title": "Type of network adapter"
|
|
},
|
|
"adapters": {
|
|
"type": "integer",
|
|
"title": "Number of adapters"
|
|
},
|
|
"custom_adapters": {
|
|
"type": "array",
|
|
"title": "Custom adapters",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"adapter_number": {
|
|
"title": "Adapter number",
|
|
"type": "integer"
|
|
},
|
|
"port_name": {
|
|
"title": "Custom port name",
|
|
"type": "string",
|
|
"minimum": 1
|
|
},
|
|
"adapter_type": {
|
|
"title": "Custom adapter type",
|
|
"type": "string",
|
|
"enum": [
|
|
"e1000",
|
|
"i82550",
|
|
"i82551",
|
|
"i82557a",
|
|
"i82557b",
|
|
"i82557c",
|
|
"i82558a",
|
|
"i82558b",
|
|
"i82559a",
|
|
"i82559b",
|
|
"i82559c",
|
|
"i82559er",
|
|
"i82562",
|
|
"i82801",
|
|
"igb",
|
|
"ne2k_pci",
|
|
"pcnet",
|
|
"rtl8139",
|
|
"virtio",
|
|
"virtio-net-pci",
|
|
"vmxnet3"
|
|
]
|
|
},
|
|
"mac_address": {
|
|
"title": "Custom MAC address",
|
|
"type": "string",
|
|
"minimum": 1,
|
|
"pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"
|
|
}
|
|
},
|
|
"required": ["adapter_number"]
|
|
}
|
|
},
|
|
"ram": {
|
|
"type": "integer",
|
|
"title": "Ram allocated to the appliance (MB)"
|
|
},
|
|
"cpus": {
|
|
"type": "integer",
|
|
"title": "Number of Virtual CPU"
|
|
},
|
|
"hda_disk_interface": {
|
|
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
|
"title": "Disk interface for the installed hda_disk_image"
|
|
},
|
|
"hdb_disk_interface": {
|
|
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
|
"title": "Disk interface for the installed hdb_disk_image"
|
|
},
|
|
"hdc_disk_interface": {
|
|
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
|
"title": "Disk interface for the installed hdc_disk_image"
|
|
},
|
|
"hdd_disk_interface": {
|
|
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
|
"title": "Disk interface for the installed hdd_disk_image"
|
|
},
|
|
"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", "spice", "spice+agent", "none"],
|
|
"title": "Type of console connection for the administration of the appliance"
|
|
},
|
|
"boot_priority": {
|
|
"enum": ["d", "c", "dc", "cd", "n", "nc", "nd", "cn", "dn"],
|
|
"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"
|
|
},
|
|
"kvm": {
|
|
"title": "KVM requirements",
|
|
"enum": ["require", "allow", "disable"]
|
|
},
|
|
"options": {
|
|
"type": "string",
|
|
"title": "Optional additional qemu command line options"
|
|
},
|
|
"cpu_throttling": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"title": "Throttle the CPU"
|
|
},
|
|
"tpm": {
|
|
"type": "boolean",
|
|
"title": "Enable the Trusted Platform Module (TPM)"
|
|
},
|
|
"on_close": {
|
|
"title": "Action to execute on the VM is closed",
|
|
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
|
},
|
|
"process_priority": {
|
|
"title": "Process priority for QEMU",
|
|
"enum": ["realtime",
|
|
"very high",
|
|
"high",
|
|
"normal",
|
|
"low",
|
|
"very low",
|
|
"null"]
|
|
}
|
|
},
|
|
"required": [
|
|
"adapter_type",
|
|
"adapters",
|
|
"ram",
|
|
"arch",
|
|
"console_type",
|
|
"kvm"
|
|
]
|
|
},
|
|
"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",
|
|
"title": "md5sum of the file",
|
|
"pattern": "^[a-f0-9]{32}$"
|
|
},
|
|
"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",
|
|
"format": "uri",
|
|
"title": "Optional. Non authenticated url to the image file where you can download the image."
|
|
},
|
|
"compression": {
|
|
"enum": ["bzip2", "gzip", "lzma", "xz", "rar", "zip", "7z"],
|
|
"title": "Optional, compression type of direct download url image."
|
|
}
|
|
},
|
|
"required": [
|
|
"filename",
|
|
"version",
|
|
"md5sum",
|
|
"filesize"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"idlepc": {"type": "string", "pattern": "^0x[0-9a-f]{8}"},
|
|
"images": {
|
|
"type": "object",
|
|
"title": "Images used for this version",
|
|
"properties": {
|
|
"kernel_image": {
|
|
"type": "string",
|
|
"title": "Kernel image"
|
|
},
|
|
"initrd": {
|
|
"type": "string",
|
|
"title": "Initrd disk image"
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"title": "OS image"
|
|
},
|
|
"bios_image": {
|
|
"type": "string",
|
|
"title": "Bios image"
|
|
},
|
|
"hda_disk_image": {
|
|
"type": "string",
|
|
"title": "Hda 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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"appliance_id",
|
|
"name",
|
|
"category",
|
|
"description",
|
|
"vendor_name",
|
|
"vendor_url",
|
|
"product_name",
|
|
"registry_version",
|
|
"status",
|
|
"maintainer",
|
|
"maintainer_email"
|
|
]
|
|
}
|