diff --git a/docs/api/examples/compute_delete_projectsprojectid.txt b/docs/api/examples/compute_delete_projectsprojectid.txt
new file mode 100644
index 00000000..a74dbb81
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 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}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..4df61a1f
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/9d9e7dab-477b-4480-a716-1867854b1afc/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/9d9e7dab-477b-4480-a716-1867854b1afc/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidiouvmsvmid.txt b/docs/api/examples/compute_delete_projectsprojectidiouvmsvmid.txt
new file mode 100644
index 00000000..e282ec99
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidiouvmsvmid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/bdee854f-b9bd-4867-852c-ac9b48a59c97'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/bdee854f-b9bd-4867-852c-ac9b48a59c97 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/vms/{vm_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..8c2bb68b
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/fb27bc7c-70cc-4f9c-8bee-1a7dd135da62/adapters/1/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/fb27bc7c-70cc-4f9c-8bee-1a7dd135da62/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmid.txt b/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmid.txt
new file mode 100644
index 00000000..f2363e6d
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b243edb1-e3da-4184-a1e1-45ff0a2ddd5c'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b243edb1-e3da-4184-a1e1-45ff0a2ddd5c 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/vms/{vm_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..0ba2794e
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/ac03791f-41e7-4b3f-903f-f0dd5306c543/adapters/1/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/ac03791f-41e7-4b3f-903f-f0dd5306c543/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..f473d766
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/e2a71e12-d200-41b1-8d62-a0a14ab0c062/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/e2a71e12-d200-41b1-8d62-a0a14ab0c062/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmid.txt b/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmid.txt
new file mode 100644
index 00000000..9c0e014e
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmid.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/17fddf5d-d432-49ba-af43-f98ad19476c1'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/17fddf5d-d432-49ba-af43-f98ad19476c1 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/vms/{vm_id}
+
diff --git a/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..18e5449e
--- /dev/null
+++ b/docs/api/examples/compute_delete_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,13 @@
+curl -i -X DELETE 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/382ade1f-89d4-43b7-a284-0c683d7cccb9/adapters/0/ports/0/nio'
+
+DELETE /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/382ade1f-89d4-43b7-a284-0c683d7cccb9/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+
diff --git a/docs/api/examples/compute_get_interfaces.txt b/docs/api/examples/compute_get_interfaces.txt
new file mode 100644
index 00000000..7c0c09b0
--- /dev/null
+++ b/docs/api/examples/compute_get_interfaces.txt
@@ -0,0 +1,400 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/interfaces'
+
+GET /v2/compute/interfaces HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 9082
+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/interfaces
+
+[
+ {
+ "id": "bridge0",
+ "ip_address": "",
+ "mac_address": "3e:07:54:87:bc:00",
+ "name": "bridge0"
+ },
+ {
+ "id": "en0",
+ "ip_address": "",
+ "mac_address": "3c:07:54:78:07:cc",
+ "name": "en0"
+ },
+ {
+ "id": "en1",
+ "ip_address": "192.168.84.114",
+ "mac_address": "68:a8:6d:4a:c3:16",
+ "name": "en1"
+ },
+ {
+ "id": "en2",
+ "ip_address": "",
+ "mac_address": "d2:00:1b:c0:17:80",
+ "name": "en2"
+ },
+ {
+ "id": "fw0",
+ "ip_address": "",
+ "mac_address": "3c:07:54:ff:fe:bc:01:78",
+ "name": "fw0"
+ },
+ {
+ "id": "lo0",
+ "ip_address": "127.0.0.1",
+ "mac_address": "",
+ "name": "lo0"
+ },
+ {
+ "id": "p2p0",
+ "ip_address": "",
+ "mac_address": "0a:a8:6d:4a:c3:16",
+ "name": "p2p0"
+ },
+ {
+ "id": "vboxnet0",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:00",
+ "name": "vboxnet0"
+ },
+ {
+ "id": "vboxnet1",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:01",
+ "name": "vboxnet1"
+ },
+ {
+ "id": "vboxnet2",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:02",
+ "name": "vboxnet2"
+ },
+ {
+ "id": "vboxnet3",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:03",
+ "name": "vboxnet3"
+ },
+ {
+ "id": "vboxnet4",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:04",
+ "name": "vboxnet4"
+ },
+ {
+ "id": "vboxnet5",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:05",
+ "name": "vboxnet5"
+ },
+ {
+ "id": "vboxnet6",
+ "ip_address": "",
+ "mac_address": "0a:00:27:00:00:06",
+ "name": "vboxnet6"
+ },
+ {
+ "id": "vmnet1",
+ "ip_address": "172.16.16.1",
+ "mac_address": "00:50:56:c0:00:01",
+ "name": "vmnet1"
+ },
+ {
+ "id": "vmnet10",
+ "ip_address": "172.16.7.1",
+ "mac_address": "00:50:56:c0:00:0a",
+ "name": "vmnet10"
+ },
+ {
+ "id": "vmnet11",
+ "ip_address": "172.16.8.1",
+ "mac_address": "00:50:56:c0:00:0b",
+ "name": "vmnet11"
+ },
+ {
+ "id": "vmnet12",
+ "ip_address": "172.16.9.1",
+ "mac_address": "00:50:56:c0:00:0c",
+ "name": "vmnet12"
+ },
+ {
+ "id": "vmnet13",
+ "ip_address": "172.16.10.1",
+ "mac_address": "00:50:56:c0:00:0d",
+ "name": "vmnet13"
+ },
+ {
+ "id": "vmnet14",
+ "ip_address": "172.16.11.1",
+ "mac_address": "00:50:56:c0:00:0e",
+ "name": "vmnet14"
+ },
+ {
+ "id": "vmnet15",
+ "ip_address": "172.16.12.1",
+ "mac_address": "00:50:56:c0:00:0f",
+ "name": "vmnet15"
+ },
+ {
+ "id": "vmnet16",
+ "ip_address": "172.16.13.1",
+ "mac_address": "00:50:56:c0:00:10",
+ "name": "vmnet16"
+ },
+ {
+ "id": "vmnet17",
+ "ip_address": "172.16.14.1",
+ "mac_address": "00:50:56:c0:00:11",
+ "name": "vmnet17"
+ },
+ {
+ "id": "vmnet18",
+ "ip_address": "172.16.15.1",
+ "mac_address": "00:50:56:c0:00:12",
+ "name": "vmnet18"
+ },
+ {
+ "id": "vmnet19",
+ "ip_address": "172.16.17.1",
+ "mac_address": "00:50:56:c0:00:13",
+ "name": "vmnet19"
+ },
+ {
+ "id": "vmnet2",
+ "ip_address": "172.16.0.1",
+ "mac_address": "00:50:56:c0:00:02",
+ "name": "vmnet2"
+ },
+ {
+ "id": "vmnet20",
+ "ip_address": "172.16.18.1",
+ "mac_address": "00:50:56:c0:00:14",
+ "name": "vmnet20"
+ },
+ {
+ "id": "vmnet21",
+ "ip_address": "172.16.19.1",
+ "mac_address": "00:50:56:c0:00:15",
+ "name": "vmnet21"
+ },
+ {
+ "id": "vmnet22",
+ "ip_address": "172.16.20.1",
+ "mac_address": "00:50:56:c0:00:16",
+ "name": "vmnet22"
+ },
+ {
+ "id": "vmnet23",
+ "ip_address": "172.16.21.1",
+ "mac_address": "00:50:56:c0:00:17",
+ "name": "vmnet23"
+ },
+ {
+ "id": "vmnet24",
+ "ip_address": "172.16.22.1",
+ "mac_address": "00:50:56:c0:00:18",
+ "name": "vmnet24"
+ },
+ {
+ "id": "vmnet25",
+ "ip_address": "172.16.23.1",
+ "mac_address": "00:50:56:c0:00:19",
+ "name": "vmnet25"
+ },
+ {
+ "id": "vmnet26",
+ "ip_address": "172.16.24.1",
+ "mac_address": "00:50:56:c0:00:1a",
+ "name": "vmnet26"
+ },
+ {
+ "id": "vmnet27",
+ "ip_address": "172.16.25.1",
+ "mac_address": "00:50:56:c0:00:1b",
+ "name": "vmnet27"
+ },
+ {
+ "id": "vmnet28",
+ "ip_address": "172.16.26.1",
+ "mac_address": "00:50:56:c0:00:1c",
+ "name": "vmnet28"
+ },
+ {
+ "id": "vmnet29",
+ "ip_address": "172.16.27.1",
+ "mac_address": "00:50:56:c0:00:1d",
+ "name": "vmnet29"
+ },
+ {
+ "id": "vmnet3",
+ "ip_address": "172.16.1.1",
+ "mac_address": "00:50:56:c0:00:03",
+ "name": "vmnet3"
+ },
+ {
+ "id": "vmnet30",
+ "ip_address": "172.16.28.1",
+ "mac_address": "00:50:56:c0:00:1e",
+ "name": "vmnet30"
+ },
+ {
+ "id": "vmnet31",
+ "ip_address": "172.16.29.1",
+ "mac_address": "00:50:56:c0:00:1f",
+ "name": "vmnet31"
+ },
+ {
+ "id": "vmnet32",
+ "ip_address": "172.16.30.1",
+ "mac_address": "00:50:56:c0:00:20",
+ "name": "vmnet32"
+ },
+ {
+ "id": "vmnet33",
+ "ip_address": "172.16.31.1",
+ "mac_address": "00:50:56:c0:00:21",
+ "name": "vmnet33"
+ },
+ {
+ "id": "vmnet34",
+ "ip_address": "172.16.32.1",
+ "mac_address": "00:50:56:c0:00:22",
+ "name": "vmnet34"
+ },
+ {
+ "id": "vmnet35",
+ "ip_address": "172.16.33.1",
+ "mac_address": "00:50:56:c0:00:23",
+ "name": "vmnet35"
+ },
+ {
+ "id": "vmnet36",
+ "ip_address": "172.16.34.1",
+ "mac_address": "00:50:56:c0:00:24",
+ "name": "vmnet36"
+ },
+ {
+ "id": "vmnet37",
+ "ip_address": "172.16.35.1",
+ "mac_address": "00:50:56:c0:00:25",
+ "name": "vmnet37"
+ },
+ {
+ "id": "vmnet38",
+ "ip_address": "172.16.36.1",
+ "mac_address": "00:50:56:c0:00:26",
+ "name": "vmnet38"
+ },
+ {
+ "id": "vmnet39",
+ "ip_address": "172.16.37.1",
+ "mac_address": "00:50:56:c0:00:27",
+ "name": "vmnet39"
+ },
+ {
+ "id": "vmnet4",
+ "ip_address": "172.16.2.1",
+ "mac_address": "00:50:56:c0:00:04",
+ "name": "vmnet4"
+ },
+ {
+ "id": "vmnet40",
+ "ip_address": "172.16.38.1",
+ "mac_address": "00:50:56:c0:00:28",
+ "name": "vmnet40"
+ },
+ {
+ "id": "vmnet41",
+ "ip_address": "172.16.39.1",
+ "mac_address": "00:50:56:c0:00:29",
+ "name": "vmnet41"
+ },
+ {
+ "id": "vmnet42",
+ "ip_address": "172.16.40.1",
+ "mac_address": "00:50:56:c0:00:2a",
+ "name": "vmnet42"
+ },
+ {
+ "id": "vmnet43",
+ "ip_address": "172.16.41.1",
+ "mac_address": "00:50:56:c0:00:2b",
+ "name": "vmnet43"
+ },
+ {
+ "id": "vmnet44",
+ "ip_address": "172.16.42.1",
+ "mac_address": "00:50:56:c0:00:2c",
+ "name": "vmnet44"
+ },
+ {
+ "id": "vmnet45",
+ "ip_address": "172.16.43.1",
+ "mac_address": "00:50:56:c0:00:2d",
+ "name": "vmnet45"
+ },
+ {
+ "id": "vmnet46",
+ "ip_address": "172.16.44.1",
+ "mac_address": "00:50:56:c0:00:2e",
+ "name": "vmnet46"
+ },
+ {
+ "id": "vmnet47",
+ "ip_address": "172.16.45.1",
+ "mac_address": "00:50:56:c0:00:2f",
+ "name": "vmnet47"
+ },
+ {
+ "id": "vmnet48",
+ "ip_address": "172.16.46.1",
+ "mac_address": "00:50:56:c0:00:30",
+ "name": "vmnet48"
+ },
+ {
+ "id": "vmnet49",
+ "ip_address": "172.16.47.1",
+ "mac_address": "00:50:56:c0:00:31",
+ "name": "vmnet49"
+ },
+ {
+ "id": "vmnet5",
+ "ip_address": "172.16.3.1",
+ "mac_address": "00:50:56:c0:00:05",
+ "name": "vmnet5"
+ },
+ {
+ "id": "vmnet50",
+ "ip_address": "172.16.48.1",
+ "mac_address": "00:50:56:c0:00:32",
+ "name": "vmnet50"
+ },
+ {
+ "id": "vmnet6",
+ "ip_address": "172.16.4.1",
+ "mac_address": "00:50:56:c0:00:06",
+ "name": "vmnet6"
+ },
+ {
+ "id": "vmnet7",
+ "ip_address": "172.16.5.1",
+ "mac_address": "00:50:56:c0:00:07",
+ "name": "vmnet7"
+ },
+ {
+ "id": "vmnet8",
+ "ip_address": "192.168.229.1",
+ "mac_address": "00:50:56:c0:00:08",
+ "name": "vmnet8"
+ },
+ {
+ "id": "vmnet9",
+ "ip_address": "172.16.6.1",
+ "mac_address": "00:50:56:c0:00:09",
+ "name": "vmnet9"
+ }
+]
diff --git a/docs/api/examples/compute_get_iouvms.txt b/docs/api/examples/compute_get_iouvms.txt
new file mode 100644
index 00000000..278106ff
--- /dev/null
+++ b/docs/api/examples/compute_get_iouvms.txt
@@ -0,0 +1,20 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/iou/vms'
+
+GET /v2/compute/iou/vms 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/vms
+
+[
+ {
+ "filename": "iou.bin",
+ "path": "iou.bin"
+ }
+]
diff --git a/docs/api/examples/compute_get_projects.txt b/docs/api/examples/compute_get_projects.txt
new file mode 100644
index 00000000..e580662b
--- /dev/null
+++ b/docs/api/examples/compute_get_projects.txt
@@ -0,0 +1,26 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects'
+
+GET /v2/compute/projects HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 254
+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
+
+[
+ {
+ "name": "test",
+ "project_id": "52010203-0405-0607-0809-0a0b0c0d0e0b",
+ "temporary": false
+ },
+ {
+ "name": "test",
+ "project_id": "51010203-0405-0607-0809-0a0b0c0d0e0f",
+ "temporary": false
+ }
+]
diff --git a/docs/api/examples/compute_get_projectsprojectid.txt b/docs/api/examples/compute_get_projectsprojectid.txt
new file mode 100644
index 00000000..c8315569
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectid.txt
@@ -0,0 +1,19 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/40010203-0405-0607-0809-0a0b0c0d0e02'
+
+GET /v2/compute/projects/40010203-0405-0607-0809-0a0b0c0d0e02 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 104
+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}
+
+{
+ "name": "test",
+ "project_id": "40010203-0405-0607-0809-0a0b0c0d0e02",
+ "temporary": false
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidiouvmsvmid.txt b/docs/api/examples/compute_get_projectsprojectidiouvmsvmid.txt
new file mode 100644
index 00000000..79cf9011
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidiouvmsvmid.txt
@@ -0,0 +1,33 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/07a93f77-4469-4d2a-a800-4cb3a699e552'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/07a93f77-4469-4d2a-a800-4cb3a699e552 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 643
+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/vms/{vm_id}
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": null,
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "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/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/07a93f77-4469-4d2a-a800-4cb3a699e552",
+ "vm_id": "07a93f77-4469-4d2a-a800-4cb3a699e552"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidiouvmsvmidconfigs.txt b/docs/api/examples/compute_get_projectsprojectidiouvmsvmidconfigs.txt
new file mode 100644
index 00000000..8a332a43
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidiouvmsvmidconfigs.txt
@@ -0,0 +1,17 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/088b8e74-1ffe-4953-ad37-17992e89f18a/configs'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/088b8e74-1ffe-4953-ad37-17992e89f18a/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/vms/{vm_id}/configs
+
+{
+ "startup_config_content": "TEST"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidqemuvmsvmid.txt b/docs/api/examples/compute_get_projectsprojectidqemuvmsvmid.txt
new file mode 100644
index 00000000..577cb4a7
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidqemuvmsvmid.txt
@@ -0,0 +1,56 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6cf04e5a-e04b-4fe4-94f0-a92854d7ac77'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6cf04e5a-e04b-4fe4-94f0-a92854d7ac77 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1386
+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/vms/{vm_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:ac:77:00",
+ "name": "PC TEST 1",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64",
+ "ram": 256,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/6cf04e5a-e04b-4fe4-94f0-a92854d7ac77",
+ "vm_id": "6cf04e5a-e04b-4fe4-94f0-a92854d7ac77"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidvirtualboxvmsvmid.txt b/docs/api/examples/compute_get_projectsprojectidvirtualboxvmsvmid.txt
new file mode 100644
index 00000000..dcdec3c1
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidvirtualboxvmsvmid.txt
@@ -0,0 +1,29 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/674b503d-10d3-435d-abb4-f1c861f07e57'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/674b503d-10d3-435d-abb4-f1c861f07e57 HTTP/1.1
+
+
+
+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/vms/{vm_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5001,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "VMTEST",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vm_id": "674b503d-10d3-435d-abb4-f1c861f07e57",
+ "vmname": "VMTEST"
+}
diff --git a/docs/api/examples/compute_get_projectsprojectidvpcsvmsvmid.txt b/docs/api/examples/compute_get_projectsprojectidvpcsvmsvmid.txt
new file mode 100644
index 00000000..77a89253
--- /dev/null
+++ b/docs/api/examples/compute_get_projectsprojectidvpcsvmsvmid.txt
@@ -0,0 +1,26 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/25e94478-dccb-4ea9-874d-bd695f9ad2b5'
+
+GET /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/25e94478-dccb-4ea9-874d-bd695f9ad2b5 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 485
+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/vms/{vm_id}
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/25e94478-dccb-4ea9-874d-bd695f9ad2b5",
+ "vm_id": "25e94478-dccb-4ea9-874d-bd695f9ad2b5"
+}
diff --git a/docs/api/examples/compute_get_qemubinaries.txt b/docs/api/examples/compute_get_qemubinaries.txt
new file mode 100644
index 00000000..e67ab204
--- /dev/null
+++ b/docs/api/examples/compute_get_qemubinaries.txt
@@ -0,0 +1,32 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/qemu/binaries' -d '{"archs": ["i386"]}'
+
+GET /v2/compute/qemu/binaries HTTP/1.1
+{
+ "archs": [
+ "i386"
+ ]
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 212
+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/qemu/binaries
+
+[
+ {
+ "path": "/tmp/x86_64",
+ "version": "2.2.0"
+ },
+ {
+ "path": "/tmp/alpha",
+ "version": "2.1.0"
+ },
+ {
+ "path": "/tmp/i386",
+ "version": "2.1.0"
+ }
+]
diff --git a/docs/api/examples/compute_get_qemucapabilities.txt b/docs/api/examples/compute_get_qemucapabilities.txt
new file mode 100644
index 00000000..0aed3a55
--- /dev/null
+++ b/docs/api/examples/compute_get_qemucapabilities.txt
@@ -0,0 +1,19 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/qemu/capabilities'
+
+GET /v2/compute/qemu/capabilities HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 39
+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/qemu/capabilities
+
+{
+ "kvm": [
+ "x86_64"
+ ]
+}
diff --git a/docs/api/examples/compute_get_version.txt b/docs/api/examples/compute_get_version.txt
new file mode 100644
index 00000000..c5320d44
--- /dev/null
+++ b/docs/api/examples/compute_get_version.txt
@@ -0,0 +1,18 @@
+curl -i -X GET 'http://localhost:3080/v2/compute/version'
+
+GET /v2/compute/version HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 49
+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/version
+
+{
+ "local": true,
+ "version": "2.0.0dev1"
+}
diff --git a/docs/api/examples/compute_post_configreload.txt b/docs/api/examples/compute_post_configreload.txt
new file mode 100644
index 00000000..50b3fa58
--- /dev/null
+++ b/docs/api/examples/compute_post_configreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/config/reload' -d '{}'
+
+POST /v2/compute/config/reload 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/compute/config/reload
+
diff --git a/docs/api/examples/compute_post_projects.txt b/docs/api/examples/compute_post_projects.txt
new file mode 100644
index 00000000..950de2bb
--- /dev/null
+++ b/docs/api/examples/compute_post_projects.txt
@@ -0,0 +1,22 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects' -d '{"name": "test", "project_id": "10010203-0405-0607-0809-0a0b0c0d0e0f"}'
+
+POST /v2/compute/projects HTTP/1.1
+{
+ "name": "test",
+ "project_id": "10010203-0405-0607-0809-0a0b0c0d0e0f"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 104
+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
+
+{
+ "name": "test",
+ "project_id": "10010203-0405-0607-0809-0a0b0c0d0e0f",
+ "temporary": false
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidclose.txt b/docs/api/examples/compute_post_projectsprojectidclose.txt
new file mode 100644
index 00000000..f52391cf
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidclose.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close 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}/close
+
diff --git a/docs/api/examples/compute_post_projectsprojectidcommit.txt b/docs/api/examples/compute_post_projectsprojectidcommit.txt
new file mode 100644
index 00000000..ba819b85
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidcommit.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit 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}/commit
+
diff --git a/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..a59ed8af
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/f9c3527e-835e-4d82-b73e-bd561027b204/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/vms/f9c3527e-835e-4d82-b73e-bd561027b204/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/vms/{vm_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_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
new file mode 100644
index 00000000..4d1f2712
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
@@ -0,0 +1,20 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/0ac51c86-4de0-4c5c-bf5b-88bd4c47a433/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/vms/0ac51c86-4de0-4c5c-bf5b-88bd4c47a433/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: 167
+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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+
+{
+ "pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
new file mode 100644
index 00000000..27856ce0
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/c37c9a63-1389-4039-9912-2f3fca37ce4b/adapters/0/ports/0/stop_capture' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/c37c9a63-1389-4039-9912-2f3fca37ce4b/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvms.txt b/docs/api/examples/compute_post_projectsprojectidiouvms.txt
new file mode 100644
index 00000000..a8c81838
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvms.txt
@@ -0,0 +1,38 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"name": "PC TEST 1", "path": "iou.bin", "startup_config_content": "hostname test", "vm_id": "6beae35c-5562-42d1-bc34-6df754a16c8a"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms HTTP/1.1
+{
+ "name": "PC TEST 1",
+ "path": "iou.bin",
+ "startup_config_content": "hostname test",
+ "vm_id": "6beae35c-5562-42d1-bc34-6df754a16c8a"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 659
+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/vms
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": null,
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "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/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/6beae35c-5562-42d1-bc34-6df754a16c8a",
+ "vm_id": "6beae35c-5562-42d1-bc34-6df754a16c8a"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..d522520d
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/f5a3ad46-0f0a-4970-a545-a46c5550a175/adapters/1/ports/0/nio' -d '{"ethernet_device": "bridge0", "type": "nio_generic_ethernet"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/f5a3ad46-0f0a-4970-a545-a46c5550a175/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/vms/{vm_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_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
new file mode 100644
index 00000000..f847d003
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
@@ -0,0 +1,20 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/55e43759-8044-49ff-80d3-613d82253e05/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/vms/55e43759-8044-49ff-80d3-613d82253e05/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: 167
+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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+
+{
+ "pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
new file mode 100644
index 00000000..e9a86600
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ba5906f8-5099-44b8-8779-0332f13bcc0c/adapters/0/ports/0/stop_capture' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ba5906f8-5099-44b8-8779-0332f13bcc0c/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/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvmsvmidreload.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidreload.txt
new file mode 100644
index 00000000..e7cb2681
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8e57e1db-4e76-4191-bdfd-5dfd784e7e51/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8e57e1db-4e76-4191-bdfd-5dfd784e7e51/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/vms/{vm_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstart.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstart.txt
new file mode 100644
index 00000000..2b95114d
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstart.txt
@@ -0,0 +1,35 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/e72a8ec8-7a40-468d-848a-5724bed910b4/start' -d '{"iourc_content": "test"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/e72a8ec8-7a40-468d-848a-5724bed910b4/start HTTP/1.1
+{
+ "iourc_content": "test"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 707
+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/vms/{vm_id}/start
+
+{
+ "command_line": "",
+ "console": 5000,
+ "ethernet_adapters": 2,
+ "iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp356zfu7_/iourc",
+ "l1_keepalives": false,
+ "md5sum": null,
+ "name": "PC TEST 1",
+ "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/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/e72a8ec8-7a40-468d-848a-5724bed910b4",
+ "vm_id": "e72a8ec8-7a40-468d-848a-5724bed910b4"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstop.txt b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstop.txt
new file mode 100644
index 00000000..9441a608
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidiouvmsvmidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/5a676511-d443-4773-85c4-93f1bc3758e7/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/5a676511-d443-4773-85c4-93f1bc3758e7/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/vms/{vm_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidportsudp.txt b/docs/api/examples/compute_post_projectsprojectidportsudp.txt
new file mode 100644
index 00000000..9d7dde4f
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidportsudp.txt
@@ -0,0 +1,17 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 25
+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}/ports/udp
+
+{
+ "udp_port": 10000
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvms.txt b/docs/api/examples/compute_post_projectsprojectidqemuvms.txt
new file mode 100644
index 00000000..9785abc6
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvms.txt
@@ -0,0 +1,61 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "linux\u8f7d.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64", "ram": 1024}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
+{
+ "hda_disk_image": "linux\u8f7d.img",
+ "name": "PC TEST 1",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64",
+ "ram": 1024
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1432
+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/vms
+
+{
+ "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:ef:09:00",
+ "name": "PC TEST 1",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64",
+ "ram": 1024,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/be7f16c4-01b2-42e7-8846-16065d11ef09",
+ "vm_id": "be7f16c4-01b2-42e7-8846-16065d11ef09"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..b4f19c90
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,21 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/55fc0ab7-0a5a-4b4c-b5a5-a9313f364cb8/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/55fc0ab7-0a5a-4b4c-b5a5-a9313f364cb8/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/vms/{vm_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_projectsprojectidqemuvmsvmidreload.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidreload.txt
new file mode 100644
index 00000000..a055aafe
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/716f2aca-e422-421e-9865-849f6ff01b2e/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/716f2aca-e422-421e-9865-849f6ff01b2e/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/vms/{vm_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidresume.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidresume.txt
new file mode 100644
index 00000000..9a715942
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidresume.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b93ed4a2-d0d6-47f1-a3e2-21abe898e2e8/resume' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b93ed4a2-d0d6-47f1-a3e2-21abe898e2e8/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/vms/{vm_id}/resume
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstart.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstart.txt
new file mode 100644
index 00000000..8a7c6aa5
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstart.txt
@@ -0,0 +1,56 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/5f379553-70e5-4c88-9f70-0747e3e34f45/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/5f379553-70e5-4c88-9f70-0747e3e34f45/start HTTP/1.1
+{}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1386
+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/vms/{vm_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:4f:45:00",
+ "name": "PC TEST 1",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64",
+ "ram": 256,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/5f379553-70e5-4c88-9f70-0747e3e34f45",
+ "vm_id": "5f379553-70e5-4c88-9f70-0747e3e34f45"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstop.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstop.txt
new file mode 100644
index 00000000..fdb68471
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/cbcaff9c-2f3c-4766-97dd-1e3f54609bfd/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/cbcaff9c-2f3c-4766-97dd-1e3f54609bfd/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/vms/{vm_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidsuspend.txt b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidsuspend.txt
new file mode 100644
index 00000000..06c434fa
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidqemuvmsvmidsuspend.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5fa5b3a-cd39-4c42-a1d3-613ef7936b6c/suspend' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5fa5b3a-cd39-4c42-a1d3-613ef7936b6c/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/vms/{vm_id}/suspend
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvms.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvms.txt
new file mode 100644
index 00000000..741cfd0f
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvms.txt
@@ -0,0 +1,33 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms' -d '{"linked_clone": false, "name": "VM1", "vmname": "VM1"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
+{
+ "linked_clone": false,
+ "name": "VM1",
+ "vmname": "VM1"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 409
+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/vms
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5000,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "VM1",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vm_id": "0a91c27a-6156-4b00-8818-75e3370b4bee",
+ "vmname": "VM1"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..8e0b97c4
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/a48b4347-88b4-4d6f-b965-5ed51a216544/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/vms/a48b4347-88b4-4d6f-b965-5ed51a216544/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/vms/{vm_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_projectsprojectidvirtualboxvmsvmidreload.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidreload.txt
new file mode 100644
index 00000000..fe89b1ca
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/6923f5c6-6ff7-43d1-9fec-53d228104d3e/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/6923f5c6-6ff7-43d1-9fec-53d228104d3e/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/vms/{vm_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidresume.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidresume.txt
new file mode 100644
index 00000000..706e270c
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidresume.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/18efaad3-f45a-43d9-9422-e897e8f4ea58/resume' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/18efaad3-f45a-43d9-9422-e897e8f4ea58/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/vms/{vm_id}/resume
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstart.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstart.txt
new file mode 100644
index 00000000..beb0008b
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstart.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/d164e5ac-71b1-4c59-9003-f181982ea67b/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/d164e5ac-71b1-4c59-9003-f181982ea67b/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/vms/{vm_id}/start
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstop.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstop.txt
new file mode 100644
index 00000000..afc7d348
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f2c00f2a-138e-427d-a477-0ef0a252764a/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f2c00f2a-138e-427d-a477-0ef0a252764a/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/vms/{vm_id}/stop
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidsuspend.txt b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidsuspend.txt
new file mode 100644
index 00000000..cd39a438
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvirtualboxvmsvmidsuspend.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f7a224c9-7ca3-44f0-b1f0-82029bfdbe5b/suspend' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f7a224c9-7ca3-44f0-b1f0-82029bfdbe5b/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/vms/{vm_id}/suspend
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsvms.txt b/docs/api/examples/compute_post_projectsprojectidvpcsvms.txt
new file mode 100644
index 00000000..8490a24e
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsvms.txt
@@ -0,0 +1,28 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms' -d '{"name": "PC TEST 1"}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
+{
+ "name": "PC TEST 1"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 485
+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/vms
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/1e20bab7-560c-4432-988d-ed8a9a833935",
+ "vm_id": "1e20bab7-560c-4432-988d-ed8a9a833935"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
new file mode 100644
index 00000000..18c28f7b
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,25 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/c8548218-7f1f-44da-8627-32b5c2cc3184/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/vms/c8548218-7f1f-44da-8627-32b5c2cc3184/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/vms/{vm_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_projectsprojectidvpcsvmsvmidreload.txt b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidreload.txt
new file mode 100644
index 00000000..47280052
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidreload.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f7032e04-f8db-4394-9672-26332d94ce2c/reload' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f7032e04-f8db-4394-9672-26332d94ce2c/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/vms/{vm_id}/reload
+
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstart.txt b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstart.txt
new file mode 100644
index 00000000..f3954b49
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstart.txt
@@ -0,0 +1,26 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f22e4107-6032-4f4c-9d07-03b4377f363d/start' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f22e4107-6032-4f4c-9d07-03b4377f363d/start HTTP/1.1
+{}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 485
+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/vms/{vm_id}/start
+
+{
+ "command_line": "",
+ "console": 5009,
+ "console_type": "telnet",
+ "name": "PC TEST 1",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "startup_script": null,
+ "startup_script_path": null,
+ "status": "stopped",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/f22e4107-6032-4f4c-9d07-03b4377f363d",
+ "vm_id": "f22e4107-6032-4f4c-9d07-03b4377f363d"
+}
diff --git a/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstop.txt b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstop.txt
new file mode 100644
index 00000000..8366145a
--- /dev/null
+++ b/docs/api/examples/compute_post_projectsprojectidvpcsvmsvmidstop.txt
@@ -0,0 +1,13 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbc0758e-ffa4-4f6c-87cc-dc57213c19f2/stop' -d '{}'
+
+POST /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbc0758e-ffa4-4f6c-87cc-dc57213c19f2/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/vms/{vm_id}/stop
+
diff --git a/docs/api/examples/compute_post_qemuimg.txt b/docs/api/examples/compute_post_qemuimg.txt
new file mode 100644
index 00000000..89f26cfb
--- /dev/null
+++ b/docs/api/examples/compute_post_qemuimg.txt
@@ -0,0 +1,22 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/qemu/img' -d '{"cluster_size": 64, "format": "qcow2", "lazy_refcounts": "off", "path": "/tmp/hda.qcow2", "preallocation": "metadata", "qemu_img": "/tmp/qemu-img", "refcount_bits": 12, "size": 100}'
+
+POST /v2/compute/qemu/img HTTP/1.1
+{
+ "cluster_size": 64,
+ "format": "qcow2",
+ "lazy_refcounts": "off",
+ "path": "/tmp/hda.qcow2",
+ "preallocation": "metadata",
+ "qemu_img": "/tmp/qemu-img",
+ "refcount_bits": 12,
+ "size": 100
+}
+
+
+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/compute/qemu/img
+
diff --git a/docs/api/examples/compute_post_version.txt b/docs/api/examples/compute_post_version.txt
new file mode 100644
index 00000000..fefa9a79
--- /dev/null
+++ b/docs/api/examples/compute_post_version.txt
@@ -0,0 +1,19 @@
+curl -i -X POST 'http://localhost:3080/v2/compute/version' -d '{"version": "2.0.0dev1"}'
+
+POST /v2/compute/version HTTP/1.1
+{
+ "version": "2.0.0dev1"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 30
+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/version
+
+{
+ "version": "2.0.0dev1"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectid.txt b/docs/api/examples/compute_put_projectsprojectid.txt
new file mode 100644
index 00000000..8356390c
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectid.txt
@@ -0,0 +1,21 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/90010203-0405-0607-0809-0a0b0c0d0e0b' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-6/test_update_path_project_non_l0"}'
+
+PUT /v2/compute/projects/90010203-0405-0607-0809-0a0b0c0d0e0b HTTP/1.1
+{
+ "name": "second_name",
+ "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-6/test_update_path_project_non_l0"
+}
+
+
+HTTP/1.1 403
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 96
+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}
+
+{
+ "message": "You are not allowed to modify the project directory path",
+ "status": 403
+}
diff --git a/docs/api/examples/compute_put_projectsprojectiddockervmsvmid.txt b/docs/api/examples/compute_put_projectsprojectiddockervmsvmid.txt
new file mode 100644
index 00000000..dfa8be1d
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectiddockervmsvmid.txt
@@ -0,0 +1,34 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/0bfa9e76-9d26-467e-a66e-a696ffaf71ac' -d '{"console": 5002, "environment": "GNS3=1\nGNS4=0", "name": "test", "start_command": "yes"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/docker/vms/0bfa9e76-9d26-467e-a66e-a696ffaf71ac 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: 570
+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/vms/{vm_id}
+
+{
+ "adapters": 2,
+ "aux": 5001,
+ "console": 5002,
+ "console_resolution": "1280x1024",
+ "console_type": "telnet",
+ "container_id": "8bd8153ea8f5",
+ "environment": "GNS3=1\nGNS4=0",
+ "image": "nginx",
+ "name": "test",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "start_command": "yes",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/docker/0bfa9e76-9d26-467e-a66e-a696ffaf71ac",
+ "vm_id": "0bfa9e76-9d26-467e-a66e-a696ffaf71ac"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidiouvmsvmid.txt b/docs/api/examples/compute_put_projectsprojectidiouvmsvmid.txt
new file mode 100644
index 00000000..bc9c3dcd
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidiouvmsvmid.txt
@@ -0,0 +1,44 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/bb979a40-caac-4ca0-8671-1e38abb7e2b6' -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/vms/bb979a40-caac-4ca0-8671-1e38abb7e2b6 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: 718
+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/vms/{vm_id}
+
+{
+ "command_line": "",
+ "console": 5001,
+ "ethernet_adapters": 4,
+ "iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmptyk_4hlj/iourc",
+ "l1_keepalives": true,
+ "md5sum": null,
+ "name": "test",
+ "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/tmpkojiv29w/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/bb979a40-caac-4ca0-8671-1e38abb7e2b6",
+ "vm_id": "bb979a40-caac-4ca0-8671-1e38abb7e2b6"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidqemuvmsvmid.txt b/docs/api/examples/compute_put_projectsprojectidqemuvmsvmid.txt
new file mode 100644
index 00000000..0cb70816
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidqemuvmsvmid.txt
@@ -0,0 +1,61 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d40f6848-e424-4230-8b63-63eeacfcf9c9' -d '{"console": 5001, "hdb_disk_image": "linux.img", "name": "test", "ram": 1024}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d40f6848-e424-4230-8b63-63eeacfcf9c9 HTTP/1.1
+{
+ "console": 5001,
+ "hdb_disk_image": "linux.img",
+ "name": "test",
+ "ram": 1024
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 1391
+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/vms/{vm_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:f9:c9:00",
+ "name": "test",
+ "options": "",
+ "platform": "x86_64",
+ "process_priority": "low",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpnowycx1r/qemu-system-x86_64",
+ "ram": 1024,
+ "usage": "",
+ "vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/d40f6848-e424-4230-8b63-63eeacfcf9c9",
+ "vm_id": "d40f6848-e424-4230-8b63-63eeacfcf9c9"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidvirtualboxvmsvmid.txt b/docs/api/examples/compute_put_projectsprojectidvirtualboxvmsvmid.txt
new file mode 100644
index 00000000..fddfad79
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidvirtualboxvmsvmid.txt
@@ -0,0 +1,32 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3b2b7168-b8b1-4a85-8729-f888b8c6ed16' -d '{"console": 5010, "name": "test"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3b2b7168-b8b1-4a85-8729-f888b8c6ed16 HTTP/1.1
+{
+ "console": 5010,
+ "name": "test"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 413
+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/vms/{vm_id}
+
+{
+ "acpi_shutdown": false,
+ "adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
+ "adapters": 0,
+ "console": 5010,
+ "enable_remote_console": false,
+ "headless": false,
+ "name": "test",
+ "project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
+ "ram": 0,
+ "use_any_adapter": false,
+ "vm_directory": null,
+ "vm_id": "3b2b7168-b8b1-4a85-8729-f888b8c6ed16",
+ "vmname": "VMTEST"
+}
diff --git a/docs/api/examples/compute_put_projectsprojectidvpcsvmsvmid.txt b/docs/api/examples/compute_put_projectsprojectidvpcsvmsvmid.txt
new file mode 100644
index 00000000..ebc59520
--- /dev/null
+++ b/docs/api/examples/compute_put_projectsprojectidvpcsvmsvmid.txt
@@ -0,0 +1,30 @@
+curl -i -X PUT 'http://localhost:3080/v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/8b17dfd4-185e-4262-9a01-84bf79013dde' -d '{"console": 5011, "name": "test", "startup_script": "ip 192.168.1.1"}'
+
+PUT /v2/compute/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/8b17dfd4-185e-4262-9a01-84bf79013dde HTTP/1.1
+{
+ "console": 5011,
+ "name": "test",
+ "startup_script": "ip 192.168.1.1"
+}
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 501
+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/vms/{vm_id}
+
+{
+ "command_line": "",
+ "console": 5011,
+ "console_type": "telnet",
+ "name": "test",
+ "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/tmp6mbvw0cn/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/8b17dfd4-185e-4262-9a01-84bf79013dde",
+ "vm_id": "8b17dfd4-185e-4262-9a01-84bf79013dde"
+}
diff --git a/docs/api/examples/controller_delete_projectsprojectid.txt b/docs/api/examples/controller_delete_projectsprojectid.txt
index bc1a6a20..d7b99d2b 100644
--- a/docs/api/examples/controller_delete_projectsprojectid.txt
+++ b/docs/api/examples/controller_delete_projectsprojectid.txt
@@ -1,6 +1,6 @@
-curl -i -X DELETE 'http://localhost:3080/v2/projects/e9125918-e385-48b2-8b51-0a58b0aedc26'
+curl -i -X DELETE 'http://localhost:3080/v2/projects/6f210376-f8d1-4cb2-a1b0-2fd5dfbf29bd'
-DELETE /v2/projects/e9125918-e385-48b2-8b51-0a58b0aedc26 HTTP/1.1
+DELETE /v2/projects/6f210376-f8d1-4cb2-a1b0-2fd5dfbf29bd HTTP/1.1
diff --git a/docs/api/examples/controller_delete_projectsprojectidlinkslinkid.txt b/docs/api/examples/controller_delete_projectsprojectidlinkslinkid.txt
index a38f6a71..7263f0ec 100644
--- a/docs/api/examples/controller_delete_projectsprojectidlinkslinkid.txt
+++ b/docs/api/examples/controller_delete_projectsprojectidlinkslinkid.txt
@@ -1,6 +1,6 @@
-curl -i -X DELETE 'http://localhost:3080/v2/projects/b16e5e4f-0bca-457d-bc09-4c21c3bc8ce6/links/6e92a937-ca19-468c-89b8-4a0978ab9c63'
+curl -i -X DELETE 'http://localhost:3080/v2/projects/849aaa26-5af3-4595-b96c-cc50e5644397/links/e04359bf-3cc5-44ef-9856-4448cf105fb7'
-DELETE /v2/projects/b16e5e4f-0bca-457d-bc09-4c21c3bc8ce6/links/6e92a937-ca19-468c-89b8-4a0978ab9c63 HTTP/1.1
+DELETE /v2/projects/849aaa26-5af3-4595-b96c-cc50e5644397/links/e04359bf-3cc5-44ef-9856-4448cf105fb7 HTTP/1.1
diff --git a/docs/api/examples/controller_get_projectsprojectid.txt b/docs/api/examples/controller_get_projectsprojectid.txt
new file mode 100644
index 00000000..6a1a7a14
--- /dev/null
+++ b/docs/api/examples/controller_get_projectsprojectid.txt
@@ -0,0 +1,20 @@
+curl -i -X GET 'http://localhost:3080/v2/projects/515c9f5a-b288-4e62-96a6-50eed6946861'
+
+GET /v2/projects/515c9f5a-b288-4e62-96a6-50eed6946861 HTTP/1.1
+
+
+
+HTTP/1.1 200
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 122
+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}
+
+{
+ "name": "test",
+ "path": null,
+ "project_id": "515c9f5a-b288-4e62-96a6-50eed6946861",
+ "temporary": false
+}
diff --git a/docs/api/examples/controller_post_computes.txt b/docs/api/examples/controller_post_computes.txt
new file mode 100644
index 00000000..5160d4b3
--- /dev/null
+++ b/docs/api/examples/controller_post_computes.txt
@@ -0,0 +1,29 @@
+curl -i -X POST 'http://localhost:3080/v2/computes' -d '{"compute_id": "my_compute_id", "host": "example.com", "password": "secure", "port": 84, "protocol": "http", "user": "julien"}'
+
+POST /v2/computes HTTP/1.1
+{
+ "compute_id": "my_compute_id",
+ "host": "example.com",
+ "password": "secure",
+ "port": 84,
+ "protocol": "http",
+ "user": "julien"
+}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 150
+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_post_projectsprojectidclose.txt b/docs/api/examples/controller_post_projectsprojectidclose.txt
index 802a0268..e91ead12 100644
--- a/docs/api/examples/controller_post_projectsprojectidclose.txt
+++ b/docs/api/examples/controller_post_projectsprojectidclose.txt
@@ -1,6 +1,6 @@
-curl -i -X POST 'http://localhost:3080/v2/projects/6f734cbe-2109-4b01-803d-082f5fbca7ee/close' -d '{}'
+curl -i -X POST 'http://localhost:3080/v2/projects/636fa08b-8a67-44b7-8cd9-637653b783ae/close' -d '{}'
-POST /v2/projects/6f734cbe-2109-4b01-803d-082f5fbca7ee/close HTTP/1.1
+POST /v2/projects/636fa08b-8a67-44b7-8cd9-637653b783ae/close HTTP/1.1
{}
diff --git a/docs/api/examples/controller_post_projectsprojectidcommit.txt b/docs/api/examples/controller_post_projectsprojectidcommit.txt
index d5f61c01..c3c3b935 100644
--- a/docs/api/examples/controller_post_projectsprojectidcommit.txt
+++ b/docs/api/examples/controller_post_projectsprojectidcommit.txt
@@ -1,6 +1,6 @@
-curl -i -X POST 'http://localhost:3080/v2/projects/34e69920-237f-4162-a0bc-f53272726603/commit' -d '{}'
+curl -i -X POST 'http://localhost:3080/v2/projects/81e32394-8666-4a2b-80f2-cae39cd92cfb/commit' -d '{}'
-POST /v2/projects/34e69920-237f-4162-a0bc-f53272726603/commit HTTP/1.1
+POST /v2/projects/81e32394-8666-4a2b-80f2-cae39cd92cfb/commit HTTP/1.1
{}
diff --git a/docs/api/examples/controller_post_projectsprojectidlinks.txt b/docs/api/examples/controller_post_projectsprojectidlinks.txt
index 76d89602..fe6fb69b 100644
--- a/docs/api/examples/controller_post_projectsprojectidlinks.txt
+++ b/docs/api/examples/controller_post_projectsprojectidlinks.txt
@@ -1,17 +1,17 @@
-curl -i -X POST 'http://localhost:3080/v2/projects/6693d45f-ea1b-4b25-878c-333b179cb7dc/links' -d '{"vms": [{"adapter_number": 0, "port_number": 3, "vm_id": "0f1f5a24-4f91-4779-b6ce-3e0f4754fef0"}, {"adapter_number": 2, "port_number": 4, "vm_id": "28701ffc-e393-46a0-981f-eb4d67611fde"}]}'
+curl -i -X POST 'http://localhost:3080/v2/projects/51200341-1056-4d3b-9d20-51c24269ddbc/links' -d '{"vms": [{"adapter_number": 0, "port_number": 3, "vm_id": "985a6c14-12af-49f3-87db-6e1a57afc78d"}, {"adapter_number": 2, "port_number": 4, "vm_id": "2393894a-afa9-4721-8412-768000fd5139"}]}'
-POST /v2/projects/6693d45f-ea1b-4b25-878c-333b179cb7dc/links HTTP/1.1
+POST /v2/projects/51200341-1056-4d3b-9d20-51c24269ddbc/links HTTP/1.1
{
"vms": [
{
"adapter_number": 0,
"port_number": 3,
- "vm_id": "0f1f5a24-4f91-4779-b6ce-3e0f4754fef0"
+ "vm_id": "985a6c14-12af-49f3-87db-6e1a57afc78d"
},
{
"adapter_number": 2,
"port_number": 4,
- "vm_id": "28701ffc-e393-46a0-981f-eb4d67611fde"
+ "vm_id": "2393894a-afa9-4721-8412-768000fd5139"
}
]
}
@@ -26,17 +26,17 @@ SERVER: Python/3.5 GNS3/2.0.0dev1
X-ROUTE: /v2/projects/{project_id}/links
{
- "link_id": "e662f691-6ac5-4833-876a-e4eb83157b9e",
+ "link_id": "7428a49b-5dd3-4f62-841c-6c84410cea43",
"vms": [
{
"adapter_number": 0,
"port_number": 3,
- "vm_id": "0f1f5a24-4f91-4779-b6ce-3e0f4754fef0"
+ "vm_id": "985a6c14-12af-49f3-87db-6e1a57afc78d"
},
{
"adapter_number": 2,
"port_number": 4,
- "vm_id": "28701ffc-e393-46a0-981f-eb4d67611fde"
+ "vm_id": "2393894a-afa9-4721-8412-768000fd5139"
}
]
}
diff --git a/docs/api/examples/controller_post_projectsprojectidvms.txt b/docs/api/examples/controller_post_projectsprojectidvms.txt
index 1a004c18..2ff486e5 100644
--- a/docs/api/examples/controller_post_projectsprojectidvms.txt
+++ b/docs/api/examples/controller_post_projectsprojectidvms.txt
@@ -1,6 +1,6 @@
-curl -i -X POST 'http://localhost:3080/v2/projects/40743a17-5552-4ccc-aedb-648f9577c5ce/vms' -d '{"compute_id": "example.com", "name": "test", "properties": {"startup_script": "echo test"}, "vm_type": "vpcs"}'
+curl -i -X POST 'http://localhost:3080/v2/projects/f8094ada-6a80-40c9-a674-ded9f69eeb7b/vms' -d '{"compute_id": "example.com", "name": "test", "properties": {"startup_script": "echo test"}, "vm_type": "vpcs"}'
-POST /v2/projects/40743a17-5552-4ccc-aedb-648f9577c5ce/vms HTTP/1.1
+POST /v2/projects/f8094ada-6a80-40c9-a674-ded9f69eeb7b/vms HTTP/1.1
{
"compute_id": "example.com",
"name": "test",
@@ -24,10 +24,10 @@ X-ROUTE: /v2/projects/{project_id}/vms
"console": 2048,
"console_type": "telnet",
"name": "test",
- "project_id": "40743a17-5552-4ccc-aedb-648f9577c5ce",
+ "project_id": "f8094ada-6a80-40c9-a674-ded9f69eeb7b",
"properties": {
"startup_script": "echo test"
},
- "vm_id": "bca482df-96d4-46d4-aeed-5b38e874c6b0",
+ "vm_id": "f6c1ed76-dd59-4064-b7b6-7a3f1655d1c4",
"vm_type": "vpcs"
}
diff --git a/docs/api/examples/controller_post_projectsprojectidvmsvmidreload.txt b/docs/api/examples/controller_post_projectsprojectidvmsvmidreload.txt
new file mode 100644
index 00000000..a99f8e3a
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidvmsvmidreload.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/8bb8e263-bdae-4ad1-83eb-ef7b91364992/vms/0e8e3dfe-5ceb-4d5d-bb4a-36ecd8a692ef/reload' -d '{}'
+
+POST /v2/projects/8bb8e263-bdae-4ad1-83eb-ef7b91364992/vms/0e8e3dfe-5ceb-4d5d-bb4a-36ecd8a692ef/reload HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 262
+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}/vms/{vm_id}/reload
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "project_id": "8bb8e263-bdae-4ad1-83eb-ef7b91364992",
+ "properties": {},
+ "vm_id": "0e8e3dfe-5ceb-4d5d-bb4a-36ecd8a692ef",
+ "vm_type": "vpcs"
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidvmsvmidstart.txt b/docs/api/examples/controller_post_projectsprojectidvmsvmidstart.txt
new file mode 100644
index 00000000..a6e2f695
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidvmsvmidstart.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/9d6bc27d-2cc4-417e-95b1-fa8fc9eeeff8/vms/bfc7163f-bb7b-4f6d-b567-aa4df82e1fd4/start' -d '{}'
+
+POST /v2/projects/9d6bc27d-2cc4-417e-95b1-fa8fc9eeeff8/vms/bfc7163f-bb7b-4f6d-b567-aa4df82e1fd4/start HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 262
+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}/vms/{vm_id}/start
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "project_id": "9d6bc27d-2cc4-417e-95b1-fa8fc9eeeff8",
+ "properties": {},
+ "vm_id": "bfc7163f-bb7b-4f6d-b567-aa4df82e1fd4",
+ "vm_type": "vpcs"
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidvmsvmidstop.txt b/docs/api/examples/controller_post_projectsprojectidvmsvmidstop.txt
new file mode 100644
index 00000000..6033d6e5
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidvmsvmidstop.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/e29a18dc-ea4a-488e-976f-290394fa4a95/vms/70971eed-f085-449b-b1a5-0373a6ac6de4/stop' -d '{}'
+
+POST /v2/projects/e29a18dc-ea4a-488e-976f-290394fa4a95/vms/70971eed-f085-449b-b1a5-0373a6ac6de4/stop HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 262
+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}/vms/{vm_id}/stop
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "project_id": "e29a18dc-ea4a-488e-976f-290394fa4a95",
+ "properties": {},
+ "vm_id": "70971eed-f085-449b-b1a5-0373a6ac6de4",
+ "vm_type": "vpcs"
+}
diff --git a/docs/api/examples/controller_post_projectsprojectidvmsvmidsuspend.txt b/docs/api/examples/controller_post_projectsprojectidvmsvmidsuspend.txt
new file mode 100644
index 00000000..888c8a1c
--- /dev/null
+++ b/docs/api/examples/controller_post_projectsprojectidvmsvmidsuspend.txt
@@ -0,0 +1,24 @@
+curl -i -X POST 'http://localhost:3080/v2/projects/54d66e90-0795-41ad-9fa2-051dac0567a3/vms/8e678384-a991-4968-b311-186daef709d4/suspend' -d '{}'
+
+POST /v2/projects/54d66e90-0795-41ad-9fa2-051dac0567a3/vms/8e678384-a991-4968-b311-186daef709d4/suspend HTTP/1.1
+{}
+
+
+HTTP/1.1 201
+ACCESS-CONTROL-ALLOW-ORIGIN: *
+CONTENT-LENGTH: 262
+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}/vms/{vm_id}/suspend
+
+{
+ "compute_id": "example.com",
+ "console": null,
+ "console_type": "telnet",
+ "name": "test",
+ "project_id": "54d66e90-0795-41ad-9fa2-051dac0567a3",
+ "properties": {},
+ "vm_id": "8e678384-a991-4968-b311-186daef709d4",
+ "vm_type": "vpcs"
+}
diff --git a/docs/api/v2/compute/config.rst b/docs/api/v2/compute/config.rst
new file mode 100644
index 00000000..5f404149
--- /dev/null
+++ b/docs/api/v2/compute/config.rst
@@ -0,0 +1,8 @@
+Config
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ config/*
diff --git a/docs/api/v2/compute/config/configreload.rst b/docs/api/v2/compute/config/configreload.rst
new file mode 100644
index 00000000..8b4d6d9d
--- /dev/null
+++ b/docs/api/v2/compute/config/configreload.rst
@@ -0,0 +1,20 @@
+/v2/compute/config/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/config/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Check if version is the same as the server
+
+Response status codes
+**********************
+- **201**: Config reload
+- **403**: Config reload refused
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_configreload.txt
+
diff --git a/docs/api/v2/compute/docker.rst b/docs/api/v2/compute/docker.rst
new file mode 100644
index 00000000..c035c8fd
--- /dev/null
+++ b/docs/api/v2/compute/docker.rst
@@ -0,0 +1,8 @@
+Docker
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ docker/*
diff --git a/docs/api/v2/compute/docker/dockerimages.rst b/docs/api/v2/compute/docker/dockerimages.rst
new file mode 100644
index 00000000..f09ae4fd
--- /dev/null
+++ b/docs/api/v2/compute/docker/dockerimages.rst
@@ -0,0 +1,13 @@
+/v2/compute/docker/images
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/docker/images
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get all available Docker images
+
+Response status codes
+**********************
+- **200**: Success
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervms.rst b/docs/api/v2/compute/docker/projectsprojectiddockervms.rst
new file mode 100644
index 00000000..c22d1bb2
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervms.rst
@@ -0,0 +1,58 @@
+/v2/compute/projects/{project_id}/docker/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+ vm_id | | string | Docker VM instance identifier |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsid.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsid.rst
new file mode 100644
index 00000000..e3336f85
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsid.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/docker/vms/{id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+DELETE /v2/compute/projects/**{project_id}**/docker/vms/**{id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Docker container
+
+Parameters
+**********
+- **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
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsidreload.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsidreload.rst
new file mode 100644
index 00000000..481afacd
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsidreload.rst
@@ -0,0 +1,59 @@
+/v2/compute/projects/{project_id}/docker/vms/{id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Restart a Docker container
+
+Parameters
+**********
+- **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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+ vm_id | | string | Docker VM instance identifier |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsidstart.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsidstart.rst
new file mode 100644
index 00000000..0202f798
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsidstart.rst
@@ -0,0 +1,59 @@
+/v2/compute/projects/{project_id}/docker/vms/{id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Docker container
+
+Parameters
+**********
+- **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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+ vm_id | | string | Docker VM instance identifier |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsidstop.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsidstop.rst
new file mode 100644
index 00000000..85d4e20d
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsidstop.rst
@@ -0,0 +1,59 @@
+/v2/compute/projects/{project_id}/docker/vms/{id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Docker container
+
+Parameters
+**********
+- **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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+ vm_id | | string | Docker VM instance identifier |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsidsuspend.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsidsuspend.rst
new file mode 100644
index 00000000..f3d3d368
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsidsuspend.rst
@@ -0,0 +1,59 @@
+/v2/compute/projects/{project_id}/docker/vms/{id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Pause a Docker container
+
+Parameters
+**********
+- **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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ environment | | ['string', 'null'] | Docker environment |
+ image | | string | Docker image name |
+ name | | string | Docker container name |
+ start_command | | ['string', 'null'] | Docker CMD entry |
+ vm_id | | string | Docker VM instance identifier |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapters | ✔ | ['integer', 'null'] | number of adapters |
+ aux | ✔ | integer | auxilary TCP port |
+ console | ✔ | integer | console TCP port |
+ console_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsvmid.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmid.rst
new file mode 100644
index 00000000..1ed204c7
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmid.rst
@@ -0,0 +1,64 @@
+/v2/compute/projects/{project_id}/docker/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+PUT /v2/compute/projects/**{project_id}**/docker/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Docker instance
+
+Parameters
+**********
+- **vm_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_resolution | | ['string', 'null'] | console resolution for VNC |
+ console_type | | enum | Possible values: telnet, vnc |
+ 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_resolution | ✔ | string | console resolution for VNC |
+ console_type | ✔ | enum | Possible values: telnet, vnc |
+ container_id | ✔ | string | Docker container ID |
+ environment | ✔ | ['string', 'null'] | Docker environment |
+ image | ✔ | string | Docker image name |
+ name | | string | Docker container name |
+ project_id | ✔ | string | Project UUID |
+ start_command | ✔ | ['string', 'null'] | Docker CMD entry |
+ vm_directory | ✔ | string | |
+ vm_id | ✔ | string | Docker container instance UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectiddockervmsvmid.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..00cc8d70
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/docker/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{vm_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
+- **id**: ID of the container
+- **port_number**: Port on the adapter
+- **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_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/docker/vms/**{vm_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
+- **id**: ID of the container
+- **port_number**: Port on the adapter
+- **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_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..94b4bc08
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,39 @@
+/v2/compute/projects/{project_id}/docker/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter
+- **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 | | string | PCAP data link type |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
+
diff --git a/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..a3222bd0
--- /dev/null
+++ b/docs/api/v2/compute/docker/projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,29 @@
+/v2/compute/projects/{project_id}/docker/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/docker/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectiddockervmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
+
diff --git a/docs/api/v2/compute/dynamips_device.rst b/docs/api/v2/compute/dynamips_device.rst
new file mode 100644
index 00000000..2135b93d
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device.rst
@@ -0,0 +1,8 @@
+Dynamips device
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ dynamips_device/*
diff --git a/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevices.rst b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevices.rst
new file mode 100644
index 00000000..e09628ca
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevices.rst
@@ -0,0 +1,43 @@
+/v2/compute/projects/{project_id}/dynamips/devices
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/devices
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new Dynamips device 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 |
+ device_id | | | Dynamips device instance identifier |
+ device_type | ✔ | string | Dynamips device type |
+ name | ✔ | string | Dynamips device name |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ device_id | ✔ | string | Dynamips router instance UUID |
+ mappings | | object | |
+ name | ✔ | string | Dynamips device instance name |
+ ports | | array | |
+ project_id | ✔ | string | Project UUID |
+
+
diff --git a/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceid.rst b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceid.rst
new file mode 100644
index 00000000..967f0664
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceid.rst
@@ -0,0 +1,107 @@
+/v2/compute/projects/{project_id}/dynamips/devices/{device_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a Dynamips device instance
+
+Parameters
+**********
+- **device_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 |
+ device_id | ✔ | string | Dynamips router instance UUID |
+ mappings | | object | |
+ name | ✔ | string | Dynamips device instance name |
+ ports | | array | |
+ project_id | ✔ | string | Project UUID |
+
+
+
+PUT /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Dynamips device instance
+
+Parameters
+**********
+- **device_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
+*******
+Types
++++++++++
+EthernetSwitchPort
+^^^^^^^^^^^^^^^^^^^^^^
+Ethernet switch port
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ ethertype | | enum | Possible values: , 0x8100, 0x88A8, 0x9100, 0x9200 |
+ port | ✔ | integer | Port number |
+ type | ✔ | enum | Possible values: access, dot1q, qinq |
+ vlan | ✔ | integer | VLAN number |
+
+
+Body
++++++++++
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | string | Dynamips device instance name |
+ ports | | array | |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ device_id | ✔ | string | Dynamips router instance UUID |
+ mappings | | object | |
+ name | ✔ | string | Dynamips device instance name |
+ ports | | array | |
+ project_id | ✔ | string | Project UUID |
+
+
+
+DELETE /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Dynamips device instance
+
+Parameters
+**********
+- **device_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_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdnio.rst b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdnio.rst
new file mode 100644
index 00000000..f0ca33a3
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdnio.rst
@@ -0,0 +1,151 @@
+/v2/compute/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add a NIO to a Dynamips device instance
+
+Parameters
+**********
+- **port_number**: Port on the device
+- **device_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
+
+Input
+*******
+Types
++++++++++
+Ethernet
+^^^^^^^^^^^^^^^^^^^^^^
+Generic Ethernet Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ ethernet_device | ✔ | string | Ethernet device name e.g. eth0 |
+ type | ✔ | enum | Possible values: nio_generic_ethernet |
+
+
+LinuxEthernet
+^^^^^^^^^^^^^^^^^^^^^^
+Linux Ethernet Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ ethernet_device | ✔ | string | Ethernet device name e.g. eth0 |
+ type | ✔ | enum | Possible values: nio_linux_ethernet |
+
+
+NAT
+^^^^^^^^^^^^^^^^^^^^^^
+NAT Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ type | ✔ | enum | Possible values: nio_nat |
+
+
+NULL
+^^^^^^^^^^^^^^^^^^^^^^
+NULL Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ type | ✔ | enum | Possible values: nio_null |
+
+
+TAP
+^^^^^^^^^^^^^^^^^^^^^^
+TAP Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ tap_device | ✔ | string | TAP device name e.g. tap0 |
+ type | ✔ | enum | Possible values: nio_tap |
+
+
+UDP
+^^^^^^^^^^^^^^^^^^^^^^
+UDP Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ lport | ✔ | integer | Local port |
+ rhost | ✔ | string | Remote host |
+ rport | ✔ | integer | Remote port |
+ type | ✔ | enum | Possible values: nio_udp |
+
+
+UNIX
+^^^^^^^^^^^^^^^^^^^^^^
+UNIX Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ local_file | ✔ | string | path to the UNIX socket file (local) |
+ remote_file | ✔ | string | path to the UNIX socket file (remote) |
+ type | ✔ | enum | Possible values: nio_unix |
+
+
+VDE
+^^^^^^^^^^^^^^^^^^^^^^
+VDE Network Input/Output
+
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ control_file | ✔ | string | path to the VDE control file |
+ local_file | ✔ | string | path to the VDE control file |
+ type | ✔ | enum | Possible values: nio_vde |
+
+
+Body
++++++++++
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ mappings | | object | |
+ nio | ✔ | UDP, Ethernet, LinuxEthernet, NAT, TAP, UNIX, VDE, NULL | |
+ port_settings | | object | Ethernet switch |
+
+
+
+DELETE /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Remove a NIO from a Dynamips device instance
+
+Parameters
+**********
+- **port_number**: Port on the device
+- **device_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_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstartcapture.rst b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..be2bad85
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstartcapture.rst
@@ -0,0 +1,31 @@
+/v2/compute/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/start_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a packet capture on a Dynamips device instance
+
+Parameters
+**********
+- **port_number**: Port on the device
+- **device_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 | | string | PCAP data link type |
+
+
diff --git a/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstopcapture.rst b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..36bd36b0
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_device/projectsprojectiddynamipsdevicesdeviceidportsportnumberdstopcapture.rst
@@ -0,0 +1,21 @@
+/v2/compute/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/stop_capture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a packet capture on a Dynamips device instance
+
+Parameters
+**********
+- **port_number**: Port on the device
+- **device_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.rst b/docs/api/v2/compute/dynamips_vm.rst
new file mode 100644
index 00000000..b8b7c175
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm.rst
@@ -0,0 +1,8 @@
+Dynamips vm
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ dynamips_vm/*
diff --git a/docs/api/v2/compute/dynamips_vm/dynamipsvms.rst b/docs/api/v2/compute/dynamips_vm/dynamipsvms.rst
new file mode 100644
index 00000000..f2bbf9f7
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/dynamipsvms.rst
@@ -0,0 +1,13 @@
+/v2/compute/dynamips/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/dynamips/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of Dynamips VMS
+
+Response status codes
+**********************
+- **200**: List of Dynamips VM retrieved
+
diff --git a/docs/api/v2/compute/dynamips_vm/dynamipsvmspath.rst b/docs/api/v2/compute/dynamips_vm/dynamipsvmspath.rst
new file mode 100644
index 00000000..1fb5667d
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/dynamipsvmspath.rst
@@ -0,0 +1,13 @@
+/v2/compute/dynamips/vms/{path}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/dynamips/vms/**{path}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload Dynamips image.
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvms.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvms.rst
new file mode 100644
index 00000000..97f1d49f
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvms.rst
@@ -0,0 +1,125 @@
+/v2/compute/projects/{project_id}/dynamips/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ 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 |
+ vm_id | | | Dynamips VM instance identifier |
+ 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 |
+ 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 | |
+ vm_id | ✔ | string | Dynamips router instance UUID |
+ 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/projectsprojectiddynamipsvmsvmid.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmid.rst
new file mode 100644
index 00000000..0ccc8c2d
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmid.rst
@@ -0,0 +1,208 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | Dynamips router instance UUID |
+ 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/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | Dynamips router instance UUID |
+ 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/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..6e9587a1
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,40 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter
+- **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/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter
+- **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/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..1a36c2bc
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter
+- **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 | | string | PCAP data link type |
+
+
diff --git a/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..373dd759
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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/projectsprojectiddynamipsvmsvmidautoidlepc.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidautoidlepc.rst
new file mode 100644
index 00000000..2c66e0bb
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidautoidlepc.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/auto_idlepc
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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/projectsprojectiddynamipsvmsvmidconfigs.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidconfigs.rst
new file mode 100644
index 00000000..e299e745
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidconfigs.rst
@@ -0,0 +1,25 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/configs
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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/projectsprojectiddynamipsvmsvmidconfigssave.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidconfigssave.rst
new file mode 100644
index 00000000..1317001c
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidconfigssave.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/configs/save
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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/projectsprojectiddynamipsvmsvmididlepcproposals.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmididlepcproposals.rst
new file mode 100644
index 00000000..f76d2dc5
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmididlepcproposals.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/idlepc_proposals
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_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/projectsprojectiddynamipsvmsvmidreload.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidreload.rst
new file mode 100644
index 00000000..e3ae84e3
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidreload.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectiddynamipsvmsvmidresume.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidresume.rst
new file mode 100644
index 00000000..39b007b7
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidresume.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectiddynamipsvmsvmidstart.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidstart.rst
new file mode 100644
index 00000000..b359e383
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidstart.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectiddynamipsvmsvmidstop.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidstop.rst
new file mode 100644
index 00000000..b68df58b
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidstop.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectiddynamipsvmsvmidsuspend.rst b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidsuspend.rst
new file mode 100644
index 00000000..1d4ef693
--- /dev/null
+++ b/docs/api/v2/compute/dynamips_vm/projectsprojectiddynamipsvmsvmidsuspend.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/dynamips/vms/{vm_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/dynamips/vms/**{vm_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a Dynamips VM instance
+
+Parameters
+**********
+- **vm_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/file.rst b/docs/api/v2/compute/file.rst
new file mode 100644
index 00000000..d3de2171
--- /dev/null
+++ b/docs/api/v2/compute/file.rst
@@ -0,0 +1,8 @@
+File
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ file/*
diff --git a/docs/api/v2/compute/file/filesstream.rst b/docs/api/v2/compute/file/filesstream.rst
new file mode 100644
index 00000000..92241f0c
--- /dev/null
+++ b/docs/api/v2/compute/file/filesstream.rst
@@ -0,0 +1,24 @@
+/v2/compute/files/stream
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/files/stream
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stream a file from the server
+
+Response status codes
+**********************
+- **200**: File retrieved
+- **409**: Can't access to file
+- **404**: File doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ location | ✔ | ['string'] | File path |
+
+
diff --git a/docs/api/v2/compute/iou.rst b/docs/api/v2/compute/iou.rst
new file mode 100644
index 00000000..e209e419
--- /dev/null
+++ b/docs/api/v2/compute/iou.rst
@@ -0,0 +1,8 @@
+Iou
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ iou/*
diff --git a/docs/api/v2/compute/iou/iouvms.rst b/docs/api/v2/compute/iou/iouvms.rst
new file mode 100644
index 00000000..da91ddf9
--- /dev/null
+++ b/docs/api/v2/compute/iou/iouvms.rst
@@ -0,0 +1,19 @@
+/v2/compute/iou/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/iou/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of IOU VMS
+
+Response status codes
+**********************
+- **200**: List of IOU VM retrieved
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_iouvms.txt
+
diff --git a/docs/api/v2/compute/iou/iouvmspath.rst b/docs/api/v2/compute/iou/iouvmspath.rst
new file mode 100644
index 00000000..5e841982
--- /dev/null
+++ b/docs/api/v2/compute/iou/iouvmspath.rst
@@ -0,0 +1,13 @@
+/v2/compute/iou/vms/{path}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/iou/vms/**{path}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload IOU image.
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvms.rst b/docs/api/v2/compute/iou/projectsprojectidiouvms.rst
new file mode 100644
index 00000000..67ade917
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvms.rst
@@ -0,0 +1,74 @@
+/v2/compute/projects/{project_id}/iou/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ 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 |
+ vm_id | | | IOU VM identifier |
+
+
+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 |
+ 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 | |
+ vm_id | ✔ | string | IOU VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiouvms.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmid.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmid.rst
new file mode 100644
index 00000000..1544edd0
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmid.rst
@@ -0,0 +1,142 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a IOU instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | IOU VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidiouvmsvmid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a IOU instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | IOU VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidiouvmsvmid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a IOU instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidiouvmsvmid.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..99469248
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port where the nio should be added
+- **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_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port from where the nio should be removed
+- **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_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..d3f0214a
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,39 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter
+- **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 | | string | PCAP data link type |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..39f06fff
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,29 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigs.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigs.rst
new file mode 100644
index 00000000..c311df47
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigs.rst
@@ -0,0 +1,31 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/configs
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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_projectsprojectidiouvmsvmidconfigs.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigssave.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigssave.rst
new file mode 100644
index 00000000..b2f15917
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidconfigssave.rst
@@ -0,0 +1,15 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/configs/save
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_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/projectsprojectidiouvmsvmidreload.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidreload.rst
new file mode 100644
index 00000000..59610f3c
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a IOU instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidiouvmsvmidreload.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstart.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstart.rst
new file mode 100644
index 00000000..e9a739e7
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstart.rst
@@ -0,0 +1,60 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a IOU instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | IOU VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidiouvmsvmidstart.txt
+
diff --git a/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstop.rst b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstop.rst
new file mode 100644
index 00000000..594e0371
--- /dev/null
+++ b/docs/api/v2/compute/iou/projectsprojectidiouvmsvmidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/iou/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/iou/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a IOU instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidiouvmsvmidstop.txt
+
diff --git a/docs/api/v2/compute/network.rst b/docs/api/v2/compute/network.rst
new file mode 100644
index 00000000..1b2ae186
--- /dev/null
+++ b/docs/api/v2/compute/network.rst
@@ -0,0 +1,8 @@
+Network
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ network/*
diff --git a/docs/api/v2/compute/network/interfaces.rst b/docs/api/v2/compute/network/interfaces.rst
new file mode 100644
index 00000000..4146c264
--- /dev/null
+++ b/docs/api/v2/compute/network/interfaces.rst
@@ -0,0 +1,19 @@
+/v2/compute/interfaces
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/interfaces
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+List all the network interfaces available on the server
+
+Response status codes
+**********************
+- **200**: OK
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_interfaces.txt
+
diff --git a/docs/api/v2/compute/network/projectsprojectidportsudp.rst b/docs/api/v2/compute/network/projectsprojectidportsudp.rst
new file mode 100644
index 00000000..bbdb019d
--- /dev/null
+++ b/docs/api/v2/compute/network/projectsprojectidportsudp.rst
@@ -0,0 +1,24 @@
+/v2/compute/projects/{project_id}/ports/udp
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/ports/udp
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Allocate an UDP port on the server
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **201**: UDP port allocated
+- **404**: The project doesn't exist
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidportsudp.txt
+
diff --git a/docs/api/v2/compute/notification.rst b/docs/api/v2/compute/notification.rst
new file mode 100644
index 00000000..04f43e18
--- /dev/null
+++ b/docs/api/v2/compute/notification.rst
@@ -0,0 +1,8 @@
+Notification
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ notification/*
diff --git a/docs/api/v2/compute/notification/notificationsws.rst b/docs/api/v2/compute/notification/notificationsws.rst
new file mode 100644
index 00000000..e33af507
--- /dev/null
+++ b/docs/api/v2/compute/notification/notificationsws.rst
@@ -0,0 +1,13 @@
+/v2/compute/notifications/ws
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/notifications/ws
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Send notifications about what happend using websockets
+
+Response status codes
+**********************
+- **200**: OK
+
diff --git a/docs/api/v2/compute/project.rst b/docs/api/v2/compute/project.rst
new file mode 100644
index 00000000..75acbf89
--- /dev/null
+++ b/docs/api/v2/compute/project.rst
@@ -0,0 +1,8 @@
+Project
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ project/*
diff --git a/docs/api/v2/compute/project/projects.rst b/docs/api/v2/compute/project/projects.rst
new file mode 100644
index 00000000..c9fc0ff1
--- /dev/null
+++ b/docs/api/v2/compute/project/projects.rst
@@ -0,0 +1,60 @@
+/v2/compute/projects
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+List projects opened on the server
+
+Response status codes
+**********************
+- **200**: Project list
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projects.txt
+
+
+POST /v2/compute/projects
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a new project on the server
+
+Response status codes
+**********************
+- **201**: Project created
+- **403**: You are not allowed to modify this property
+- **409**: Project already created
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Project directory |
+ project_id | | ['string', 'null'] | Project UUID |
+ temporary | | boolean | If project is a temporary project |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Project directory |
+ project_id | ✔ | string | Project UUID |
+ temporary | ✔ | boolean | If project is a temporary project |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projects.txt
+
diff --git a/docs/api/v2/compute/project/projectsprojectid.rst b/docs/api/v2/compute/project/projectsprojectid.rst
new file mode 100644
index 00000000..cb6845f1
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectid.rst
@@ -0,0 +1,100 @@
+/v2/compute/projects/{project_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get project information
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Success
+- **404**: The project doesn't exist
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Project directory |
+ project_id | ✔ | string | Project UUID |
+ temporary | ✔ | boolean | If project is a temporary project |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a project
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: The project has been updated
+- **403**: You are not allowed to modify this property
+- **404**: The project doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Path of the project on the server (work only with --local) |
+ temporary | | boolean | If project is a temporary project |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Project directory |
+ project_id | ✔ | string | Project UUID |
+ temporary | ✔ | boolean | If project is a temporary project |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a project from disk
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **404**: The project doesn't exist
+- **204**: Changes have been written on disk
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_delete_projectsprojectid.txt
+
diff --git a/docs/api/v2/compute/project/projectsprojectidclose.rst b/docs/api/v2/compute/project/projectsprojectidclose.rst
new file mode 100644
index 00000000..cacc758d
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidclose.rst
@@ -0,0 +1,24 @@
+/v2/compute/projects/{project_id}/close
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/close
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Close a project
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **404**: The project doesn't exist
+- **204**: The project has been closed
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidclose.txt
+
diff --git a/docs/api/v2/compute/project/projectsprojectidcommit.rst b/docs/api/v2/compute/project/projectsprojectidcommit.rst
new file mode 100644
index 00000000..e2d60d61
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidcommit.rst
@@ -0,0 +1,24 @@
+/v2/compute/projects/{project_id}/commit
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/commit
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Write changes on disk
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **404**: The project doesn't exist
+- **204**: Changes have been written on disk
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidcommit.txt
+
diff --git a/docs/api/v2/compute/project/projectsprojectidexport.rst b/docs/api/v2/compute/project/projectsprojectidexport.rst
new file mode 100644
index 00000000..f80c784d
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidexport.rst
@@ -0,0 +1,18 @@
+/v2/compute/projects/{project_id}/export
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/export
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Export a project as a portable archive
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Return the file
+- **404**: The project doesn't exist
+
diff --git a/docs/api/v2/compute/project/projectsprojectidfiles.rst b/docs/api/v2/compute/project/projectsprojectidfiles.rst
new file mode 100644
index 00000000..9f48cdb5
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidfiles.rst
@@ -0,0 +1,18 @@
+/v2/compute/projects/{project_id}/files
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+List files of a project
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Return list of files
+- **404**: The project doesn't exist
+
diff --git a/docs/api/v2/compute/project/projectsprojectidfilespath.rst b/docs/api/v2/compute/project/projectsprojectidfilespath.rst
new file mode 100644
index 00000000..2d550328
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidfilespath.rst
@@ -0,0 +1,34 @@
+/v2/compute/projects/{project_id}/files/{path:.+}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/files/**{path:.+}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a file of 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
+
+
+POST /v2/compute/projects/**{project_id}**/files/**{path:.+}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a file of a project
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Return the file
+- **403**: Permission denied
+- **404**: The path doesn't exist
+
diff --git a/docs/api/v2/compute/project/projectsprojectidimport.rst b/docs/api/v2/compute/project/projectsprojectidimport.rst
new file mode 100644
index 00000000..6f6edf92
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidimport.rst
@@ -0,0 +1,30 @@
+/v2/compute/projects/{project_id}/import
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/import
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Import a project from a portable archive
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: Project imported
+- **403**: You are not allowed to modify this property
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ name | | ['string', 'null'] | Project name |
+ path | | ['string', 'null'] | Project directory |
+ project_id | ✔ | string | Project UUID |
+ temporary | ✔ | boolean | If project is a temporary project |
+
+
diff --git a/docs/api/v2/compute/project/projectsprojectidnotifications.rst b/docs/api/v2/compute/project/projectsprojectidnotifications.rst
new file mode 100644
index 00000000..56a9a776
--- /dev/null
+++ b/docs/api/v2/compute/project/projectsprojectidnotifications.rst
@@ -0,0 +1,18 @@
+/v2/compute/projects/{project_id}/notifications
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/notifications
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Receive notifications about the projects
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: End of stream
+- **404**: The project doesn't exist
+
diff --git a/docs/api/v2/compute/qemu.rst b/docs/api/v2/compute/qemu.rst
new file mode 100644
index 00000000..5c46b504
--- /dev/null
+++ b/docs/api/v2/compute/qemu.rst
@@ -0,0 +1,8 @@
+Qemu
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ qemu/*
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvms.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvms.rst
new file mode 100644
index 00000000..4d007e1a
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvms.rst
@@ -0,0 +1,119 @@
+/v2/compute/projects/{project_id}/qemu/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ 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 |
+ vm_id | | | QEMU VM identifier |
+
+
+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 |
+ 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 | |
+ vm_id | ✔ | string | QEMU VM uuid |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemuvms.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmid.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmid.rst
new file mode 100644
index 00000000..5a980abc
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmid.rst
@@ -0,0 +1,211 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a Qemu VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | QEMU VM uuid |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidqemuvmsvmid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a Qemu VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | QEMU VM uuid |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidqemuvmsvmid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a Qemu VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidqemuvmsvmid.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..bda5baae
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectidqemuvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidreload.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidreload.rst
new file mode 100644
index 00000000..bcaa7c7c
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a Qemu VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidqemuvmsvmidreload.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidresume.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidresume.rst
new file mode 100644
index 00000000..7f56b6f3
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidresume.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a Qemu VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidqemuvmsvmidresume.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstart.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstart.rst
new file mode 100644
index 00000000..00b50e4c
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstart.rst
@@ -0,0 +1,74 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a Qemu VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | QEMU VM uuid |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidqemuvmsvmidstart.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstop.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstop.rst
new file mode 100644
index 00000000..ad766af3
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a Qemu VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidqemuvmsvmidstop.txt
+
diff --git a/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidsuspend.rst b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidsuspend.rst
new file mode 100644
index 00000000..b99f74bd
--- /dev/null
+++ b/docs/api/v2/compute/qemu/projectsprojectidqemuvmsvmidsuspend.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/qemu/vms/{vm_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/qemu/vms/**{vm_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a Qemu VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidqemuvmsvmidsuspend.txt
+
diff --git a/docs/api/v2/compute/qemu/qemubinaries.rst b/docs/api/v2/compute/qemu/qemubinaries.rst
new file mode 100644
index 00000000..702b89f0
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemubinaries.rst
@@ -0,0 +1,30 @@
+/v2/compute/qemu/binaries
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/qemu/binaries
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a list of available Qemu binaries
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ archs | | array | Architectures to filter binaries by |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_qemubinaries.txt
+
diff --git a/docs/api/v2/compute/qemu/qemucapabilities.rst b/docs/api/v2/compute/qemu/qemucapabilities.rst
new file mode 100644
index 00000000..eeb70e2f
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemucapabilities.rst
@@ -0,0 +1,28 @@
+/v2/compute/qemu/capabilities
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/qemu/capabilities
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a list of Qemu capabilities on this server
+
+Response status codes
+**********************
+- **200**: Success
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ kvm | | array | Architectures that KVM is enabled for |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_qemucapabilities.txt
+
diff --git a/docs/api/v2/compute/qemu/qemuimg.rst b/docs/api/v2/compute/qemu/qemuimg.rst
new file mode 100644
index 00000000..cc7644ff
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemuimg.rst
@@ -0,0 +1,39 @@
+/v2/compute/qemu/img
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/qemu/img
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Create a Qemu image
+
+Response status codes
+**********************
+- **201**: Image created
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ adapter_type | | enum | Possible values: ide, lsilogic, buslogic, legacyESX |
+ cluster_size | | integer | |
+ format | ✔ | enum | Possible values: qcow2, qcow, vpc, vdi, vmdk, raw |
+ lazy_refcounts | | enum | Possible values: on, off |
+ path | ✔ | string | Absolute or relative path of the image |
+ preallocation | | enum | Possible values: off, metadata, falloc, full |
+ qemu_img | ✔ | string | Path to the qemu-img binary |
+ refcount_bits | | integer | |
+ size | ✔ | integer | Image size in M |
+ static | | enum | Possible values: on, off |
+ subformat | | enum | Possible values: dynamic, fixed, streamOptimized, twoGbMaxExtentSparse, twoGbMaxExtentFlat, monolithicSparse, monolithicFlat |
+ zeroed_grain | | enum | Possible values: on, off |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_qemuimg.txt
+
diff --git a/docs/api/v2/compute/qemu/qemuimgbinaries.rst b/docs/api/v2/compute/qemu/qemuimgbinaries.rst
new file mode 100644
index 00000000..2704b127
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemuimgbinaries.rst
@@ -0,0 +1,15 @@
+/v2/compute/qemu/img-binaries
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/qemu/img-binaries
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a list of available Qemu-img binaries
+
+Response status codes
+**********************
+- **200**: Success
+- **400**: Invalid request
+- **404**: Instance doesn't exist
+
diff --git a/docs/api/v2/compute/qemu/qemuvms.rst b/docs/api/v2/compute/qemu/qemuvms.rst
new file mode 100644
index 00000000..bcd55d85
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemuvms.rst
@@ -0,0 +1,13 @@
+/v2/compute/qemu/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/qemu/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the list of Qemu images
+
+Response status codes
+**********************
+- **200**: List of Qemu images retrieved
+
diff --git a/docs/api/v2/compute/qemu/qemuvmspath.rst b/docs/api/v2/compute/qemu/qemuvmspath.rst
new file mode 100644
index 00000000..b64b6235
--- /dev/null
+++ b/docs/api/v2/compute/qemu/qemuvmspath.rst
@@ -0,0 +1,13 @@
+/v2/compute/qemu/vms/{path:.+}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/qemu/vms/**{path:.+}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upload Qemu image.
+
+Response status codes
+**********************
+- **204**: Image uploaded
+
diff --git a/docs/api/v2/compute/version.rst b/docs/api/v2/compute/version.rst
new file mode 100644
index 00000000..70939776
--- /dev/null
+++ b/docs/api/v2/compute/version.rst
@@ -0,0 +1,8 @@
+Version
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ version/*
diff --git a/docs/api/v2/compute/version/version.rst b/docs/api/v2/compute/version/version.rst
new file mode 100644
index 00000000..92d4113a
--- /dev/null
+++ b/docs/api/v2/compute/version/version.rst
@@ -0,0 +1,65 @@
+/v2/compute/version
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/version
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Retrieve the server version number
+
+Response status codes
+**********************
+- **200**: OK
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ local | | boolean | Either this is a local server |
+ version | ✔ | string | Version number human readable |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_version.txt
+
+
+POST /v2/compute/version
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Check if version is the same as the server
+
+Response status codes
+**********************
+- **200**: Same version
+- **409**: Invalid version
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ local | | boolean | Either this is a local server |
+ version | ✔ | string | Version number human readable |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ local | | boolean | Either this is a local server |
+ version | ✔ | string | Version number human readable |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_version.txt
+
diff --git a/docs/api/v2/compute/virtualbox.rst b/docs/api/v2/compute/virtualbox.rst
new file mode 100644
index 00000000..1a0cf671
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox.rst
@@ -0,0 +1,8 @@
+Virtualbox
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ virtualbox/*
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvms.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvms.rst
new file mode 100644
index 00000000..616dc360
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvms.rst
@@ -0,0 +1,66 @@
+/v2/compute/projects/{project_id}/virtualbox/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ ram | | integer | Amount of RAM |
+ use_any_adapter | | boolean | allow GNS3 to use any VirtualBox adapter |
+ vm_id | | | VirtualBox VM instance identifier |
+ 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 |
+ 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'] | |
+ vm_id | ✔ | string | VirtualBox VM instance UUID |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvirtualboxvms.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmid.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmid.rst
new file mode 100644
index 00000000..ef85bd4e
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmid.rst
@@ -0,0 +1,125 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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'] | |
+ vm_id | ✔ | string | VirtualBox VM instance UUID |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidvirtualboxvmsvmid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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'] | |
+ vm_id | ✔ | string | VirtualBox VM instance UUID |
+ vmname | | string | VirtualBox VM name (in VirtualBox itself) |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidvirtualboxvmsvmid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..3d3aeabd
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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_projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..a22a15a8
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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 | | string | PCAP data link type |
+
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..605fb776
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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/projectsprojectidvirtualboxvmsvmidreload.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidreload.rst
new file mode 100644
index 00000000..188d515a
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvirtualboxvmsvmidreload.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidresume.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidresume.rst
new file mode 100644
index 00000000..f6ab4b33
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidresume.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvirtualboxvmsvmidresume.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstart.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstart.rst
new file mode 100644
index 00000000..1611cabd
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstart.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvirtualboxvmsvmidstart.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstop.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstop.rst
new file mode 100644
index 00000000..3300458f
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvirtualboxvmsvmidstop.txt
+
diff --git a/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidsuspend.rst b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidsuspend.rst
new file mode 100644
index 00000000..d6192fd7
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/projectsprojectidvirtualboxvmsvmidsuspend.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/virtualbox/vms/{vm_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/virtualbox/vms/**{vm_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a VirtualBox VM instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvirtualboxvmsvmidsuspend.txt
+
diff --git a/docs/api/v2/compute/virtualbox/virtualboxvms.rst b/docs/api/v2/compute/virtualbox/virtualboxvms.rst
new file mode 100644
index 00000000..630fd130
--- /dev/null
+++ b/docs/api/v2/compute/virtualbox/virtualboxvms.rst
@@ -0,0 +1,13 @@
+/v2/compute/virtualbox/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/virtualbox/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get all VirtualBox VMs available
+
+Response status codes
+**********************
+- **200**: Success
+
diff --git a/docs/api/v2/compute/vmware.rst b/docs/api/v2/compute/vmware.rst
new file mode 100644
index 00000000..3b1b5582
--- /dev/null
+++ b/docs/api/v2/compute/vmware.rst
@@ -0,0 +1,8 @@
+Vmware
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ vmware/*
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarevms.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevms.rst
new file mode 100644
index 00000000..a382382d
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevms.rst
@@ -0,0 +1,60 @@
+/v2/compute/projects/{project_id}/vmware/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ use_any_adapter | | boolean | allow GNS3 to use any VMware adapter |
+ use_ubridge | | boolean | use uBridge for network connections |
+ vm_id | | string | VMware VM instance identifier |
+ 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 |
+ 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'] | |
+ vm_id | ✔ | string | VMware VM instance UUID |
+ vmx_path | | string | path to the vmx file |
+
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmid.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmid.rst
new file mode 100644
index 00000000..68a3ebcf
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmid.rst
@@ -0,0 +1,113 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VMware VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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'] | |
+ vm_id | ✔ | string | VMware VM instance UUID |
+ vmx_path | | string | path to the vmx file |
+
+
+
+PUT /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VMware VM instance
+
+Parameters
+**********
+- **vm_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 |
+ 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'] | |
+ vm_id | ✔ | string | VMware VM instance UUID |
+ vmx_path | | string | path to the vmx file |
+
+
+
+DELETE /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VMware VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..d8db64f7
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,40 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
new file mode 100644
index 00000000..b6567eb0
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstartcapture.rst
@@ -0,0 +1,32 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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 | | string | PCAP data link type |
+
+
diff --git a/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
new file mode 100644
index 00000000..9fa91d04
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidadaptersadapternumberdportsportnumberdstopcapture.rst
@@ -0,0 +1,22 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port on the adapter (always 0)
+- **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/projectsprojectidvmwarevmsvmidinterfacesvmnet.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidinterfacesvmnet.rst
new file mode 100644
index 00000000..4399de2f
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidinterfacesvmnet.rst
@@ -0,0 +1,18 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/interfaces/vmnet
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/interfaces/vmnet
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Allocate a VMware VMnet interface on the server
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidreload.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidreload.rst
new file mode 100644
index 00000000..7edff1f2
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidreload.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VMware VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidresume.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidresume.rst
new file mode 100644
index 00000000..28f6aae6
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidresume.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/resume
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/resume
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Resume a suspended VMware VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidstart.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidstart.rst
new file mode 100644
index 00000000..e64b72e2
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidstart.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VMware VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidstop.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidstop.rst
new file mode 100644
index 00000000..8866ee02
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidstop.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VMware VM instance
+
+Parameters
+**********
+- **vm_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/projectsprojectidvmwarevmsvmidsuspend.rst b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidsuspend.rst
new file mode 100644
index 00000000..eb096698
--- /dev/null
+++ b/docs/api/v2/compute/vmware/projectsprojectidvmwarevmsvmidsuspend.rst
@@ -0,0 +1,20 @@
+/v2/compute/projects/{project_id}/vmware/vms/{vm_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vmware/vms/**{vm_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Suspend a VMware VM instance
+
+Parameters
+**********
+- **vm_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/vmware/vmwarevms.rst b/docs/api/v2/compute/vmware/vmwarevms.rst
new file mode 100644
index 00000000..e1f9f8cd
--- /dev/null
+++ b/docs/api/v2/compute/vmware/vmwarevms.rst
@@ -0,0 +1,13 @@
+/v2/compute/vmware/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/vmware/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get all VMware VMs available
+
+Response status codes
+**********************
+- **200**: Success
+
diff --git a/docs/api/v2/compute/vpcs.rst b/docs/api/v2/compute/vpcs.rst
new file mode 100644
index 00000000..30db7c0b
--- /dev/null
+++ b/docs/api/v2/compute/vpcs.rst
@@ -0,0 +1,8 @@
+Vpcs
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ vpcs/*
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvms.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvms.rst
new file mode 100644
index 00000000..b888e61b
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvms.rst
@@ -0,0 +1,56 @@
+/v2/compute/projects/{project_id}/vpcs/vms
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/vms
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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 |
+ startup_script | | ['string', 'null'] | Content of the VPCS startup script |
+ vm_id | | | VPCS VM identifier |
+
+
+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 |
+ 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 | |
+ vm_id | ✔ | string | VPCS VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsvms.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmid.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmid.rst
new file mode 100644
index 00000000..f04bc769
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmid.rst
@@ -0,0 +1,119 @@
+/v2/compute/projects/{project_id}/vpcs/vms/{vm_id}
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Get a VPCS instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | VPCS VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_get_projectsprojectidvpcsvmsvmid.txt
+
+
+PUT /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Update a VPCS instance
+
+Parameters
+**********
+- **vm_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 |
+
+
+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 |
+ 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 | |
+ vm_id | ✔ | string | VPCS VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_put_projectsprojectidvpcsvmsvmid.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Delete a VPCS instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvpcsvmsvmid.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.rst
new file mode 100644
index 00000000..56b9a73b
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.rst
@@ -0,0 +1,52 @@
+/v2/compute/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port where the nio should be added
+- **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_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
+
+DELETE /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_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
+- **vm_id**: UUID for the instance
+- **port_number**: Port from where the nio should be removed
+- **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_projectsprojectidvpcsvmsvmidadaptersadapternumberdportsportnumberdnio.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidreload.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidreload.rst
new file mode 100644
index 00000000..60e843b8
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidreload.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/vpcs/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VPCS instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvpcsvmsvmidreload.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstart.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstart.rst
new file mode 100644
index 00000000..a2bcb951
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstart.rst
@@ -0,0 +1,44 @@
+/v2/compute/projects/{project_id}/vpcs/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VPCS instance
+
+Parameters
+**********
+- **vm_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 |
+ 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 | |
+ vm_id | ✔ | string | VPCS VM UUID |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/compute_post_projectsprojectidvpcsvmsvmidstart.txt
+
diff --git a/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstop.rst b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstop.rst
new file mode 100644
index 00000000..2ee7b551
--- /dev/null
+++ b/docs/api/v2/compute/vpcs/projectsprojectidvpcsvmsvmidstop.rst
@@ -0,0 +1,26 @@
+/v2/compute/projects/{project_id}/vpcs/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/compute/projects/**{project_id}**/vpcs/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop a VPCS instance
+
+Parameters
+**********
+- **vm_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_projectsprojectidvpcsvmsvmidstop.txt
+
diff --git a/docs/api/v2/controller/compute.rst b/docs/api/v2/controller/compute.rst
new file mode 100644
index 00000000..48fca5db
--- /dev/null
+++ b/docs/api/v2/controller/compute.rst
@@ -0,0 +1,8 @@
+Compute
+-----------------------------
+
+.. toctree::
+ :glob:
+ :maxdepth: 2
+
+ compute/*
diff --git a/docs/api/v2/controller/compute/s.rst b/docs/api/v2/controller/compute/s.rst
new file mode 100644
index 00000000..c4395ac4
--- /dev/null
+++ b/docs/api/v2/controller/compute/s.rst
@@ -0,0 +1,42 @@
+/v2/computes
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/computes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Register a compute
+
+Response status codes
+**********************
+- **201**: Compute added
+
+Input
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | ✔ | string | Server identifier |
+ host | ✔ | string | Server host |
+ password | | string | Password for auth |
+ port | ✔ | integer | Server port |
+ protocol | ✔ | enum | Possible values: http, https |
+ user | | string | User for auth |
+
+
+Output
+*******
+.. raw:: html
+
+
+ Name | Mandatory | Type | Description |
+ compute_id | ✔ | string | Server identifier |
+ connected | | boolean | True if controller is connected to the compute |
+ host | ✔ | string | Server host |
+ port | ✔ | integer | Server port |
+ protocol | ✔ | enum | Possible values: http, https |
+ user | | string | User for auth |
+ version | | ['string', 'null'] | Version of the GNS3 remote compute |
+
+
diff --git a/docs/api/v2/controller/compute/sshutdown.rst b/docs/api/v2/controller/compute/sshutdown.rst
new file mode 100644
index 00000000..185ba5b9
--- /dev/null
+++ b/docs/api/v2/controller/compute/sshutdown.rst
@@ -0,0 +1,14 @@
+/v2/computes/shutdown
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/computes/shutdown
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Shutdown the local compute
+
+Response status codes
+**********************
+- **201**: Compute is shutting down
+- **403**: Compute shutdown refused
+
diff --git a/docs/api/v2/controller/link/projectsprojectidlinkslinkid.rst b/docs/api/v2/controller/link/projectsprojectidlinkslinkid.rst
index 1db5a39a..77bf986a 100644
--- a/docs/api/v2/controller/link/projectsprojectidlinkslinkid.rst
+++ b/docs/api/v2/controller/link/projectsprojectidlinkslinkid.rst
@@ -9,8 +9,8 @@ Delete a link instance
Parameters
**********
-- **project_id**: UUID for the project
- **link_id**: UUID of the link
+- **project_id**: UUID for the project
Response status codes
**********************
diff --git a/docs/api/v2/controller/project/projectsprojectidnotifications.rst b/docs/api/v2/controller/project/projectsprojectidnotifications.rst
new file mode 100644
index 00000000..8cc66fae
--- /dev/null
+++ b/docs/api/v2/controller/project/projectsprojectidnotifications.rst
@@ -0,0 +1,18 @@
+/v2/projects/{project_id}/notifications
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/projects/**{project_id}**/notifications
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Receive notifications about the projects
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: End of stream
+- **404**: The project doesn't exist
+
diff --git a/docs/api/v2/controller/project/projectsprojectidnotificationsws.rst b/docs/api/v2/controller/project/projectsprojectidnotificationsws.rst
new file mode 100644
index 00000000..ceb3d181
--- /dev/null
+++ b/docs/api/v2/controller/project/projectsprojectidnotificationsws.rst
@@ -0,0 +1,18 @@
+/v2/projects/{project_id}/notifications/ws
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+GET /v2/projects/**{project_id}**/notifications/ws
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Receive notifications about the projects via Websocket
+
+Parameters
+**********
+- **project_id**: The UUID of the project
+
+Response status codes
+**********************
+- **200**: End of stream
+- **404**: The project doesn't exist
+
diff --git a/docs/api/v2/controller/vm/projectsprojectidvmsvmidreload.rst b/docs/api/v2/controller/vm/projectsprojectidvmsvmidreload.rst
new file mode 100644
index 00000000..314c2812
--- /dev/null
+++ b/docs/api/v2/controller/vm/projectsprojectidvmsvmidreload.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/vms/{vm_id}/reload
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/vms/**{vm_id}**/reload
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Reload a VM instance
+
+Parameters
+**********
+- **vm_id**: UUID for the VM
+- **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 | Hypervisor identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | ✔ | string | VM name |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+ vm_id | | string | VM identifier |
+ vm_type | ✔ | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidvmsvmidreload.txt
+
diff --git a/docs/api/v2/controller/vm/projectsprojectidvmsvmidstart.rst b/docs/api/v2/controller/vm/projectsprojectidvmsvmidstart.rst
new file mode 100644
index 00000000..65d98ea1
--- /dev/null
+++ b/docs/api/v2/controller/vm/projectsprojectidvmsvmidstart.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/vms/{vm_id}/start
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/vms/**{vm_id}**/start
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VM instance
+
+Parameters
+**********
+- **vm_id**: UUID for the VM
+- **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 | Hypervisor identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | ✔ | string | VM name |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+ vm_id | | string | VM identifier |
+ vm_type | ✔ | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidvmsvmidstart.txt
+
diff --git a/docs/api/v2/controller/vm/projectsprojectidvmsvmidstop.rst b/docs/api/v2/controller/vm/projectsprojectidvmsvmidstop.rst
new file mode 100644
index 00000000..83300608
--- /dev/null
+++ b/docs/api/v2/controller/vm/projectsprojectidvmsvmidstop.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/vms/{vm_id}/stop
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/vms/**{vm_id}**/stop
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VM instance
+
+Parameters
+**********
+- **vm_id**: UUID for the VM
+- **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 | Hypervisor identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | ✔ | string | VM name |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+ vm_id | | string | VM identifier |
+ vm_type | ✔ | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidvmsvmidstop.txt
+
diff --git a/docs/api/v2/controller/vm/projectsprojectidvmsvmidsuspend.rst b/docs/api/v2/controller/vm/projectsprojectidvmsvmidsuspend.rst
new file mode 100644
index 00000000..e20f5488
--- /dev/null
+++ b/docs/api/v2/controller/vm/projectsprojectidvmsvmidsuspend.rst
@@ -0,0 +1,41 @@
+/v2/projects/{project_id}/vms/{vm_id}/suspend
+------------------------------------------------------------------------------------------------------------------------------------------
+
+.. contents::
+
+POST /v2/projects/**{project_id}**/vms/**{vm_id}**/suspend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Start a VM instance
+
+Parameters
+**********
+- **vm_id**: UUID for the VM
+- **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 | Hypervisor identifier |
+ console | | ['integer', 'null'] | Console TCP port |
+ console_type | | enum | Possible values: serial, vnc, telnet |
+ name | ✔ | string | VM name |
+ project_id | | string | Project identifier |
+ properties | | object | Properties specific to an emulator |
+ vm_id | | string | VM identifier |
+ vm_type | ✔ | enum | Possible values: docker, dynamips, vpcs, virtualbox, vmware, iou |
+
+
+Sample session
+***************
+
+
+.. literalinclude:: ../../../examples/controller_post_projectsprojectidvmsvmidsuspend.txt
+