diff --git a/docs/api/examples/compute_delete_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..ccf1a0e3
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/33a9c805-e9ea-46af-9954-fb96266e7b6e/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/33a9c805-e9ea-46af-9954-fb96266e7b6e/adapters/0/ports/0/nio HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidiounodesnodeid.txt b/docs/api/examples/compute_delete_projectsprojectidiounodesnodeid.txt
new file mode 100644
index 00000000..15fdd76a
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidiounodesnodeid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/c2f16f3e-7010-473e-ab84-9e4b92823df1'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/c2f16f3e-7010-473e-ab84-9e4b92823df1 HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..294e6320
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/0fd3bfe1-91e0-430e-9028-bc724829e296/adapters/1/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/0fd3bfe1-91e0-430e-9028-bc724829e296/adapters/1/ports/0/nio HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeid.txt b/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeid.txt
new file mode 100644
index 00000000..236907ce
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/07a4a0b0-97c7-4252-9ba5-deace10899a3'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/07a4a0b0-97c7-4252-9ba5-deace10899a3 HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..b713b833
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/c6a898c6-9112-4cce-aca4-9dd821a46de0/adapters/1/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/c6a898c6-9112-4cce-aca4-9dd821a46de0/adapters/1/ports/0/nio HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..74a85219
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/5f749530-f702-460a-b873-05060ecc5c2f/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/5f749530-f702-460a-b873-05060ecc5c2f/adapters/0/ports/0/nio HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeid.txt b/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeid.txt
new file mode 100644
index 00000000..aa3881f2
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/3deff6a0-3bd4-43ab-bc98-a76fd59d5901'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/3deff6a0-3bd4-43ab-bc98-a76fd59d5901 HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..357dae48
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/b5aa6c6c-3566-4a6e-ad2e-b8019ed07f23/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/b5aa6c6c-3566-4a6e-ad2e-b8019ed07f23/adapters/0/ports/0/nio HTTP/1.1
+
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_get_iounodes.txt b/docs/api/examples/compute_get_iounodes.txt
new file mode 100644
index 00000000..a122fe58
--- /dev/null
+++ b/docs/api/examples/compute_get_iounodes.txt
@@ -0,0 +1,20 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/iou/nodes'
+
+GET /v2/compute/iou/nodes HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 72
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/iou/nodes
+
+[
+ {
+ "filename": "iou.bin",
+ "path": "iou.bin"
+ }
+]
diff --git a/docs/api/examples/compute_get_projectsprojectidiounodesnodeid.txt b/docs/api/examples/compute_get_projectsprojectidiounodesnodeid.txt
new file mode 100644
index 00000000..d679b087
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidiounodesnodeid.txt
@@ -0,0 +1,33 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/96b132df-9ce7-46ef-b8fb-406a3d867c38'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/96b132df-9ce7-46ef-b8fb-406a3d867c38 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 645
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": null,
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "node_id": "96b132df-9ce7-46ef-b8fb-406a3d867c38",
+ "nvram": 128,
+ "path": "iou.bin",
+ "private_config": null,
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 256,
+ "serial_adapters": 2,
+ "startup_config": null,
+ "use_default_iou_values": true,
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/96b132df-9ce7-46ef-b8fb-406a3d867c38"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidiounodesnodeidconfigs.txt b/docs/api/examples/compute_get_projectsprojectidiounodesnodeidconfigs.txt
new file mode 100644
index 00000000..f8b3e6e2
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidiounodesnodeidconfigs.txt
@@ -0,0 +1,17 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/04746a91-7738-491a-829d-6fa0f933f6bb/configs'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/04746a91-7738-491a-829d-6fa0f933f6bb/configs HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 40
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/configs
+
+{
+ "startup_config_content": "TEST"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidqemunodesnodeid.txt b/docs/api/examples/compute_get_projectsprojectidqemunodesnodeid.txt
new file mode 100644
index 00000000..7d08ef98
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidqemunodesnodeid.txt
@@ -0,0 +1,56 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/530d47d9-0234-4798-a25f-80d769b4fa84'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/530d47d9-0234-4798-a25f-80d769b4fa84 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1388
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "e1000",
+ "adapters": 1,
+ "boot_priority": "c",
+ "cdrom_image": "",
+ "cdrom_image_md5sum": null,
+ "command_line": "",
+ "console": 5000,
+ "console_type": "telnet",
+ "cpu_throttling": 0,
+ "cpus": 1,
+ "hda_disk_image": "",
+ "hda_disk_image_md5sum": null,
+ "hda_disk_interface": "ide",
+ "hdb_disk_image": "",
+ "hdb_disk_image_md5sum": null,
+ "hdb_disk_interface": "ide",
+ "hdc_disk_image": "",
+ "hdc_disk_image_md5sum": null,
+ "hdc_disk_interface": "ide",
+ "hdd_disk_image": "",
+ "hdd_disk_image_md5sum": null,
+ "hdd_disk_interface": "ide",
+ "initrd": "",
+ "initrd_md5sum": null,
+ "kernel_command_line": "",
+ "kernel_image": "",
+ "kernel_image_md5sum": null,
+ "legacy_networking": false,
+ "mac_address": "00:00:ab:fa:84:00",
+ "name": "PC TEST 1",
+ "node_id": "530d47d9-0234-4798-a25f-80d769b4fa84",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64",
+ "ram": 256,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/530d47d9-0234-4798-a25f-80d769b4fa84"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidvirtualboxnodesnodeid.txt b/docs/api/examples/compute_get_projectsprojectidvirtualboxnodesnodeid.txt
new file mode 100644
index 00000000..2ecc1931
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidvirtualboxnodesnodeid.txt
@@ -0,0 +1,29 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/635ebd8e-23a4-4a8c-97ea-190076434488'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/635ebd8e-23a4-4a8c-97ea-190076434488 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 417
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5001,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "VMTEST",
+ "node_id": "635ebd8e-23a4-4a8c-97ea-190076434488",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vmname": "VMTEST"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidvpcsnodesnodeid.txt b/docs/api/examples/compute_get_projectsprojectidvpcsnodesnodeid.txt
new file mode 100644
index 00000000..0e5b8258
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidvpcsnodesnodeid.txt
@@ -0,0 +1,26 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/f69cd7e8-e3d8-4917-b7ee-0fb5e58d945e'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/f69cd7e8-e3d8-4917-b7ee-0fb5e58d945e HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 487
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "node_id": "f69cd7e8-e3d8-4917-b7ee-0fb5e58d945e",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/f69cd7e8-e3d8-4917-b7ee-0fb5e58d945e"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..460807b1
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/0a78c30a-020d-4fb3-a46a-c90371e7e639/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/0a78c30a-020d-4fb3-a46a-c90371e7e639/adapters/0/ports/0/nio HTTP/1.1
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 89
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
new file mode 100644
index 00000000..2a66b1b9
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
@@ -0,0 +1,20 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/5709b8c8-d826-4a39-96b0-b9e8d858a2af/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/5709b8c8-d826-4a39-96b0-b9e8d858a2af/adapters/0/ports/0/start_capture HTTP/1.1
+{
+ "capture_file_name": "test.pcap",
+ "data_link_type": "DLT_EN10MB"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 157
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+
+{
+ "pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/tmp/captures/test.pcap"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
new file mode 100644
index 00000000..e836d65a
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/f22df48a-4e90-459a-b18c-fb88a35908cf/adapters/0/ports/0/stop_capture' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/f22df48a-4e90-459a-b18c-fb88a35908cf/adapters/0/ports/0/stop_capture HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodes.txt b/docs/api/examples/compute_post_projectsprojectidiounodes.txt
new file mode 100644
index 00000000..4177c5cd
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodes.txt
@@ -0,0 +1,38 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes' -d '{"name": "PC TEST 1", "node_id": "f057f072-47a1-4dde-8031-2255c955831d", "path": "iou.bin", "startup_config_content": "hostname test"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes HTTP/1.1
+{
+ "name": "PC TEST 1",
+ "node_id": "f057f072-47a1-4dde-8031-2255c955831d",
+ "path": "iou.bin",
+ "startup_config_content": "hostname test"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 661
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": null,
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "node_id": "f057f072-47a1-4dde-8031-2255c955831d",
+ "nvram": 128,
+ "path": "iou.bin",
+ "private_config": null,
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 256,
+ "serial_adapters": 2,
+ "startup_config": "startup-config.cfg",
+ "use_default_iou_values": true,
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/f057f072-47a1-4dde-8031-2255c955831d"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..5b5428c9
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/57832a42-5145-4de8-a09a-e917a5626b61/adapters/1/ports/0/nio' -d '{"ethernet_device": "bridge0", "type": "nio_generic_ethernet"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/57832a42-5145-4de8-a09a-e917a5626b61/adapters/1/ports/0/nio HTTP/1.1
+{
+ "ethernet_device": "bridge0",
+ "type": "nio_generic_ethernet"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 72
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
+{
+ "ethernet_device": "bridge0",
+ "type": "nio_generic_ethernet"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
new file mode 100644
index 00000000..955a3503
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
@@ -0,0 +1,20 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/c2edba43-104b-4159-909d-4df1dc262798/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/c2edba43-104b-4159-909d-4df1dc262798/adapters/0/ports/0/start_capture HTTP/1.1
+{
+ "capture_file_name": "test.pcap",
+ "data_link_type": "DLT_EN10MB"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 157
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+
+{
+ "pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/tmp/captures/test.pcap"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
new file mode 100644
index 00000000..9e947687
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/1610c995-af0f-46e1-92a4-0d70c6293afe/adapters/0/ports/0/stop_capture' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/1610c995-af0f-46e1-92a4-0d70c6293afe/adapters/0/ports/0/stop_capture HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidreload.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidreload.txt
new file mode 100644
index 00000000..ac536825
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/af0377f7-490b-42ba-96c9-3dac785e68ac/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/af0377f7-490b-42ba-96c9-3dac785e68ac/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstart.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstart.txt
new file mode 100644
index 00000000..bcc71b3e
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstart.txt
@@ -0,0 +1,35 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/9d260bc6-62d0-4fcd-bd1b-74a2afa0eff0/start' -d '{"iourc_content": "test"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/9d260bc6-62d0-4fcd-bd1b-74a2afa0eff0/start HTTP/1.1
+{
+ "iourc_content": "test"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 709
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/start
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp68swteb4/iourc",
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "node_id": "9d260bc6-62d0-4fcd-bd1b-74a2afa0eff0",
+ "nvram": 128,
+ "path": "iou.bin",
+ "private_config": null,
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 256,
+ "serial_adapters": 2,
+ "startup_config": null,
+ "use_default_iou_values": true,
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/9d260bc6-62d0-4fcd-bd1b-74a2afa0eff0"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstop.txt b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstop.txt
new file mode 100644
index 00000000..ec29fe54
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiounodesnodeidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/faa706c0-3afe-4210-9067-54dd72c7c220/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/faa706c0-3afe-4210-9067-54dd72c7c220/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodes.txt b/docs/api/examples/compute_post_projectsprojectidqemunodes.txt
new file mode 100644
index 00000000..92eb1de1
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodes.txt
@@ -0,0 +1,61 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes' -d '{"hda_disk_image": "linux\u8f7d.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64", "ram": 1024}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes HTTP/1.1
+{
+ "hda_disk_image": "linux\u8f7d.img",
+ "name": "PC TEST 1",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64",
+ "ram": 1024
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1434
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "e1000",
+ "adapters": 1,
+ "boot_priority": "c",
+ "cdrom_image": "",
+ "cdrom_image_md5sum": null,
+ "command_line": "",
+ "console": 5000,
+ "console_type": "telnet",
+ "cpu_throttling": 0,
+ "cpus": 1,
+ "hda_disk_image": "linux\u8f7d.img",
+ "hda_disk_image_md5sum": "c4ca4238a0b923820dcc509a6f75849b",
+ "hda_disk_interface": "ide",
+ "hdb_disk_image": "",
+ "hdb_disk_image_md5sum": null,
+ "hdb_disk_interface": "ide",
+ "hdc_disk_image": "",
+ "hdc_disk_image_md5sum": null,
+ "hdc_disk_interface": "ide",
+ "hdd_disk_image": "",
+ "hdd_disk_image_md5sum": null,
+ "hdd_disk_interface": "ide",
+ "initrd": "",
+ "initrd_md5sum": null,
+ "kernel_command_line": "",
+ "kernel_image": "",
+ "kernel_image_md5sum": null,
+ "legacy_networking": false,
+ "mac_address": "00:00:ab:e1:35:00",
+ "name": "PC TEST 1",
+ "node_id": "ac199989-ad61-41bb-9265-2a6aacd1e135",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64",
+ "ram": 1024,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/ac199989-ad61-41bb-9265-2a6aacd1e135"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..aa09a38c
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/e3abe5d8-0f61-41c8-8f76-cd64a3790443/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/e3abe5d8-0f61-41c8-8f76-cd64a3790443/adapters/1/ports/0/nio HTTP/1.1
+{
+ "ethernet_device": "eth0",
+ "type": "nio_generic_ethernet"
+}
+
+
+HTTP/1.1 409
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 89
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
+{
+ "message": "NIO of type nio_generic_ethernet is not supported",
+ "status": 409
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidreload.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidreload.txt
new file mode 100644
index 00000000..807ab410
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/06aa598c-fe4f-4590-825b-1cc1a255b72f/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/06aa598c-fe4f-4590-825b-1cc1a255b72f/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidresume.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidresume.txt
new file mode 100644
index 00000000..50a5f161
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidresume.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/2fd2bef9-0870-4cc0-8bee-41e5ee3d0567/resume' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/2fd2bef9-0870-4cc0-8bee-41e5ee3d0567/resume HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/resume
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstart.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstart.txt
new file mode 100644
index 00000000..847e9867
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstart.txt
@@ -0,0 +1,56 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/774f7849-bc8c-4e4f-920a-5d0e544b0bf0/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/774f7849-bc8c-4e4f-920a-5d0e544b0bf0/start HTTP/1.1
+{}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1388
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/start
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "e1000",
+ "adapters": 1,
+ "boot_priority": "c",
+ "cdrom_image": "",
+ "cdrom_image_md5sum": null,
+ "command_line": "",
+ "console": 5000,
+ "console_type": "telnet",
+ "cpu_throttling": 0,
+ "cpus": 1,
+ "hda_disk_image": "",
+ "hda_disk_image_md5sum": null,
+ "hda_disk_interface": "ide",
+ "hdb_disk_image": "",
+ "hdb_disk_image_md5sum": null,
+ "hdb_disk_interface": "ide",
+ "hdc_disk_image": "",
+ "hdc_disk_image_md5sum": null,
+ "hdc_disk_interface": "ide",
+ "hdd_disk_image": "",
+ "hdd_disk_image_md5sum": null,
+ "hdd_disk_interface": "ide",
+ "initrd": "",
+ "initrd_md5sum": null,
+ "kernel_command_line": "",
+ "kernel_image": "",
+ "kernel_image_md5sum": null,
+ "legacy_networking": false,
+ "mac_address": "00:00:ab:0b:f0:00",
+ "name": "PC TEST 1",
+ "node_id": "774f7849-bc8c-4e4f-920a-5d0e544b0bf0",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64",
+ "ram": 256,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/774f7849-bc8c-4e4f-920a-5d0e544b0bf0"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstop.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstop.txt
new file mode 100644
index 00000000..293d73b9
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/8dc83697-0589-47ee-86ea-c092175764d9/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/8dc83697-0589-47ee-86ea-c092175764d9/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidsuspend.txt b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidsuspend.txt
new file mode 100644
index 00000000..ed7d7211
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemunodesnodeidsuspend.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/fa906669-98de-448b-b61e-1f6984745681/suspend' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/fa906669-98de-448b-b61e-1f6984745681/suspend HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}/suspend
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodes.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodes.txt
new file mode 100644
index 00000000..28e52d76
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodes.txt
@@ -0,0 +1,33 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes' -d '{"linked_clone": false, "name": "VM1", "vmname": "VM1"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes HTTP/1.1
+{
+ "linked_clone": false,
+ "name": "VM1",
+ "vmname": "VM1"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 411
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5000,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "VM1",
+ "node_id": "a6a4538d-cd54-45f5-a68a-c146eaed264b",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vmname": "VM1"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..a7e58d24
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/50e13103-1e98-4e5e-97e9-1706b8bf80e5/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/50e13103-1e98-4e5e-97e9-1706b8bf80e5/adapters/0/ports/0/nio HTTP/1.1
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 89
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidreload.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidreload.txt
new file mode 100644
index 00000000..0d2ec537
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/bf57f9a3-3cd1-43ba-8b7f-3738c74ccbcb/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/bf57f9a3-3cd1-43ba-8b7f-3738c74ccbcb/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidresume.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidresume.txt
new file mode 100644
index 00000000..478d77d6
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidresume.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/f363585c-3440-48a0-b98c-26fc6a391b5b/resume' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/f363585c-3440-48a0-b98c-26fc6a391b5b/resume HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/resume
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstart.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstart.txt
new file mode 100644
index 00000000..8f0c2e68
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstart.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/e001487d-f9c9-4eca-87c9-0fe3eb0a9e4c/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/e001487d-f9c9-4eca-87c9-0fe3eb0a9e4c/start HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/start
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstop.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstop.txt
new file mode 100644
index 00000000..90103645
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/c935caf1-63f8-4fce-acd0-78561f4f742b/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/c935caf1-63f8-4fce-acd0-78561f4f742b/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidsuspend.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidsuspend.txt
new file mode 100644
index 00000000..be9d7f33
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxnodesnodeidsuspend.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/117e005a-a1a9-41bb-8dca-a2769425a4fa/suspend' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/117e005a-a1a9-41bb-8dca-a2769425a4fa/suspend HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/suspend
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsnodes.txt b/docs/api/examples/compute_post_projectsprojectidvpcsnodes.txt
new file mode 100644
index 00000000..fd8dcdda
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsnodes.txt
@@ -0,0 +1,28 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes' -d '{"name": "PC TEST 1"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes HTTP/1.1
+{
+ "name": "PC TEST 1"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 487
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "node_id": "6719d2a9-7932-4f25-8ab5-583b62140965",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/6719d2a9-7932-4f25-8ab5-583b62140965"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..e4717030
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/9a86a50f-bd87-4acc-ae3b-8958f5d756cc/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/9a86a50f-bd87-4acc-ae3b-8958f5d756cc/adapters/0/ports/0/nio HTTP/1.1
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 89
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
+{
+ "lport": 4242,
+ "rhost": "127.0.0.1",
+ "rport": 4343,
+ "type": "nio_udp"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidreload.txt b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidreload.txt
new file mode 100644
index 00000000..ba7d532f
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/c886766a-06cd-45a3-92ab-8cdef1c9d192/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/c886766a-06cd-45a3-92ab-8cdef1c9d192/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstart.txt b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstart.txt
new file mode 100644
index 00000000..eef5794d
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstart.txt
@@ -0,0 +1,26 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/2c97c366-7919-425a-abe5-fff40b854f00/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/2c97c366-7919-425a-abe5-fff40b854f00/start HTTP/1.1
+{}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 487
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/start
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "node_id": "2c97c366-7919-425a-abe5-fff40b854f00",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/2c97c366-7919-425a-abe5-fff40b854f00"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstop.txt b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstop.txt
new file mode 100644
index 00000000..0699795e
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsnodesnodeidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/dcd85ba4-f921-438f-9b10-999d04b250d5/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/dcd85ba4-f921-438f-9b10-999d04b250d5/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 204
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/stop
+
diff --git a/docs/api/examples/compute_put_projectsprojectiddockernodesnodeid.txt b/docs/api/examples/compute_put_projectsprojectiddockernodesnodeid.txt
new file mode 100644
index 00000000..a60d45c6
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectiddockernodesnodeid.txt
@@ -0,0 +1,36 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/10e0eea7-ee6b-4e4f-8bfb-653b70b2fe6e' -d '{"console": 5002, "environment": "GNS3=1\nGNS4=0", "name": "test", "start_command": "yes"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/nodes/10e0eea7-ee6b-4e4f-8bfb-653b70b2fe6e HTTP/1.1
+{
+ "console": 5002,
+ "environment": "GNS3=1\nGNS4=0",
+ "name": "test",
+ "start_command": "yes"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 631
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/docker/nodes/{node_id}
+
+{
+ "adapters": 2,
+ "aux": 5001,
+ "console": 5002,
+ "console_http_path": "/",
+ "console_http_port": 80,
+ "console_resolution": "1280x1024",
+ "console_type": "telnet",
+ "container_id": "8bd8153ea8f5",
+ "environment": "GNS3=1\nGNS4=0",
+ "image": "nginx",
+ "name": "test",
+ "node_id": "10e0eea7-ee6b-4e4f-8bfb-653b70b2fe6e",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "start_command": "yes",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/docker/10e0eea7-ee6b-4e4f-8bfb-653b70b2fe6e"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidiounodesnodeid.txt b/docs/api/examples/compute_put_projectsprojectidiounodesnodeid.txt
new file mode 100644
index 00000000..59b87e37
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidiounodesnodeid.txt
@@ -0,0 +1,44 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/2800118d-916d-46b6-b4ef-148514ccc000' -d '{"console": 5001, "ethernet_adapters": 4, "iourc_content": "test", "l1_keepalives": true, "name": "test", "nvram": 2048, "ram": 512, "serial_adapters": 0, "startup_config_content": "hostname test", "use_default_iou_values": true}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/nodes/2800118d-916d-46b6-b4ef-148514ccc000 HTTP/1.1
+{
+ "console": 5001,
+ "ethernet_adapters": 4,
+ "iourc_content": "test",
+ "l1_keepalives": true,
+ "name": "test",
+ "nvram": 2048,
+ "ram": 512,
+ "serial_adapters": 0,
+ "startup_config_content": "hostname test",
+ "use_default_iou_values": true
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 720
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/iou/nodes/{node_id}
+
+{
+ "command_line": "",
+ "console": 5001,
+ "ethernet_adapters": 4,
+ "iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzi3b0o9q/iourc",
+ "l1_keepalives": true,
+ "md5sum": null,
+ "name": "test",
+ "node_id": "2800118d-916d-46b6-b4ef-148514ccc000",
+ "nvram": 2048,
+ "path": "iou.bin",
+ "private_config": null,
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 512,
+ "serial_adapters": 0,
+ "startup_config": "startup-config.cfg",
+ "use_default_iou_values": true,
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp0vou54g1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/2800118d-916d-46b6-b4ef-148514ccc000"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidqemunodesnodeid.txt b/docs/api/examples/compute_put_projectsprojectidqemunodesnodeid.txt
new file mode 100644
index 00000000..382de0f5
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidqemunodesnodeid.txt
@@ -0,0 +1,61 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/74528119-b448-4fd7-8810-e7b561d89165' -d '{"console": 5001, "hdb_disk_image": "linux.img", "name": "test", "ram": 1024}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/nodes/74528119-b448-4fd7-8810-e7b561d89165 HTTP/1.1
+{
+ "console": 5001,
+ "hdb_disk_image": "linux.img",
+ "name": "test",
+ "ram": 1024
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1393
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/qemu/nodes/{node_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "e1000",
+ "adapters": 1,
+ "boot_priority": "c",
+ "cdrom_image": "",
+ "cdrom_image_md5sum": null,
+ "command_line": "",
+ "console": 5001,
+ "console_type": "telnet",
+ "cpu_throttling": 0,
+ "cpus": 1,
+ "hda_disk_image": "",
+ "hda_disk_image_md5sum": null,
+ "hda_disk_interface": "ide",
+ "hdb_disk_image": "linux.img",
+ "hdb_disk_image_md5sum": null,
+ "hdb_disk_interface": "ide",
+ "hdc_disk_image": "",
+ "hdc_disk_image_md5sum": null,
+ "hdc_disk_interface": "ide",
+ "hdd_disk_image": "",
+ "hdd_disk_image_md5sum": null,
+ "hdd_disk_interface": "ide",
+ "initrd": "",
+ "initrd_md5sum": null,
+ "kernel_command_line": "",
+ "kernel_image": "",
+ "kernel_image_md5sum": null,
+ "legacy_networking": false,
+ "mac_address": "00:00:ab:91:65:00",
+ "name": "test",
+ "node_id": "74528119-b448-4fd7-8810-e7b561d89165",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptlp_o4d8/qemu-system-x86_64",
+ "ram": 1024,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/74528119-b448-4fd7-8810-e7b561d89165"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidvirtualboxnodesnodeid.txt b/docs/api/examples/compute_put_projectsprojectidvirtualboxnodesnodeid.txt
new file mode 100644
index 00000000..99fb6ddc
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidvirtualboxnodesnodeid.txt
@@ -0,0 +1,32 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/db36a6de-debc-4edd-9fcb-639b2a1ca05b' -d '{"console": 5010, "name": "test"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/nodes/db36a6de-debc-4edd-9fcb-639b2a1ca05b HTTP/1.1
+{
+ "console": 5010,
+ "name": "test"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 415
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5010,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "test",
+ "node_id": "db36a6de-debc-4edd-9fcb-639b2a1ca05b",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vmname": "VMTEST"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidvpcsnodesnodeid.txt b/docs/api/examples/compute_put_projectsprojectidvpcsnodesnodeid.txt
new file mode 100644
index 00000000..cea2e556
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidvpcsnodesnodeid.txt
@@ -0,0 +1,30 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/c332cfd9-49c6-4e9c-a868-347cde6c5a08' -d '{"console": 5011, "name": "test", "startup_script": "ip 192.168.1.1"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/nodes/c332cfd9-49c6-4e9c-a868-347cde6c5a08 HTTP/1.1
+{
+ "console": 5011,
+ "name": "test",
+ "startup_script": "ip 192.168.1.1"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 503
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/compute/projects/{project_id}/vpcs/nodes/{node_id}
+
+{
+ "command_line": "",
+ "console": 5011,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "c332cfd9-49c6-4e9c-a868-347cde6c5a08",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": "ip 192.168.1.1",
+ "startup_script_path": "startup.vpc",
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpzf6i_o35/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/c332cfd9-49c6-4e9c-a868-347cde6c5a08"
+}
diff --git a/docs/api/examples/controller_delete_projectsprojectidnodesnodeid.txt b/docs/api/examples/controller_delete_projectsprojectidnodesnodeid.txt
new file mode 100644
index 00000000..99ca1b8d
--- /dev/null
+++ b/docs/api/examples/controller_delete_projectsprojectidnodesnodeid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/projects/fe508bfa-60cf-446b-99c9-a4a7957f7000/nodes/ab33630f-bf76-46e4-bf72-a103bc6fcb91'
+
+DELETE /v2/projects/fe508bfa-60cf-446b-99c9-a4a7957f7000/nodes/ab33630f-bf76-46e4-bf72-a103bc6fcb91 HTTP/1.1
+
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 0
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}
+
diff --git a/docs/api/examples/controller_get_computes.txt b/docs/api/examples/controller_get_computes.txt
new file mode 100644
index 00000000..c2ea15e8
--- /dev/null
+++ b/docs/api/examples/controller_get_computes.txt
@@ -0,0 +1,24 @@
+curl -i -X GET 'http://localhost:3080/v2/computes'
+
+GET /v2/computes HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 186
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/computes
+
+[
+ {
+ "compute_id": "my_compute_id",
+ "connected": false,
+ "host": "example.com",
+ "port": 84,
+ "protocol": "http",
+ "user": "julien"
+ }
+]
diff --git a/docs/api/examples/controller_get_projects.txt b/docs/api/examples/controller_get_projects.txt
new file mode 100644
index 00000000..d0617670
--- /dev/null
+++ b/docs/api/examples/controller_get_projects.txt
@@ -0,0 +1,22 @@
+curl -i -X GET 'http://localhost:3080/v2/projects'
+
+GET /v2/projects HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 252
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects
+
+[
+ {
+ "name": "test",
+ "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-152/test_list_projects1",
+ "project_id": "00010203-0405-0607-0809-0a0b0c0d0e0f",
+ "temporary": false
+ }
+]
diff --git a/docs/api/examples/controller_get_projectsprojectidnodes.txt b/docs/api/examples/controller_get_projectsprojectidnodes.txt
new file mode 100644
index 00000000..cdc2a5b4
--- /dev/null
+++ b/docs/api/examples/controller_get_projectsprojectidnodes.txt
@@ -0,0 +1,28 @@
+curl -i -X GET 'http://localhost:3080/v2/projects/89b50c89-a26f-48b5-9948-dcc485949441/nodes'
+
+GET /v2/projects/89b50c89-a26f-48b5-9948-dcc485949441/nodes HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 361
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes
+
+[
+ {
+ "compute_id": "example.com",
+ "console": 2048,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "5f4ad652-2ffe-44dd-b4a3-0d48b36a25da",
+ "node_type": "vpcs",
+ "project_id": "89b50c89-a26f-48b5-9948-dcc485949441",
+ "properties": {
+ "startup_script": "echo test"
+ }
+ }
+]
diff --git a/docs/api/examples/controller_post_projectsprojectidlinkslinkidstartcapture.txt b/docs/api/examples/controller_post_projectsprojectidlinkslinkidstartcapture.txt
new file mode 100644
index 00000000..0da5fded
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidlinkslinkidstartcapture.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/ff11646d-2bcc-4167-afb6-9f1423a07e7c/links/3fbabcfa-a045-47de-96f4-b464679545ec/start_capture' -d '{}'
+
+POST /v2/projects/ff11646d-2bcc-4167-afb6-9f1423a07e7c/links/3fbabcfa-a045-47de-96f4-b464679545ec/start_capture HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 160
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/links/{link_id}/start_capture
+
+{
+ "capture_file_name": null,
+ "capture_file_path": null,
+ "capturing": false,
+ "link_id": "3fbabcfa-a045-47de-96f4-b464679545ec",
+ "nodes": []
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidlinkslinkidstopcapture.txt b/docs/api/examples/controller_post_projectsprojectidlinkslinkidstopcapture.txt
new file mode 100644
index 00000000..834acaac
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidlinkslinkidstopcapture.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/b80cf39c-f669-4e55-bedc-43d0f4b0a134/links/5e3e109b-c8b2-45b7-a8ae-89507cf5950a/stop_capture' -d '{}'
+
+POST /v2/projects/b80cf39c-f669-4e55-bedc-43d0f4b0a134/links/5e3e109b-c8b2-45b7-a8ae-89507cf5950a/stop_capture HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 160
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/links/{link_id}/stop_capture
+
+{
+ "capture_file_name": null,
+ "capture_file_path": null,
+ "capturing": false,
+ "link_id": "5e3e109b-c8b2-45b7-a8ae-89507cf5950a",
+ "nodes": []
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidnodes.txt b/docs/api/examples/controller_post_projectsprojectidnodes.txt
new file mode 100644
index 00000000..88da3867
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidnodes.txt
@@ -0,0 +1,33 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/7602518d-75f4-4a2a-85a6-ff851e3358d4/nodes' -d '{"compute_id": "example.com", "name": "test", "node_type": "vpcs", "properties": {"startup_script": "echo test"}}'
+
+POST /v2/projects/7602518d-75f4-4a2a-85a6-ff851e3358d4/nodes HTTP/1.1
+{
+ "compute_id": "example.com",
+ "name": "test",
+ "node_type": "vpcs",
+ "properties": {
+ "startup_script": "echo test"
+ }
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 309
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes
+
+{
+ "compute_id": "example.com",
+ "console": 2048,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "571ee68c-aa2f-476c-ad63-c900ba382390",
+ "node_type": "vpcs",
+ "project_id": "7602518d-75f4-4a2a-85a6-ff851e3358d4",
+ "properties": {
+ "startup_script": "echo test"
+ }
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidnodesnodeidreload.txt b/docs/api/examples/controller_post_projectsprojectidnodesnodeidreload.txt
new file mode 100644
index 00000000..bf0e76d8
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidnodesnodeidreload.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/54b7717b-a6c1-49c3-be0c-f74ef1eac9f6/nodes/8c3bd6f3-7241-4de0-92e6-093dc76dfba9/reload' -d '{}'
+
+POST /v2/projects/54b7717b-a6c1-49c3-be0c-f74ef1eac9f6/nodes/8c3bd6f3-7241-4de0-92e6-093dc76dfba9/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 266
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}/reload
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "8c3bd6f3-7241-4de0-92e6-093dc76dfba9",
+ "node_type": "vpcs",
+ "project_id": "54b7717b-a6c1-49c3-be0c-f74ef1eac9f6",
+ "properties": {}
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidnodesnodeidstart.txt b/docs/api/examples/controller_post_projectsprojectidnodesnodeidstart.txt
new file mode 100644
index 00000000..7b13e979
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidnodesnodeidstart.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/5a61b567-1cbb-4283-acd7-f9cbe4aa8eab/nodes/7f78cc45-579c-437c-a3b3-1129e7b5803b/start' -d '{}'
+
+POST /v2/projects/5a61b567-1cbb-4283-acd7-f9cbe4aa8eab/nodes/7f78cc45-579c-437c-a3b3-1129e7b5803b/start HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 266
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}/start
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "7f78cc45-579c-437c-a3b3-1129e7b5803b",
+ "node_type": "vpcs",
+ "project_id": "5a61b567-1cbb-4283-acd7-f9cbe4aa8eab",
+ "properties": {}
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidnodesnodeidstop.txt b/docs/api/examples/controller_post_projectsprojectidnodesnodeidstop.txt
new file mode 100644
index 00000000..af25129b
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidnodesnodeidstop.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/8e81df5a-5d97-4f7a-b2d9-a86a1cfc6b44/nodes/514d81b8-b05c-476a-b127-84881e527732/stop' -d '{}'
+
+POST /v2/projects/8e81df5a-5d97-4f7a-b2d9-a86a1cfc6b44/nodes/514d81b8-b05c-476a-b127-84881e527732/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 266
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}/stop
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "514d81b8-b05c-476a-b127-84881e527732",
+ "node_type": "vpcs",
+ "project_id": "8e81df5a-5d97-4f7a-b2d9-a86a1cfc6b44",
+ "properties": {}
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidnodesnodeidsuspend.txt b/docs/api/examples/controller_post_projectsprojectidnodesnodeidsuspend.txt
new file mode 100644
index 00000000..5564a2b9
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidnodesnodeidsuspend.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/1c60cc7c-b41f-487f-9953-5287041a7146/nodes/a1648be8-6817-491b-8e07-c839d888e94a/suspend' -d '{}'
+
+POST /v2/projects/1c60cc7c-b41f-487f-9953-5287041a7146/nodes/a1648be8-6817-491b-8e07-c839d888e94a/suspend HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 266
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}/suspend
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "a1648be8-6817-491b-8e07-c839d888e94a",
+ "node_type": "vpcs",
+ "project_id": "1c60cc7c-b41f-487f-9953-5287041a7146",
+ "properties": {}
+}
diff --git a/docs/api/examples/controller_put_projectsprojectidnodesnodeid.txt b/docs/api/examples/controller_put_projectsprojectidnodesnodeid.txt
new file mode 100644
index 00000000..073d49d2
--- /dev/null
+++ b/docs/api/examples/controller_put_projectsprojectidnodesnodeid.txt
@@ -0,0 +1,33 @@
+curl -i -X PUT 'http://localhost:3080/v2/projects/265f0fef-ac97-4c5a-b7a5-a3474d9fcfd1/nodes/ff8a4b59-a8f9-4a79-8a56-d2f8ca5e5598' -d '{"compute_id": "example.com", "name": "test", "node_type": "vpcs", "properties": {"startup_script": "echo test"}}'
+
+PUT /v2/projects/265f0fef-ac97-4c5a-b7a5-a3474d9fcfd1/nodes/ff8a4b59-a8f9-4a79-8a56-d2f8ca5e5598 HTTP/1.1
+{
+ "compute_id": "example.com",
+ "name": "test",
+ "node_type": "vpcs",
+ "properties": {
+ "startup_script": "echo test"
+ }
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 309
+CONTENT-TYPE: application/json
+DATE: Thu, 08 Jan 2015 16:09:15 GMT
+SERVER: Python/3.5 GNS3/2.0.0dev1
+X-ROUTE: /v2/projects/{project_id}/nodes/{node_id}
+
+{
+ "compute_id": "example.com",
+ "console": 2048,
+ "console_type": "telnet",
+ "name": "test",
+ "node_id": "ff8a4b59-a8f9-4a79-8a56-d2f8ca5e5598",
+ "node_type": "vpcs",
+ "project_id": "265f0fef-ac97-4c5a-b7a5-a3474d9fcfd1",
+ "properties": {
+ "startup_script": "echo test"
+ }
+}
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodes.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodes.rst
new file mode 100644
index 00000000..7e2e53b1
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodes.rst
@@ -0,0 +1,62 @@
+/v2/compute/projects/{project_id}/docker/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new Docker container
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | | string | Docker VM instance identifier |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeid.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeid.rst
new file mode 100644
index 00000000..c5f3971b
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeid.rst
@@ -0,0 +1,84 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+DELETE /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Docker container
+
+Parameters
+**********
+- **node_id**: ID for the container
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
+
+PUT /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Docker instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectiddockernodesnodeid.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..c610a68f
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a Docker container
+
+Parameters
+**********
+- **adapter_number**: Adapter where the nio should be added
+- **port_number**: Port on the adapter
+- **node_id**: ID of the container
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a Docker container
+
+Parameters
+**********
+- **adapter_number**: Adapter where the nio should be added
+- **port_number**: Port on the adapter
+- **node_id**: ID of the container
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..e5025f53
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,39 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a Docker VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to start a packet capture
+- **port_number**: Port on the adapter
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Capture started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Node not started
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | ✔ | string | Capture file name |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..8444860d
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,29 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a IOU VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to stop a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Capture stopped
+- **409**: VM not started
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectiddockernodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidreload.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidreload.rst
new file mode 100644
index 00000000..5ae9fdb9
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidreload.rst
@@ -0,0 +1,63 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Restart a Docker container
+
+Parameters
+**********
+- **node_id**: ID of the container
+- **project_id**: UUID of the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance restarted
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | | string | Docker VM instance identifier |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstart.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstart.rst
new file mode 100644
index 00000000..9d046d64
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstart.rst
@@ -0,0 +1,63 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Docker container
+
+Parameters
+**********
+- **node_id**: ID of the container
+- **project_id**: UUID of the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance started
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | | string | Docker VM instance identifier |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstop.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstop.rst
new file mode 100644
index 00000000..a319ff9e
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidstop.rst
@@ -0,0 +1,63 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Docker container
+
+Parameters
+**********
+- **node_id**: ID of the container
+- **project_id**: UUID of the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | | string | Docker VM instance identifier |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidsuspend.rst b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidsuspend.rst
new file mode 100644
index 00000000..3025c50b
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockernodesnodeidsuspend.rst
@@ -0,0 +1,63 @@
+/v2/compute/projects/{project_id}/docker/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Pause a Docker container
+
+Parameters
+**********
+- **node_id**: ID of the container
+- **project_id**: UUID of the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance paused
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | | ['integer', 'null'] | number of adapters |
+ aux | | ['integer', 'null'] | auxilary TCP port |
+ console | | ['integer', 'null'] | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc, http, https |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | | string | Docker VM instance identifier |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_http_path | | string | Path of the web interface |
+ console_http_port | | integer | Internal port in the container of the HTTP server |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc, http, https |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ node_id | ✔ | string | Docker container instance UUID |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+
+
diff --git a/docs/api/v2/compute/dynamips_vm/dynamipsnodes.rst b/docs/api/v2/compute/dynamips_vm/dynamipsnodes.rst
new file mode 100644
index 00000000..8a3fbbae
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/dynamipsnodes.rst
@@ -0,0 +1,13 @@
+/v2/compute/dynamips/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/dynamips/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of Dynamips VMS
+
+Response status codes
+**********************
+- **200**: List of Dynamips VM retrieved
+
diff --git a/docs/api/v2/compute/dynamips_vm/dynamipsnodespath.rst b/docs/api/v2/compute/dynamips_vm/dynamipsnodespath.rst
new file mode 100644
index 00000000..cd728c62
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/dynamipsnodespath.rst
@@ -0,0 +1,13 @@
+/v2/compute/dynamips/nodes/{path}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/dynamips/nodes/**{path}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload Dynamips image
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodes.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodes.rst
new file mode 100644
index 00000000..4d70aa64
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodes.rst
@@ -0,0 +1,125 @@
+/v2/compute/projects/{project_id}/dynamips/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new Dynamips VM instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ auto_delete_disks | | boolean | automatically delete nvram and disk files |
+ aux | | integer | auxiliary console TCP port |
+ chassis | | string | router chassis model |
+ clock_divisor | | integer | clock divisor |
+ console | | integer | console TCP port |
+ console_type | | enum | Possible values: telnet |
+ disk0 | | integer | disk0 size in MB |
+ disk1 | | integer | disk1 size in MB |
+ dynamips_id | | integer | ID to use with Dynamips |
+ exec_area | | integer | exec area value |
+ idlemax | | integer | idlemax value |
+ idlepc | | string | Idle-PC value |
+ idlesleep | | integer | idlesleep value |
+ image | ✔ | string | path to the IOS image |
+ image_md5sum | | ['string', 'null'] | checksum of the IOS image |
+ iomem | | integer | I/O memory percentage |
+ mac_addr | | string | base MAC address |
+ midplane | | enum | Possible values: std, vxr |
+ mmap | | boolean | MMAP feature |
+ name | ✔ | string | Dynamips VM instance name |
+ node_id | | | Node identifier |
+ npe | | enum | Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2 |
+ nvram | | integer | amount of NVRAM in KB |
+ platform | ✔ | string | platform |
+ power_supplies | | array | Power supplies status |
+ private_config | | string | path to the IOS private configuration file |
+ private_config_base64 | | string | private configuration base64 encoded |
+ private_config_content | | string | Content of IOS private configuration file |
+ ram | ✔ | integer | amount of RAM in MB |
+ sensors | | array | Temperature sensors |
+ slot0 | | | Network module slot 0 |
+ slot1 | | | Network module slot 1 |
+ slot2 | | | Network module slot 2 |
+ slot3 | | | Network module slot 3 |
+ slot4 | | | Network module slot 4 |
+ slot5 | | | Network module slot 5 |
+ slot6 | | | Network module slot 6 |
+ sparsemem | | boolean | sparse memory feature |
+ startup_config | | string | path to the IOS startup configuration file |
+ startup_config_base64 | | string | startup configuration base64 encoded |
+ startup_config_content | | string | Content of IOS startup configuration file |
+ system_id | | string | system ID |
+ wic0 | | | Network module WIC slot 0 |
+ wic1 | | | Network module WIC slot 0 |
+ wic2 | | | Network module WIC slot 0 |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ auto_delete_disks | | boolean | automatically delete nvram and disk files |
+ aux | | ['integer', 'null'] | auxiliary console TCP port |
+ chassis | | string | router chassis model |
+ clock_divisor | | integer | clock divisor |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ disk0 | | integer | disk0 size in MB |
+ disk1 | | integer | disk1 size in MB |
+ dynamips_id | ✔ | integer | ID to use with Dynamips |
+ exec_area | | integer | exec area value |
+ idlemax | | integer | idlemax value |
+ idlepc | | string | Idle-PC value |
+ idlesleep | | integer | idlesleep value |
+ image | | string | path to the IOS image |
+ image_md5sum | | ['string', 'null'] | checksum of the IOS image |
+ iomem | | integer | I/O memory percentage |
+ mac_addr | | string | base MAC address |
+ midplane | | enum | Possible values: std, vxr |
+ mmap | | boolean | MMAP feature |
+ name | ✔ | string | Dynamips VM instance name |
+ node_id | ✔ | string | Node instance UUID |
+ npe | | enum | Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2 |
+ nvram | | integer | amount of NVRAM in KB |
+ platform | | string | platform |
+ power_supplies | | array | Power supplies status |
+ private_config | | string | path to the IOS private configuration file |
+ private_config_base64 | | string | private configuration base64 encoded |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | amount of RAM in MB |
+ sensors | | array | Temperature sensors |
+ slot0 | | | Network module slot 0 |
+ slot1 | | | Network module slot 1 |
+ slot2 | | | Network module slot 2 |
+ slot3 | | | Network module slot 3 |
+ slot4 | | | Network module slot 4 |
+ slot5 | | | Network module slot 5 |
+ slot6 | | | Network module slot 6 |
+ sparsemem | | boolean | sparse memory feature |
+ startup_config | | string | path to the IOS startup configuration file |
+ startup_config_base64 | | string | startup configuration base64 encoded |
+ system_id | | string | system ID |
+ vm_directory | | string | |
+ wic0 | | | Network module WIC slot 0 |
+ wic1 | | | Network module WIC slot 0 |
+ wic2 | | | Network module WIC slot 0 |
+
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeid.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeid.rst
new file mode 100644
index 00000000..5a5d48f4
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeid.rst
@@ -0,0 +1,208 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ auto_delete_disks | | boolean | automatically delete nvram and disk files |
+ aux | | ['integer', 'null'] | auxiliary console TCP port |
+ chassis | | string | router chassis model |
+ clock_divisor | | integer | clock divisor |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ disk0 | | integer | disk0 size in MB |
+ disk1 | | integer | disk1 size in MB |
+ dynamips_id | ✔ | integer | ID to use with Dynamips |
+ exec_area | | integer | exec area value |
+ idlemax | | integer | idlemax value |
+ idlepc | | string | Idle-PC value |
+ idlesleep | | integer | idlesleep value |
+ image | | string | path to the IOS image |
+ image_md5sum | | ['string', 'null'] | checksum of the IOS image |
+ iomem | | integer | I/O memory percentage |
+ mac_addr | | string | base MAC address |
+ midplane | | enum | Possible values: std, vxr |
+ mmap | | boolean | MMAP feature |
+ name | ✔ | string | Dynamips VM instance name |
+ node_id | ✔ | string | Node instance UUID |
+ npe | | enum | Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2 |
+ nvram | | integer | amount of NVRAM in KB |
+ platform | | string | platform |
+ power_supplies | | array | Power supplies status |
+ private_config | | string | path to the IOS private configuration file |
+ private_config_base64 | | string | private configuration base64 encoded |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | amount of RAM in MB |
+ sensors | | array | Temperature sensors |
+ slot0 | | | Network module slot 0 |
+ slot1 | | | Network module slot 1 |
+ slot2 | | | Network module slot 2 |
+ slot3 | | | Network module slot 3 |
+ slot4 | | | Network module slot 4 |
+ slot5 | | | Network module slot 5 |
+ slot6 | | | Network module slot 6 |
+ sparsemem | | boolean | sparse memory feature |
+ startup_config | | string | path to the IOS startup configuration file |
+ startup_config_base64 | | string | startup configuration base64 encoded |
+ system_id | | string | system ID |
+ vm_directory | | string | |
+ wic0 | | | Network module WIC slot 0 |
+ wic1 | | | Network module WIC slot 0 |
+ wic2 | | | Network module WIC slot 0 |
+
+
+
+PUT /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ auto_delete_disks | | boolean | automatically delete nvram and disk files |
+ aux | | integer | auxiliary console TCP port |
+ chassis | | string | router chassis model |
+ clock_divisor | | integer | clock divisor |
+ console | | integer | console TCP port |
+ console_type | | enum | Possible values: telnet |
+ disk0 | | integer | disk0 size in MB |
+ disk1 | | integer | disk1 size in MB |
+ exec_area | | integer | exec area value |
+ idlemax | | integer | idlemax value |
+ idlepc | | string | Idle-PC value |
+ idlesleep | | integer | idlesleep value |
+ image | | string | path to the IOS image |
+ image_md5sum | | ['string', 'null'] | checksum of the IOS image |
+ iomem | | integer | I/O memory percentage |
+ mac_addr | | string | base MAC address |
+ midplane | | enum | Possible values: std, vxr |
+ mmap | | boolean | MMAP feature |
+ name | | string | Dynamips VM instance name |
+ npe | | enum | Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2 |
+ nvram | | integer | amount of NVRAM in KB |
+ platform | | string | platform |
+ power_supplies | | array | Power supplies status |
+ private_config_base64 | | string | private configuration base64 encoded |
+ private_config_content | | string | Content of IOS private configuration file |
+ ram | | integer | amount of RAM in MB |
+ sensors | | array | Temperature sensors |
+ slot0 | | | Network module slot 0 |
+ slot1 | | | Network module slot 1 |
+ slot2 | | | Network module slot 2 |
+ slot3 | | | Network module slot 3 |
+ slot4 | | | Network module slot 4 |
+ slot5 | | | Network module slot 5 |
+ slot6 | | | Network module slot 6 |
+ sparsemem | | boolean | sparse memory feature |
+ startup_config_base64 | | string | startup configuration base64 encoded |
+ startup_config_content | | string | Content of IOS startup configuration file |
+ system_id | | string | system ID |
+ wic0 | | | Network module WIC slot 0 |
+ wic1 | | | Network module WIC slot 0 |
+ wic2 | | | Network module WIC slot 0 |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ auto_delete_disks | | boolean | automatically delete nvram and disk files |
+ aux | | ['integer', 'null'] | auxiliary console TCP port |
+ chassis | | string | router chassis model |
+ clock_divisor | | integer | clock divisor |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ disk0 | | integer | disk0 size in MB |
+ disk1 | | integer | disk1 size in MB |
+ dynamips_id | ✔ | integer | ID to use with Dynamips |
+ exec_area | | integer | exec area value |
+ idlemax | | integer | idlemax value |
+ idlepc | | string | Idle-PC value |
+ idlesleep | | integer | idlesleep value |
+ image | | string | path to the IOS image |
+ image_md5sum | | ['string', 'null'] | checksum of the IOS image |
+ iomem | | integer | I/O memory percentage |
+ mac_addr | | string | base MAC address |
+ midplane | | enum | Possible values: std, vxr |
+ mmap | | boolean | MMAP feature |
+ name | ✔ | string | Dynamips VM instance name |
+ node_id | ✔ | string | Node instance UUID |
+ npe | | enum | Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2 |
+ nvram | | integer | amount of NVRAM in KB |
+ platform | | string | platform |
+ power_supplies | | array | Power supplies status |
+ private_config | | string | path to the IOS private configuration file |
+ private_config_base64 | | string | private configuration base64 encoded |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | amount of RAM in MB |
+ sensors | | array | Temperature sensors |
+ slot0 | | | Network module slot 0 |
+ slot1 | | | Network module slot 1 |
+ slot2 | | | Network module slot 2 |
+ slot3 | | | Network module slot 3 |
+ slot4 | | | Network module slot 4 |
+ slot5 | | | Network module slot 5 |
+ slot6 | | | Network module slot 6 |
+ sparsemem | | boolean | sparse memory feature |
+ startup_config | | string | path to the IOS startup configuration file |
+ startup_config_base64 | | string | startup configuration base64 encoded |
+ system_id | | string | system ID |
+ vm_directory | | string | |
+ wic0 | | | Network module WIC slot 0 |
+ wic1 | | | Network module WIC slot 0 |
+ wic2 | | | Network module WIC slot 0 |
+
+
+
+DELETE /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..4d287ad5
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,40 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a Dynamips VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter where the nio should be added
+- **port_number**: Port on the adapter
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+
+DELETE /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a Dynamips VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter from where the nio should be removed
+- **port_number**: Port on the adapter
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..09a02173
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a Dynamips VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to start a packet capture
+- **port_number**: Port on the adapter
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Capture started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | ✔ | string | Capture file name |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..824524ab
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a Dynamips VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to stop a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Capture stopped
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidautoidlepc.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidautoidlepc.rst
new file mode 100644
index 00000000..244130d1
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidautoidlepc.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/auto_idlepc
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/auto_idlepc
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the idlepc proposals
+
+Response status codes
+**********************
+- **200**: Best Idle-pc value found
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigs.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigs.rst
new file mode 100644
index 00000000..1c92fad2
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigs.rst
@@ -0,0 +1,25 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/configs
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/configs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the startup and private configs content
+
+Response status codes
+**********************
+- **200**: Configs retrieved
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ private_config_content | | ['string', 'null'] | Content of the private configuration file |
+ startup_config_content | | ['string', 'null'] | Content of the startup configuration file |
+
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigssave.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigssave.rst
new file mode 100644
index 00000000..f0d0f9e2
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidconfigssave.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/configs/save
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/configs/save
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Save the startup and private configs content
+
+Response status codes
+**********************
+- **200**: Configs saved
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeididlepcproposals.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeididlepcproposals.rst
new file mode 100644
index 00000000..784ed573
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeididlepcproposals.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/idlepc_proposals
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/idlepc_proposals
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the idlepc proposals
+
+Response status codes
+**********************
+- **200**: Idle-PCs retrieved
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidreload.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidreload.rst
new file mode 100644
index 00000000..ba00c984
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidreload.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidresume.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidresume.rst
new file mode 100644
index 00000000..f49cb3ec
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidresume.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance resumed
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstart.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstart.rst
new file mode 100644
index 00000000..d4b58920
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstart.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance started
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstop.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstop.rst
new file mode 100644
index 00000000..079cb7d1
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidstop.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidsuspend.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidsuspend.rst
new file mode 100644
index 00000000..4c14bf1a
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsnodesnodeidsuspend.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a Dynamips VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance suspended
+
diff --git a/docs/api/v2/compute/iou/iounodes.rst b/docs/api/v2/compute/iou/iounodes.rst
new file mode 100644
index 00000000..0720e180
--- /dev/null
+++ b/docs/api/v2/compute/iou/iounodes.rst
@@ -0,0 +1,19 @@
+/v2/compute/iou/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/iou/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of IOU VMS
+
+Response status codes
+**********************
+- **200**: List of IOU VM retrieved
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_iounodes.txt
+
diff --git a/docs/api/v2/compute/iou/iounodespath.rst b/docs/api/v2/compute/iou/iounodespath.rst
new file mode 100644
index 00000000..ec587bb6
--- /dev/null
+++ b/docs/api/v2/compute/iou/iounodespath.rst
@@ -0,0 +1,13 @@
+/v2/compute/iou/nodes/{path}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/iou/nodes/**{path}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload IOU image.
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodes.rst b/docs/api/v2/compute/iou/projectsprojectidiounodes.rst
new file mode 100644
index 00000000..c7fc7720
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodes.rst
@@ -0,0 +1,74 @@
+/v2/compute/projects/{project_id}/iou/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new IOU instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ console | | ['integer', 'null'] | console TCP port |
+ ethernet_adapters | | integer | How many ethernet adapters are connected to the IOU |
+ iourc_content | | ['string', 'null'] | Content of the iourc file. Ignored if Null |
+ l1_keepalives | | ['boolean', 'null'] | Always up ethernet interface |
+ md5sum | | ['string', 'null'] | Checksum of iou binary |
+ name | ✔ | string | IOU VM name |
+ node_id | | | IOU VM identifier |
+ nvram | | ['integer', 'null'] | Allocated NVRAM KB |
+ path | ✔ | string | Path of iou binary |
+ private_config | | ['string', 'null'] | Path to the private-config of IOU |
+ private_config_content | | ['string', 'null'] | Private-config of IOU |
+ ram | | ['integer', 'null'] | Allocated RAM MB |
+ serial_adapters | | integer | How many serial adapters are connected to the IOU |
+ startup_config | | ['string', 'null'] | Path to the startup-config of IOU |
+ startup_config_content | | ['string', 'null'] | Startup-config of IOU |
+ use_default_iou_values | | ['boolean', 'null'] | Use default IOU values |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ ethernet_adapters | ✔ | integer | How many ethernet adapters are connected to the IOU |
+ iourc_path | | ['string', 'null'] | Path of the iourc file used by remote servers |
+ l1_keepalives | ✔ | boolean | Always up ethernet interface |
+ md5sum | ✔ | ['string', 'null'] | Checksum of iou binary |
+ name | ✔ | string | IOU VM name |
+ node_id | ✔ | string | IOU VM UUID |
+ nvram | ✔ | integer | Allocated NVRAM KB |
+ path | ✔ | string | Path of iou binary |
+ private_config | ✔ | ['string', 'null'] | Path of the private-config content relative to project directory |
+ project_id | ✔ | string | Project UUID |
+ ram | ✔ | integer | Allocated RAM MB |
+ serial_adapters | ✔ | integer | How many serial adapters are connected to the IOU |
+ startup_config | ✔ | ['string', 'null'] | Path of the startup-config content relative to project directory |
+ use_default_iou_values | ✔ | ['boolean', 'null'] | Use default IOU values |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodes.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeid.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeid.rst
new file mode 100644
index 00000000..8391a05f
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeid.rst
@@ -0,0 +1,142 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ ethernet_adapters | ✔ | integer | How many ethernet adapters are connected to the IOU |
+ iourc_path | | ['string', 'null'] | Path of the iourc file used by remote servers |
+ l1_keepalives | ✔ | boolean | Always up ethernet interface |
+ md5sum | ✔ | ['string', 'null'] | Checksum of iou binary |
+ name | ✔ | string | IOU VM name |
+ node_id | ✔ | string | IOU VM UUID |
+ nvram | ✔ | integer | Allocated NVRAM KB |
+ path | ✔ | string | Path of iou binary |
+ private_config | ✔ | ['string', 'null'] | Path of the private-config content relative to project directory |
+ project_id | ✔ | string | Project UUID |
+ ram | ✔ | integer | Allocated RAM MB |
+ serial_adapters | ✔ | integer | How many serial adapters are connected to the IOU |
+ startup_config | ✔ | ['string', 'null'] | Path of the startup-config content relative to project directory |
+ use_default_iou_values | ✔ | ['boolean', 'null'] | Use default IOU values |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidiounodesnodeid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ console | | ['integer', 'null'] | console TCP port |
+ ethernet_adapters | | ['integer', 'null'] | How many ethernet adapters are connected to the IOU |
+ iourc_content | | ['string', 'null'] | Content of the iourc file. Ignored if Null |
+ l1_keepalives | | ['boolean', 'null'] | Always up ethernet interface |
+ md5sum | | ['string', 'null'] | Checksum of iou binary |
+ name | | ['string', 'null'] | IOU VM name |
+ nvram | | ['integer', 'null'] | Allocated NVRAM KB |
+ path | | ['string', 'null'] | Path of iou binary |
+ private_config_content | | ['string', 'null'] | Private-config of IOU |
+ ram | | ['integer', 'null'] | Allocated RAM MB |
+ serial_adapters | | ['integer', 'null'] | How many serial adapters are connected to the IOU |
+ startup_config_content | | ['string', 'null'] | Startup-config of IOU |
+ use_default_iou_values | | ['boolean', 'null'] | Use default IOU values |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ ethernet_adapters | ✔ | integer | How many ethernet adapters are connected to the IOU |
+ iourc_path | | ['string', 'null'] | Path of the iourc file used by remote servers |
+ l1_keepalives | ✔ | boolean | Always up ethernet interface |
+ md5sum | ✔ | ['string', 'null'] | Checksum of iou binary |
+ name | ✔ | string | IOU VM name |
+ node_id | ✔ | string | IOU VM UUID |
+ nvram | ✔ | integer | Allocated NVRAM KB |
+ path | ✔ | string | Path of iou binary |
+ private_config | ✔ | ['string', 'null'] | Path of the private-config content relative to project directory |
+ project_id | ✔ | string | Project UUID |
+ ram | ✔ | integer | Allocated RAM MB |
+ serial_adapters | ✔ | integer | How many serial adapters are connected to the IOU |
+ startup_config | ✔ | ['string', 'null'] | Path of the startup-config content relative to project directory |
+ use_default_iou_values | ✔ | ['boolean', 'null'] | Use default IOU values |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidiounodesnodeid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidiounodesnodeid.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..46c0b46f
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a IOU instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port where the nio should be added
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a IOU instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port from where the nio should be removed
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..ea223b51
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,39 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a IOU VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to start a packet capture
+- **port_number**: Port on the adapter
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Capture started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: VM not started
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | ✔ | string | Capture file name |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstartcapture.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..9bbf4ce0
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,29 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a IOU VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to stop a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Capture stopped
+- **409**: VM not started
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidadaptersadapternumberdportsportnumberdstopcapture.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigs.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigs.rst
new file mode 100644
index 00000000..0c299468
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigs.rst
@@ -0,0 +1,31 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/configs
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/configs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the startup and private configs content
+
+Response status codes
+**********************
+- **200**: Configs retrieved
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ private_config_content | | ['string', 'null'] | Content of the private configuration file |
+ startup_config_content | | ['string', 'null'] | Content of the startup configuration file |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidiounodesnodeidconfigs.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigssave.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigssave.rst
new file mode 100644
index 00000000..60378bd6
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidconfigssave.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/configs/save
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/configs/save
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Save the startup and private configs content
+
+Response status codes
+**********************
+- **200**: Configs saved
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidreload.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidreload.rst
new file mode 100644
index 00000000..ae5daca6
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidreload.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstart.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstart.rst
new file mode 100644
index 00000000..1f4c949a
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstart.rst
@@ -0,0 +1,60 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ iourc_content | | ['string', 'null'] | Content of the iourc file. Ignored if Null |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ ethernet_adapters | ✔ | integer | How many ethernet adapters are connected to the IOU |
+ iourc_path | | ['string', 'null'] | Path of the iourc file used by remote servers |
+ l1_keepalives | ✔ | boolean | Always up ethernet interface |
+ md5sum | ✔ | ['string', 'null'] | Checksum of iou binary |
+ name | ✔ | string | IOU VM name |
+ node_id | ✔ | string | IOU VM UUID |
+ nvram | ✔ | integer | Allocated NVRAM KB |
+ path | ✔ | string | Path of iou binary |
+ private_config | ✔ | ['string', 'null'] | Path of the private-config content relative to project directory |
+ project_id | ✔ | string | Project UUID |
+ ram | ✔ | integer | Allocated RAM MB |
+ serial_adapters | ✔ | integer | How many serial adapters are connected to the IOU |
+ startup_config | ✔ | ['string', 'null'] | Path of the startup-config content relative to project directory |
+ use_default_iou_values | ✔ | ['boolean', 'null'] | Use default IOU values |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidstart.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstop.rst b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstop.rst
new file mode 100644
index 00000000..dc14c40a
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiounodesnodeidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/iou/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a IOU instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiounodesnodeidstop.txt
+
diff --git a/docs/api/v2/compute/project/projectsprojectidstreampath.rst b/docs/api/v2/compute/project/projectsprojectidstreampath.rst
new file mode 100644
index 00000000..f13eea91
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidstreampath.rst
@@ -0,0 +1,19 @@
+/v2/compute/projects/{project_id}/stream/{path:.+}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/stream/**{path:.+}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stream a file from a project
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Return the file
+- **403**: Permission denied
+- **404**: The file doesn't exist
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodes.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodes.rst
new file mode 100644
index 00000000..3980df2c
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodes.rst
@@ -0,0 +1,119 @@
+/v2/compute/projects/{project_id}/qemu/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new Qemu VM instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | ['boolean', 'null'] | ACPI shutdown support |
+ adapter_type | | ['string', 'null'] | QEMU adapter type |
+ adapters | | ['integer', 'null'] | number of adapters |
+ boot_priority | | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | | string | QEMU cdrom image path |
+ cdrom_image_md5sum | | ['string', 'null'] | QEMU cdrom image checksum |
+ console | | ['integer', 'null'] | console TCP port |
+ console_type | | enum | Possible values: telnet, vnc |
+ cpu_throttling | | ['integer', 'null'] | Percentage of CPU allowed for QEMU |
+ cpus | | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | | string | QEMU hda interface |
+ hdb_disk_image | | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | | string | QEMU hdb interface |
+ hdc_disk_image | | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | | string | QEMU hdc interface |
+ hdd_disk_image | | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | | string | QEMU hdd interface |
+ initrd | | string | QEMU initrd path |
+ initrd_md5sum | | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | | ['string', 'null'] | QEMU kernel command line |
+ kernel_image | | string | QEMU kernel image path |
+ kernel_image_md5sum | | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | | ['boolean', 'null'] | Use QEMU legagy networking commands (-net syntax) |
+ linked_clone | | boolean | either the VM is a linked clone or not |
+ mac_address | | ['string', 'null'] | QEMU MAC address |
+ name | ✔ | string | QEMU VM instance name |
+ node_id | | | QEMU VM identifier |
+ options | | ['string', 'null'] | Additional QEMU options |
+ platform | | enum | Possible values: 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, null |
+ process_priority | | enum | Possible values: realtime, very high, high, normal, low, very low, null |
+ qemu_path | | ['string', 'null'] | Path to QEMU |
+ ram | | ['integer', 'null'] | amount of RAM in MB |
+ usage | | string | How to use the qemu VM |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | ✔ | boolean | ACPI shutdown support |
+ adapter_type | ✔ | string | QEMU adapter type |
+ adapters | ✔ | integer | number of adapters |
+ boot_priority | ✔ | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | ✔ | string | QEMU cdrom image path |
+ cdrom_image_md5sum | ✔ | ['string', 'null'] | QEMU cdrom image checksum |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ cpu_throttling | ✔ | integer | Percentage of CPU allowed for QEMU |
+ cpus | ✔ | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | ✔ | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | ✔ | string | QEMU hda interface |
+ hdb_disk_image | ✔ | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | ✔ | string | QEMU hdb interface |
+ hdc_disk_image | ✔ | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | ✔ | string | QEMU hdc interface |
+ hdd_disk_image | ✔ | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | ✔ | string | QEMU hdd interface |
+ initrd | ✔ | string | QEMU initrd path |
+ initrd_md5sum | ✔ | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | ✔ | string | QEMU kernel command line |
+ kernel_image | ✔ | string | QEMU kernel image path |
+ kernel_image_md5sum | ✔ | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | ✔ | boolean | Use QEMU legagy networking commands (-net syntax) |
+ mac_address | ✔ | string | QEMU MAC address |
+ name | ✔ | string | QEMU VM instance name |
+ node_id | ✔ | string | QEMU VM uuid |
+ options | ✔ | string | Additional QEMU options |
+ platform | ✔ | enum | Possible values: 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 |
+ process_priority | ✔ | enum | Possible values: realtime, very high, high, normal, low, very low |
+ project_id | ✔ | string | Project uuid |
+ qemu_path | ✔ | string | path to QEMU |
+ ram | ✔ | integer | amount of RAM in MB |
+ usage | ✔ | string | How to use the qemu VM |
+ vm_directory | ✔ | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodes.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeid.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeid.rst
new file mode 100644
index 00000000..1e12ac06
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeid.rst
@@ -0,0 +1,211 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | ✔ | boolean | ACPI shutdown support |
+ adapter_type | ✔ | string | QEMU adapter type |
+ adapters | ✔ | integer | number of adapters |
+ boot_priority | ✔ | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | ✔ | string | QEMU cdrom image path |
+ cdrom_image_md5sum | ✔ | ['string', 'null'] | QEMU cdrom image checksum |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ cpu_throttling | ✔ | integer | Percentage of CPU allowed for QEMU |
+ cpus | ✔ | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | ✔ | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | ✔ | string | QEMU hda interface |
+ hdb_disk_image | ✔ | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | ✔ | string | QEMU hdb interface |
+ hdc_disk_image | ✔ | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | ✔ | string | QEMU hdc interface |
+ hdd_disk_image | ✔ | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | ✔ | string | QEMU hdd interface |
+ initrd | ✔ | string | QEMU initrd path |
+ initrd_md5sum | ✔ | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | ✔ | string | QEMU kernel command line |
+ kernel_image | ✔ | string | QEMU kernel image path |
+ kernel_image_md5sum | ✔ | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | ✔ | boolean | Use QEMU legagy networking commands (-net syntax) |
+ mac_address | ✔ | string | QEMU MAC address |
+ name | ✔ | string | QEMU VM instance name |
+ node_id | ✔ | string | QEMU VM uuid |
+ options | ✔ | string | Additional QEMU options |
+ platform | ✔ | enum | Possible values: 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 |
+ process_priority | ✔ | enum | Possible values: realtime, very high, high, normal, low, very low |
+ project_id | ✔ | string | Project uuid |
+ qemu_path | ✔ | string | path to QEMU |
+ ram | ✔ | integer | amount of RAM in MB |
+ usage | ✔ | string | How to use the qemu VM |
+ vm_directory | ✔ | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidqemunodesnodeid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | ['boolean', 'null'] | ACPI shutdown support |
+ adapter_type | | ['string', 'null'] | QEMU adapter type |
+ adapters | | ['integer', 'null'] | number of adapters |
+ boot_priority | | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | | string | QEMU cdrom image path |
+ cdrom_image_md5sum | | ['string', 'null'] | QEMU cdrom image checksum |
+ console | | ['integer', 'null'] | console TCP port |
+ console_type | | enum | Possible values: telnet, vnc |
+ cpu_throttling | | ['integer', 'null'] | Percentage of CPU allowed for QEMU |
+ cpus | | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | | string | QEMU hda interface |
+ hdb_disk_image | | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | | string | QEMU hdb interface |
+ hdc_disk_image | | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | | string | QEMU hdc interface |
+ hdd_disk_image | | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | | string | QEMU hdd interface |
+ initrd | | string | QEMU initrd path |
+ initrd_md5sum | | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | | ['string', 'null'] | QEMU kernel command line |
+ kernel_image | | string | QEMU kernel image path |
+ kernel_image_md5sum | | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | | ['boolean', 'null'] | Use QEMU legagy networking commands (-net syntax) |
+ mac_address | | ['string', 'null'] | QEMU MAC address |
+ name | | ['string', 'null'] | QEMU VM instance name |
+ options | | ['string', 'null'] | Additional QEMU options |
+ platform | | enum | Possible values: 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, null |
+ process_priority | | enum | Possible values: realtime, very high, high, normal, low, very low, null |
+ qemu_path | | ['string', 'null'] | Path to QEMU |
+ ram | | ['integer', 'null'] | amount of RAM in MB |
+ usage | | string | How to use the qemu VM |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | ✔ | boolean | ACPI shutdown support |
+ adapter_type | ✔ | string | QEMU adapter type |
+ adapters | ✔ | integer | number of adapters |
+ boot_priority | ✔ | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | ✔ | string | QEMU cdrom image path |
+ cdrom_image_md5sum | ✔ | ['string', 'null'] | QEMU cdrom image checksum |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ cpu_throttling | ✔ | integer | Percentage of CPU allowed for QEMU |
+ cpus | ✔ | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | ✔ | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | ✔ | string | QEMU hda interface |
+ hdb_disk_image | ✔ | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | ✔ | string | QEMU hdb interface |
+ hdc_disk_image | ✔ | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | ✔ | string | QEMU hdc interface |
+ hdd_disk_image | ✔ | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | ✔ | string | QEMU hdd interface |
+ initrd | ✔ | string | QEMU initrd path |
+ initrd_md5sum | ✔ | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | ✔ | string | QEMU kernel command line |
+ kernel_image | ✔ | string | QEMU kernel image path |
+ kernel_image_md5sum | ✔ | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | ✔ | boolean | Use QEMU legagy networking commands (-net syntax) |
+ mac_address | ✔ | string | QEMU MAC address |
+ name | ✔ | string | QEMU VM instance name |
+ node_id | ✔ | string | QEMU VM uuid |
+ options | ✔ | string | Additional QEMU options |
+ platform | ✔ | enum | Possible values: 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 |
+ process_priority | ✔ | enum | Possible values: realtime, very high, high, normal, low, very low |
+ project_id | ✔ | string | Project uuid |
+ qemu_path | ✔ | string | path to QEMU |
+ ram | ✔ | integer | amount of RAM in MB |
+ usage | ✔ | string | How to use the qemu VM |
+ vm_directory | ✔ | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidqemunodesnodeid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidqemunodesnodeid.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..2ca19eb0
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a Qemu VM instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a Qemu VM instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidqemunodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidreload.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidreload.rst
new file mode 100644
index 00000000..a2f76591
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidreload.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidresume.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidresume.rst
new file mode 100644
index 00000000..64ac995b
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidresume.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance resumed
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidresume.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstart.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstart.rst
new file mode 100644
index 00000000..3b22e6e1
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstart.rst
@@ -0,0 +1,74 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | ✔ | boolean | ACPI shutdown support |
+ adapter_type | ✔ | string | QEMU adapter type |
+ adapters | ✔ | integer | number of adapters |
+ boot_priority | ✔ | enum | Possible values: c, d, n, cn, cd |
+ cdrom_image | ✔ | string | QEMU cdrom image path |
+ cdrom_image_md5sum | ✔ | ['string', 'null'] | QEMU cdrom image checksum |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ cpu_throttling | ✔ | integer | Percentage of CPU allowed for QEMU |
+ cpus | ✔ | ['integer', 'null'] | number of vCPUs |
+ hda_disk_image | ✔ | string | QEMU hda disk image path |
+ hda_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hda disk image checksum |
+ hda_disk_interface | ✔ | string | QEMU hda interface |
+ hdb_disk_image | ✔ | string | QEMU hdb disk image path |
+ hdb_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdb disk image checksum |
+ hdb_disk_interface | ✔ | string | QEMU hdb interface |
+ hdc_disk_image | ✔ | string | QEMU hdc disk image path |
+ hdc_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdc disk image checksum |
+ hdc_disk_interface | ✔ | string | QEMU hdc interface |
+ hdd_disk_image | ✔ | string | QEMU hdd disk image path |
+ hdd_disk_image_md5sum | ✔ | ['string', 'null'] | QEMU hdd disk image checksum |
+ hdd_disk_interface | ✔ | string | QEMU hdd interface |
+ initrd | ✔ | string | QEMU initrd path |
+ initrd_md5sum | ✔ | ['string', 'null'] | QEMU initrd path |
+ kernel_command_line | ✔ | string | QEMU kernel command line |
+ kernel_image | ✔ | string | QEMU kernel image path |
+ kernel_image_md5sum | ✔ | ['string', 'null'] | QEMU kernel image checksum |
+ legacy_networking | ✔ | boolean | Use QEMU legagy networking commands (-net syntax) |
+ mac_address | ✔ | string | QEMU MAC address |
+ name | ✔ | string | QEMU VM instance name |
+ node_id | ✔ | string | QEMU VM uuid |
+ options | ✔ | string | Additional QEMU options |
+ platform | ✔ | enum | Possible values: 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 |
+ process_priority | ✔ | enum | Possible values: realtime, very high, high, normal, low, very low |
+ project_id | ✔ | string | Project uuid |
+ qemu_path | ✔ | string | path to QEMU |
+ ram | ✔ | integer | amount of RAM in MB |
+ usage | ✔ | string | How to use the qemu VM |
+ vm_directory | ✔ | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidstart.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstop.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstop.rst
new file mode 100644
index 00000000..2a8089c2
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Qemu VM instance
+
+Parameters
+**********
+- **vm_node**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidstop.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidsuspend.rst b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidsuspend.rst
new file mode 100644
index 00000000..5c58bad8
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemunodesnodeidsuspend.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a Qemu VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance suspended
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemunodesnodeidsuspend.txt
+
diff --git a/docs/api/v2/compute/qemu/qemunodes.rst b/docs/api/v2/compute/qemu/qemunodes.rst
new file mode 100644
index 00000000..2294f456
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemunodes.rst
@@ -0,0 +1,13 @@
+/v2/compute/qemu/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/qemu/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of Qemu images
+
+Response status codes
+**********************
+- **200**: List of Qemu images retrieved
+
diff --git a/docs/api/v2/compute/qemu/qemunodespath.rst b/docs/api/v2/compute/qemu/qemunodespath.rst
new file mode 100644
index 00000000..5f54423e
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemunodespath.rst
@@ -0,0 +1,13 @@
+/v2/compute/qemu/nodes/{path:.+}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/qemu/nodes/**{path:.+}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload Qemu image.
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodes.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodes.rst
new file mode 100644
index 00000000..9c5e5059
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodes.rst
@@ -0,0 +1,66 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new VirtualBox VM instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VirtualBox adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ linked_clone | ✔ | boolean | either the VM is a linked clone or not |
+ name | ✔ | string | VirtualBox VM instance name |
+ node_id | | | VirtualBox VM instance identifier |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vmname | ✔ | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VirtualBox adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VirtualBox VM instance name |
+ node_id | ✔ | string | VirtualBox VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vm_directory | ✔ | ['string', 'null'] | |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodes.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeid.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeid.rst
new file mode 100644
index 00000000..7ba5c008
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeid.rst
@@ -0,0 +1,125 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VirtualBox adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VirtualBox VM instance name |
+ node_id | ✔ | string | VirtualBox VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vm_directory | ✔ | ['string', 'null'] | |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidvirtualboxnodesnodeid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VirtualBox adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | | string | VirtualBox VM instance name |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VirtualBox adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VirtualBox VM instance name |
+ node_id | ✔ | string | VirtualBox VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vm_directory | ✔ | ['string', 'null'] | |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidvirtualboxnodesnodeid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..8f89e19d
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a VirtualBox VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter where the nio should be added
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a VirtualBox VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter from where the nio should be removed
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..3341b722
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a VirtualBox VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to start a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Capture started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | ✔ | string | Capture file name |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..b288ceaa
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a VirtualBox VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to stop a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Capture stopped
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidreload.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidreload.rst
new file mode 100644
index 00000000..c0239245
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidreload.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidresume.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidresume.rst
new file mode 100644
index 00000000..724aba37
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidresume.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance resumed
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidresume.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstart.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstart.rst
new file mode 100644
index 00000000..81cc62e0
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstart.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance started
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidstart.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstop.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstop.rst
new file mode 100644
index 00000000..15b80a6f
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidstop.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidsuspend.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidsuspend.rst
new file mode 100644
index 00000000..93a5b026
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxnodesnodeidsuspend.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a VirtualBox VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance suspended
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxnodesnodeidsuspend.txt
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodes.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodes.rst
new file mode 100644
index 00000000..b9a468e8
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodes.rst
@@ -0,0 +1,60 @@
+/v2/compute/projects/{project_id}/vmware/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new VMware VM instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VMware adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ linked_clone | ✔ | boolean | either the VM is a linked clone or not |
+ name | ✔ | string | VMware VM instance name |
+ node_id | | string | VMware VM instance identifier |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vmx_path | ✔ | string | path to the vmx file |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VMware adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VMware VM instance name |
+ node_id | ✔ | string | VMware VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vm_directory | | ['string', 'null'] | |
+ vmx_path | | string | path to the vmx file |
+
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeid.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeid.rst
new file mode 100644
index 00000000..1da401fd
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeid.rst
@@ -0,0 +1,113 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VMware adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VMware VM instance name |
+ node_id | ✔ | string | VMware VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vm_directory | | ['string', 'null'] | |
+ vmx_path | | string | path to the vmx file |
+
+
+
+PUT /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VMware adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | | string | VMware VM instance name |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vmx_path | | string | path to the vmx file |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ acpi_shutdown | | boolean | ACPI shutdown |
+ adapter_type | | string | VMware adapter type |
+ adapters | | integer | number of adapters |
+ console | | integer | console TCP port |
+ enable_remote_console | | boolean | enable the remote console |
+ headless | | boolean | headless mode |
+ name | ✔ | string | VMware VM instance name |
+ node_id | ✔ | string | VMware VM instance UUID |
+ project_id | ✔ | string | Project UUID |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vm_directory | | ['string', 'null'] | |
+ vmx_path | | string | path to the vmx file |
+
+
+
+DELETE /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..45ec9780
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,40 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a VMware VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter where the nio should be added
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+
+DELETE /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a VMware VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter from where the nio should be removed
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..530fa344
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a VMware VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to start a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Capture started
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | ✔ | string | Capture file name |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..361cc6ab
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a VMware VM instance
+
+Parameters
+**********
+- **adapter_number**: Adapter to stop a packet capture
+- **port_number**: Port on the adapter (always 0)
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Capture stopped
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidinterfacesvmnet.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidinterfacesvmnet.rst
new file mode 100644
index 00000000..cfe95e7c
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidinterfacesvmnet.rst
@@ -0,0 +1,18 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/interfaces/vmnet
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/interfaces/vmnet
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Allocate a VMware VMnet interface on the server
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **201**: VMnet interface allocated
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidreload.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidreload.rst
new file mode 100644
index 00000000..4d6ed20f
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidreload.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidresume.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidresume.rst
new file mode 100644
index 00000000..a84ccfba
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidresume.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance resumed
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstart.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstart.rst
new file mode 100644
index 00000000..895bc749
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstart.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance started
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstop.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstop.rst
new file mode 100644
index 00000000..b269c36c
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidstop.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidsuspend.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidsuspend.rst
new file mode 100644
index 00000000..8970d4dc
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarenodesnodeidsuspend.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a VMware VM instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance suspended
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodes.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodes.rst
new file mode 100644
index 00000000..38355b1e
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodes.rst
@@ -0,0 +1,56 @@
+/v2/compute/projects/{project_id}/vpcs/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new VPCS instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ console | | ['integer', 'null'] | console TCP port |
+ console_type | | enum | Possible values: telnet |
+ name | ✔ | string | VPCS VM name |
+ node_id | | | VPCS VM identifier |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ name | ✔ | string | VPCS VM name |
+ node_id | ✔ | string | VPCS VM UUID |
+ project_id | ✔ | string | Project UUID |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ startup_script_path | ✔ | ['string', 'null'] | Path of the VPCS startup script relative to project directory |
+ status | ✔ | enum | Possible values: started, stopped |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsnodes.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeid.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeid.rst
new file mode 100644
index 00000000..57f70537
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeid.rst
@@ -0,0 +1,120 @@
+/v2/compute/projects/{project_id}/vpcs/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ name | ✔ | string | VPCS VM name |
+ node_id | ✔ | string | VPCS VM UUID |
+ project_id | ✔ | string | Project UUID |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ startup_script_path | ✔ | ['string', 'null'] | Path of the VPCS startup script relative to project directory |
+ status | ✔ | enum | Possible values: started, stopped |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidvpcsnodesnodeid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Instance updated
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **409**: Conflict
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ console | | ['integer', 'null'] | console TCP port |
+ console_type | | enum | Possible values: telnet |
+ name | | ['string', 'null'] | VPCS VM name |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ startup_script_path | | ['string', 'null'] | Path of the VPCS startup script relative to project directory (IGNORED) |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ name | ✔ | string | VPCS VM name |
+ node_id | ✔ | string | VPCS VM UUID |
+ project_id | ✔ | string | Project UUID |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ startup_script_path | ✔ | ['string', 'null'] | Path of the VPCS startup script relative to project directory |
+ status | ✔ | enum | Possible values: started, stopped |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidvpcsnodesnodeid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidvpcsnodesnodeid.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..3648e4e5
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a VPCS instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port where the nio should be added
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: NIO created
+- **404**: Instance doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a VPCS instance
+
+Parameters
+**********
+- **adapter_number**: Network adapter where the nio is located
+- **port_number**: Port from where the nio should be removed
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: NIO deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectidvpcsnodesnodeidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidreload.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidreload.rst
new file mode 100644
index 00000000..e3411bb5
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance reloaded
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsnodesnodeidreload.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstart.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstart.rst
new file mode 100644
index 00000000..0c604f86
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstart.rst
@@ -0,0 +1,44 @@
+/v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance started
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ command_line | ✔ | string | Last command line used by GNS3 to start QEMU |
+ console | ✔ | integer | console TCP port |
+ console_type | ✔ | enum | Possible values: telnet |
+ name | ✔ | string | VPCS VM name |
+ node_id | ✔ | string | VPCS VM UUID |
+ project_id | ✔ | string | Project UUID |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ startup_script_path | ✔ | ['string', 'null'] | Path of the VPCS startup script relative to project directory |
+ status | ✔ | enum | Possible values: started, stopped |
+ vm_directory | | string | |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsnodesnodeidstart.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstop.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstop.rst
new file mode 100644
index 00000000..5ffb6663
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsnodesnodeidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/vpcs/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VPCS instance
+
+Parameters
+**********
+- **node_id**: UUID for the instance
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+- **204**: Instance stopped
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsnodesnodeidstop.txt
+
diff --git a/docs/api/v2/controller/link/projectsprojectidlinkslinkidpcap.rst b/docs/api/v2/controller/link/projectsprojectidlinkslinkidpcap.rst
new file mode 100644
index 00000000..df5d0fa8
--- /dev/null
+++ b/docs/api/v2/controller/link/projectsprojectidlinkslinkidpcap.rst
@@ -0,0 +1,20 @@
+/v2/projects/{project_id}/links/{link_id}/pcap
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/projects/**{project_id}**/links/**{link_id}**/pcap
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get the pcap from the capture
+
+Parameters
+**********
+- **link_id**: UUID of the link
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: Return the file
+- **403**: Permission denied
+- **404**: The file doesn't exist
+
diff --git a/docs/api/v2/controller/link/projectsprojectidlinkslinkidstartcapture.rst b/docs/api/v2/controller/link/projectsprojectidlinkslinkidstartcapture.rst
new file mode 100644
index 00000000..4b8a4f05
--- /dev/null
+++ b/docs/api/v2/controller/link/projectsprojectidlinkslinkidstartcapture.rst
@@ -0,0 +1,48 @@
+/v2/projects/{project_id}/links/{link_id}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/links/**{link_id}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start capture on a link instance. By default we consider it as an ethernet link
+
+Parameters
+**********
+- **link_id**: UUID of the link
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Capture started
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | | string | Read only propertie. The name of the capture file if capture is running |
+ data_link_type | | enum | Possible values: DLT_ATM_RFC1483, DLT_EN10MB, DLT_FRELAY, DLT_C_HDLC |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ capture_file_name | | ['string', 'null'] | Read only propertie. The name of the capture file if capture is running |
+ capture_file_path | | ['string', 'null'] | Read only propertie. The full path of the capture file if capture is running |
+ capturing | | boolean | Read only propertie. True if a capture running on the link |
+ link_id | | string | Link identifier |
+ nodes | ✔ | array | List of the VMS |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidlinkslinkidstartcapture.txt
+
diff --git a/docs/api/v2/controller/link/projectsprojectidlinkslinkidstopcapture.rst b/docs/api/v2/controller/link/projectsprojectidlinkslinkidstopcapture.rst
new file mode 100644
index 00000000..eaec1760
--- /dev/null
+++ b/docs/api/v2/controller/link/projectsprojectidlinkslinkidstopcapture.rst
@@ -0,0 +1,25 @@
+/v2/projects/{project_id}/links/{link_id}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/links/**{link_id}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop capture on a link instance
+
+Parameters
+**********
+- **link_id**: UUID of the link
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Capture stopped
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidlinkslinkidstopcapture.txt
+
diff --git a/docs/api/v2/controller/node.rst b/docs/api/v2/controller/node.rst
new file mode 100644
index 00000000..52dc7c4f
--- /dev/null
+++ b/docs/api/v2/controller/node.rst
@@ -0,0 +1,8 @@
+Node
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ node/*
diff --git a/docs/api/v2/controller/node/projectsprojectidnodes.rst b/docs/api/v2/controller/node/projectsprojectidnodes.rst
new file mode 100644
index 00000000..7c0a66bc
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodes.rst
@@ -0,0 +1,75 @@
+/v2/projects/{project_id}/nodes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new node instance
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidnodes.txt
+
+
+GET /v2/projects/**{project_id}**/nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+List nodes of a project
+
+Parameters
+**********
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **200**: List of nodes
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_get_projectsprojectidnodes.txt
+
diff --git a/docs/api/v2/controller/node/projectsprojectidnodesnodeid.rst b/docs/api/v2/controller/node/projectsprojectidnodesnodeid.rst
new file mode 100644
index 00000000..06b62b56
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodesnodeid.rst
@@ -0,0 +1,73 @@
+/v2/projects/{project_id}/nodes/{node_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+PUT /v2/projects/**{project_id}**/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a node instance
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_put_projectsprojectidnodesnodeid.txt
+
+
+DELETE /v2/projects/**{project_id}**/nodes/**{node_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a node instance
+
+Parameters
+**********
+- **node_id**: UUID for the node
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance deleted
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_delete_projectsprojectidnodesnodeid.txt
+
diff --git a/docs/api/v2/controller/node/projectsprojectidnodesnodeidreload.rst b/docs/api/v2/controller/node/projectsprojectidnodesnodeidreload.rst
new file mode 100644
index 00000000..64ced06e
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodesnodeidreload.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/nodes/{node_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/nodes/**{node_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a node instance
+
+Parameters
+**********
+- **node_id**: UUID for the node
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidnodesnodeidreload.txt
+
diff --git a/docs/api/v2/controller/node/projectsprojectidnodesnodeidstart.rst b/docs/api/v2/controller/node/projectsprojectidnodesnodeidstart.rst
new file mode 100644
index 00000000..862c6ec6
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodesnodeidstart.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/nodes/{node_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/nodes/**{node_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a node instance
+
+Parameters
+**********
+- **node_id**: UUID for the node
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidnodesnodeidstart.txt
+
diff --git a/docs/api/v2/controller/node/projectsprojectidnodesnodeidstop.rst b/docs/api/v2/controller/node/projectsprojectidnodesnodeidstop.rst
new file mode 100644
index 00000000..04851fba
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodesnodeidstop.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/nodes/{node_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/nodes/**{node_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a node instance
+
+Parameters
+**********
+- **node_id**: UUID for the node
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidnodesnodeidstop.txt
+
diff --git a/docs/api/v2/controller/node/projectsprojectidnodesnodeidsuspend.rst b/docs/api/v2/controller/node/projectsprojectidnodesnodeidsuspend.rst
new file mode 100644
index 00000000..9d7d934c
--- /dev/null
+++ b/docs/api/v2/controller/node/projectsprojectidnodesnodeidsuspend.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/nodes/{node_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/nodes/**{node_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a node instance
+
+Parameters
+**********
+- **node_id**: UUID for the node
+- **project_id**: UUID for the project
+
+Response status codes
+**********************
+- **400**: Invalid request
+- **201**: Instance created
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | | string | Compute identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | | string | Node name |
+ node_id | | string | Node identifier |
+ node_type | | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou, qemu |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidnodesnodeidsuspend.txt
+
diff --git a/gns3server/compute/docker/docker_vm.py b/gns3server/compute/docker/docker_vm.py
index 2a3ee1bf..26fb2241 100644
--- a/gns3server/compute/docker/docker_vm.py
+++ b/gns3server/compute/docker/docker_vm.py
@@ -105,7 +105,7 @@ class DockerVM(BaseNode):
"aux": self.aux,
"start_command": self.start_command,
"environment": self.environment,
- "vm_directory": self.working_dir
+ "node_directory": self.working_dir
}
def _get_free_display_port(self):
diff --git a/gns3server/compute/dynamips/nodes/router.py b/gns3server/compute/dynamips/nodes/router.py
index 71489cf1..e7537dd9 100644
--- a/gns3server/compute/dynamips/nodes/router.py
+++ b/gns3server/compute/dynamips/nodes/router.py
@@ -112,7 +112,7 @@ class Router(BaseNode):
router_info = {"name": self.name,
"node_id": self.id,
- "vm_directory": os.path.join(self.project.module_working_directory(self.manager.module_name.lower())),
+ "node_directory": os.path.join(self.project.module_working_directory(self.manager.module_name.lower())),
"project_id": self.project.id,
"dynamips_id": self._dynamips_id,
"platform": self._platform,
diff --git a/gns3server/compute/iou/iou_vm.py b/gns3server/compute/iou/iou_vm.py
index 98a42a52..1e01570e 100644
--- a/gns3server/compute/iou/iou_vm.py
+++ b/gns3server/compute/iou/iou_vm.py
@@ -203,7 +203,7 @@ class IOUVM(BaseNode):
iou_vm_info = {"name": self.name,
"node_id": self.id,
- "vm_directory": self.working_dir,
+ "node_directory": self.working_dir,
"console": self._console,
"project_id": self.project.id,
"path": self.path,
diff --git a/gns3server/compute/project.py b/gns3server/compute/project.py
index add288af..1fe495f4 100644
--- a/gns3server/compute/project.py
+++ b/gns3server/compute/project.py
@@ -496,9 +496,9 @@ class Project:
self._export_project_file(path, z, include_images)
else:
# We merge the data from all server in the same project-files directory
- vm_directory = os.path.join(self._path, "servers", "vm")
- if os.path.commonprefix([root, vm_directory]) == vm_directory:
- z.write(path, os.path.relpath(path, vm_directory))
+ node_directory = os.path.join(self._path, "servers", "vm")
+ if os.path.commonprefix([root, node_directory]) == node_directory:
+ z.write(path, os.path.relpath(path, node_directory))
else:
z.write(path, os.path.relpath(path, self._path))
return z
@@ -590,14 +590,14 @@ class Project:
"docker": "DockerVM"
}
- vm_directory = os.path.join(self.path, "servers", "vm", "project-files")
+ node_directory = os.path.join(self.path, "servers", "vm", "project-files")
vm_server_use = False
for module, vm_type in modules_to_vm.items():
module_directory = os.path.join(self.path, "project-files", module)
if os.path.exists(module_directory):
- os.makedirs(vm_directory, exist_ok=True)
- shutil.move(module_directory, os.path.join(vm_directory, module))
+ os.makedirs(node_directory, exist_ok=True)
+ shutil.move(module_directory, os.path.join(node_directory, module))
# Patch node to use the GNS3 VM
for node in topology["topology"]["nodes"]:
diff --git a/gns3server/compute/qemu/qemu_vm.py b/gns3server/compute/qemu/qemu_vm.py
index 047ad1d3..81f85e0c 100644
--- a/gns3server/compute/qemu/qemu_vm.py
+++ b/gns3server/compute/qemu/qemu_vm.py
@@ -1449,7 +1449,7 @@ class QemuVM(BaseNode):
answer = {
"project_id": self.project.id,
"node_id": self.id,
- "vm_directory": self.working_dir
+ "node_directory": self.working_dir
}
# Qemu has a long list of options. The JSON schema is the single source of information
for field in QEMU_OBJECT_SCHEMA["required"]:
diff --git a/gns3server/compute/virtualbox/virtualbox_vm.py b/gns3server/compute/virtualbox/virtualbox_vm.py
index 4d710443..b35b3f9f 100644
--- a/gns3server/compute/virtualbox/virtualbox_vm.py
+++ b/gns3server/compute/virtualbox/virtualbox_vm.py
@@ -87,9 +87,9 @@ class VirtualBoxVM(BaseNode):
"ram": self.ram,
"use_any_adapter": self.use_any_adapter}
if self._linked_clone:
- json["vm_directory"] = self.working_dir
+ json["node_directory"] = self.working_dir
else:
- json["vm_directory"] = None
+ json["node_directory"] = None
return json
@asyncio.coroutine
diff --git a/gns3server/compute/vmware/vmware_vm.py b/gns3server/compute/vmware/vmware_vm.py
index a6e3d074..63e9e9a5 100644
--- a/gns3server/compute/vmware/vmware_vm.py
+++ b/gns3server/compute/vmware/vmware_vm.py
@@ -91,7 +91,7 @@ class VMwareVM(BaseNode):
"adapter_type": self.adapter_type,
"use_ubridge": self.use_ubridge,
"use_any_adapter": self.use_any_adapter,
- "vm_directory": self.working_dir}
+ "node_directory": self.working_dir}
return json
@property
diff --git a/gns3server/compute/vpcs/vpcs_vm.py b/gns3server/compute/vpcs/vpcs_vm.py
index b67d9cb7..0e5154ca 100644
--- a/gns3server/compute/vpcs/vpcs_vm.py
+++ b/gns3server/compute/vpcs/vpcs_vm.py
@@ -109,7 +109,7 @@ class VPCSVM(BaseNode):
return {"name": self.name,
"node_id": self.id,
- "vm_directory": self.working_dir,
+ "node_directory": self.working_dir,
"status": self.status,
"console": self._console,
"console_type": "telnet",
diff --git a/gns3server/controller/node.py b/gns3server/controller/node.py
index a9e4fd66..c19b45d0 100644
--- a/gns3server/controller/node.py
+++ b/gns3server/controller/node.py
@@ -47,6 +47,8 @@ class Node:
self._console = console
self._console_type = console_type
self._properties = properties
+ self._command_line = None
+ self._node_directory = None
@property
def id(self):
@@ -130,7 +132,11 @@ class Node:
for key, value in response.json.items():
if key == "console":
self._console = value
- elif key in ["console_type", "name", "node_id", "project_id", "vm_directory", "command_line", "status"]:
+ elif key == "node_directory":
+ self._node_directory = value
+ elif key == "command_line":
+ self._command_line = value
+ elif key in ["console_type", "name", "node_id", "project_id", "status"]:
pass
else:
self._properties[key] = value
@@ -225,8 +231,10 @@ class Node:
"project_id": self._project.id,
"node_id": self._id,
"node_type": self._node_type,
+ "node_directory": self._node_directory,
"name": self._name,
"console": self._console,
"console_type": self._console_type,
+ "command_line": self._command_line,
"properties": self._properties
}
diff --git a/gns3server/schemas/docker.py b/gns3server/schemas/docker.py
index d1c10ad9..6e604426 100644
--- a/gns3server/schemas/docker.py
+++ b/gns3server/schemas/docker.py
@@ -229,13 +229,13 @@ DOCKER_OBJECT_SCHEMA = {
"type": ["string", "null"],
"minLength": 0,
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
}
},
"additionalProperties": False,
- "required": ["node_id", "project_id", "image", "container_id", "adapters", "aux", "console", "console_type", "console_resolution", "start_command", "environment", "vm_directory"]
+ "required": ["node_id", "project_id", "image", "container_id", "adapters", "aux", "console", "console_type", "console_resolution", "start_command", "environment", "node_directory"]
}
diff --git a/gns3server/schemas/dynamips_vm.py b/gns3server/schemas/dynamips_vm.py
index 930c4d98..73429619 100644
--- a/gns3server/schemas/dynamips_vm.py
+++ b/gns3server/schemas/dynamips_vm.py
@@ -516,7 +516,7 @@ VM_OBJECT_SCHEMA = {
"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}$"
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the vm working directory",
"type": "string"
},
diff --git a/gns3server/schemas/iou.py b/gns3server/schemas/iou.py
index 492f9f8d..5d15f57b 100644
--- a/gns3server/schemas/iou.py
+++ b/gns3server/schemas/iou.py
@@ -194,7 +194,7 @@ IOU_OBJECT_SCHEMA = {
"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}$"
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},
diff --git a/gns3server/schemas/node.py b/gns3server/schemas/node.py
index 21a944d5..ba274f21 100644
--- a/gns3server/schemas/node.py
+++ b/gns3server/schemas/node.py
@@ -87,6 +87,14 @@ NODE_OBJECT_SCHEMA = {
"description": "Type of node",
"enum": ["docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"]
},
+ "node_directory": {
+ "description": "Working directory of the node. Read only",
+ "type": ["null", "string"]
+ },
+ "command_line": {
+ "description": "Command line use to start the node",
+ "type": ["null", "string"]
+ },
"name": {
"description": "Node name",
"type": "string",
diff --git a/gns3server/schemas/qemu.py b/gns3server/schemas/qemu.py
index 0e1aa6e2..f9b93a41 100644
--- a/gns3server/schemas/qemu.py
+++ b/gns3server/schemas/qemu.py
@@ -470,7 +470,7 @@ QEMU_OBJECT_SCHEMA = {
"description": "QEMU boot priority",
"enum": ["c", "d", "n", "cn", "cd"]
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},
@@ -602,7 +602,7 @@ QEMU_OBJECT_SCHEMA = {
"cpu_throttling",
"process_priority",
"options",
- "vm_directory",
+ "node_directory",
"command_line"]
}
diff --git a/gns3server/schemas/virtualbox.py b/gns3server/schemas/virtualbox.py
index 6fe439c8..304c7121 100644
--- a/gns3server/schemas/virtualbox.py
+++ b/gns3server/schemas/virtualbox.py
@@ -177,7 +177,7 @@ VBOX_OBJECT_SCHEMA = {
"type": "string",
"minLength": 1,
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": ["string", "null"]
},
@@ -222,5 +222,5 @@ VBOX_OBJECT_SCHEMA = {
},
},
"additionalProperties": False,
- "required": ["name", "node_id", "project_id", "vm_directory"]
+ "required": ["name", "node_id", "project_id", "node_directory"]
}
diff --git a/gns3server/schemas/vmware.py b/gns3server/schemas/vmware.py
index 8b296094..e4e94cbf 100644
--- a/gns3server/schemas/vmware.py
+++ b/gns3server/schemas/vmware.py
@@ -158,7 +158,7 @@ VMWARE_OBJECT_SCHEMA = {
"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}$"
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": ["string", "null"]
},
diff --git a/gns3server/schemas/vpcs.py b/gns3server/schemas/vpcs.py
index c9300122..5d224868 100644
--- a/gns3server/schemas/vpcs.py
+++ b/gns3server/schemas/vpcs.py
@@ -104,7 +104,7 @@ VPCS_OBJECT_SCHEMA = {
"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}$"
},
- "vm_directory": {
+ "node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},
diff --git a/tests/compute/docker/test_docker_vm.py b/tests/compute/docker/test_docker_vm.py
index b60b895b..5db9c928 100644
--- a/tests/compute/docker/test_docker_vm.py
+++ b/tests/compute/docker/test_docker_vm.py
@@ -63,7 +63,7 @@ def test_json(vm, project):
'aux': vm.aux,
'start_command': vm.start_command,
'environment': vm.environment,
- 'vm_directory': vm.working_dir
+ 'node_directory': vm.working_dir
}
diff --git a/tests/compute/virtualbox/test_virtualbox_vm.py b/tests/compute/virtualbox/test_virtualbox_vm.py
index 799ae0ee..f31066ab 100644
--- a/tests/compute/virtualbox/test_virtualbox_vm.py
+++ b/tests/compute/virtualbox/test_virtualbox_vm.py
@@ -63,7 +63,7 @@ def test_vm_adapter_add_nio_binding_adapter_not_exist(loop, vm, manager, free_co
def test_json(vm, tmpdir, project):
- assert vm.__json__()["vm_directory"] is None
+ assert vm.__json__()["node_directory"] is None
project._path = str(tmpdir)
vm._linked_clone = True
- assert vm.__json__()["vm_directory"] is not None
+ assert vm.__json__()["node_directory"] is not None
diff --git a/tests/compute/vmware/test_vmware_vm.py b/tests/compute/vmware/test_vmware_vm.py
index 58c8482a..6b6a99aa 100644
--- a/tests/compute/vmware/test_vmware_vm.py
+++ b/tests/compute/vmware/test_vmware_vm.py
@@ -45,10 +45,10 @@ def test_vm(project, manager, vm):
def test_json(vm, tmpdir, project):
- assert vm.__json__()["vm_directory"] is not None
+ assert vm.__json__()["node_directory"] is not None
project._path = str(tmpdir)
vm._linked_clone = True
- assert vm.__json__()["vm_directory"] is not None
+ assert vm.__json__()["node_directory"] is not None
def test_start_capture(vm, tmpdir, manager, free_console_port, loop):
diff --git a/tests/controller/test_node.py b/tests/controller/test_node.py
index ac25ada2..29f88f4f 100644
--- a/tests/controller/test_node.py
+++ b/tests/controller/test_node.py
@@ -55,6 +55,8 @@ def test_json(node, compute):
"name": "demo",
"console": node.console,
"console_type": node.console_type,
+ "command_line": None,
+ "node_directory": None,
"properties": node.properties
}
diff --git a/tests/handlers/api/compute/test_qemu.py b/tests/handlers/api/compute/test_qemu.py
index dd208600..3046efcc 100644
--- a/tests/handlers/api/compute/test_qemu.py
+++ b/tests/handlers/api/compute/test_qemu.py
@@ -103,12 +103,12 @@ def test_qemu_create_with_params(http_compute, project, base_params, fake_qemu_v
def test_qemu_get(http_compute, project, vm):
- response = http_compute.get("/projects/{project_id}/qemu/nodes/{node_id}".format(project_id=vm["project_id"],node_id=vm["node_id"]), example=True)
+ response = http_compute.get("/projects/{project_id}/qemu/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), example=True)
assert response.status == 200
assert response.route == "/projects/{project_id}/qemu/nodes/{node_id}"
assert response.json["name"] == "PC TEST 1"
assert response.json["project_id"] == project.id
- assert response.json["vm_directory"] == os.path.join(project.path, "project-files", "qemu", vm["node_id"])
+ assert response.json["node_directory"] == os.path.join(project.path, "project-files", "qemu", vm["node_id"])
def test_qemu_start(http_compute, vm):
@@ -185,7 +185,7 @@ def test_qemu_nio_create_ethernet(http_compute, vm):
http_compute.put("/projects/{project_id}/qemu/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), {"adapters": 2})
response = http_compute.post("/projects/{project_id}/qemu/nodes/{node_id}/adapters/1/ports/0/nio".format(project_id=vm["project_id"], node_id=vm["node_id"]), {"type": "nio_generic_ethernet",
"ethernet_device": "eth0",
- },
+ },
example=True)
assert response.status == 409