diff --git a/v2.0/api_samples/network-post-req.json b/v2.0/api_samples/network-post-req.json new file mode 100644 index 0000000..52075f4 --- /dev/null +++ b/v2.0/api_samples/network-post-req.json @@ -0,0 +1,7 @@ +{ + "network": + { + "name": "sample_network", + "admin_state_up": false + } +} \ No newline at end of file diff --git a/v2.0/api_samples/network-post-req.xml b/v2.0/api_samples/network-post-req.xml new file mode 100644 index 0000000..e39bc94 --- /dev/null +++ b/v2.0/api_samples/network-post-req.xml @@ -0,0 +1,3 @@ + + sample_network + diff --git a/v2.0/api_samples/network-post-resp.json b/v2.0/api_samples/network-post-resp.json new file mode 100644 index 0000000..83d5ae2 --- /dev/null +++ b/v2.0/api_samples/network-post-resp.json @@ -0,0 +1,13 @@ +{ + "network":{ + "admin_state_up":true, + "id":"850d3f2c-f0a5-4f8b-b1cf-5836fc0be940", + "name":"sample_network", + "shared":false, + "status":"ACTIVE", + "subnets":[ + + ], + "tenant_id":"f667b69e4d6749749ef3bcba7251d9ce" + } +} diff --git a/v2.0/api_samples/network-post-resp.xml b/v2.0/api_samples/network-post-resp.xml new file mode 100644 index 0000000..4101965 --- /dev/null +++ b/v2.0/api_samples/network-post-resp.xml @@ -0,0 +1,13 @@ + + + ACTIVE + + sample_network + 4be6b806faa0491eb358018bbe9f0d4e + True + False + 0657ef52-d3f6-4320-9c26-015a3e9badea + diff --git a/v2.0/api_samples/network-put-update-resp.json b/v2.0/api_samples/network-put-update-resp.json new file mode 100644 index 0000000..f9b1f94 --- /dev/null +++ b/v2.0/api_samples/network-put-update-resp.json @@ -0,0 +1,12 @@ +{ + "network": + { + "status": "ACTIVE", + "subnets": ["e12f0c45-46e3-446a-b207-9474b27687a6"], + "name": "private", + "admin_state_up": true, + "tenant_id": "625887121e364204873d362b553ab171", + "id": "9d83c053-b0a4-4682-ae80-c00df269ce0a", + "shared": false + } +} diff --git a/v2.0/api_samples/network-put-update-resp.xml b/v2.0/api_samples/network-put-update-resp.xml new file mode 100644 index 0000000..3e90de6 --- /dev/null +++ b/v2.0/api_samples/network-put-update-resp.xml @@ -0,0 +1,16 @@ + + + ACTIVE + + e12f0c45-46e3-446a-b207-9474b27687a6 + + private + + True + 625887121e364204873d362b553ab171 + local + False + False + 9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/api_samples/network-put-update.req.json b/v2.0/api_samples/network-put-update.req.json new file mode 100644 index 0000000..37fe569 --- /dev/null +++ b/v2.0/api_samples/network-put-update.req.json @@ -0,0 +1,6 @@ +{ + "network": + { + "name": "updated_name" + } +} diff --git a/v2.0/api_samples/network-put-update.req.xml b/v2.0/api_samples/network-put-update.req.xml new file mode 100644 index 0000000..d43bdde --- /dev/null +++ b/v2.0/api_samples/network-put-update.req.xml @@ -0,0 +1,3 @@ + + nova2 + diff --git a/v2.0/api_samples/networks-create-bulk-resp.json b/v2.0/api_samples/networks-create-bulk-resp.json new file mode 100644 index 0000000..d2136bf --- /dev/null +++ b/v2.0/api_samples/networks-create-bulk-resp.json @@ -0,0 +1,34 @@ +{ + "networks":[ + { + "status":"ACTIVE", + "subnets":[ + + ], + "name":"sample_network_1", + "provider:physical_network":null, + "admin_state_up":false, + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "provider:network_type":"local", + "router:external":false, + "shared":false, + "id":"e9330b1f-a2ef-4160-a951-169ee6ab17f5", + "provider:segmentation_id":null + }, + { + "status":"ACTIVE", + "subnets":[ + + ], + "name":"sample_network_2", + "provider:physical_network":null, + "admin_state_up":false, + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "provider:network_type":"local", + "router:external":false, + "shared":false, + "id":"cfb5f52c-dfe2-4357-a10d-a225693e2b84", + "provider:segmentation_id":null + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/networks-create-bulk-resp.xml b/v2.0/api_samples/networks-create-bulk-resp.xml new file mode 100644 index 0000000..e297861 --- /dev/null +++ b/v2.0/api_samples/networks-create-bulk-resp.xml @@ -0,0 +1,33 @@ + + + + ACTIVE + + sample_network_1 + + True + 60cd4f6dbc2f491982a284e7b83b5be3 + local + False + False + 9eb3ce34-183b-4a75-b08f-d6a3d241e68b + + + + ACTIVE + + sample_network_2 + + True + 60cd4f6dbc2f491982a284e7b83b5be3 + local + False + False + df679a25-915d-41ed-b5ec-721481ddfd56 + + + diff --git a/v2.0/api_samples/networks-get-detail-resp.json b/v2.0/api_samples/networks-get-detail-resp.json new file mode 100644 index 0000000..f9b1f94 --- /dev/null +++ b/v2.0/api_samples/networks-get-detail-resp.json @@ -0,0 +1,12 @@ +{ + "network": + { + "status": "ACTIVE", + "subnets": ["e12f0c45-46e3-446a-b207-9474b27687a6"], + "name": "private", + "admin_state_up": true, + "tenant_id": "625887121e364204873d362b553ab171", + "id": "9d83c053-b0a4-4682-ae80-c00df269ce0a", + "shared": false + } +} diff --git a/v2.0/api_samples/networks-get-detail-resp.xml b/v2.0/api_samples/networks-get-detail-resp.xml new file mode 100644 index 0000000..3e90de6 --- /dev/null +++ b/v2.0/api_samples/networks-get-detail-resp.xml @@ -0,0 +1,16 @@ + + + ACTIVE + + e12f0c45-46e3-446a-b207-9474b27687a6 + + private + + True + 625887121e364204873d362b553ab171 + local + False + False + 9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/api_samples/networks-get-resp.json b/v2.0/api_samples/networks-get-resp.json new file mode 100644 index 0000000..c204d4a --- /dev/null +++ b/v2.0/api_samples/networks-get-resp.json @@ -0,0 +1,31 @@ +{ + "networks": [ + { + "status": "ACTIVE", + "subnets": ["a318fcb4-9ff0-4485-b78c-9e6738c21b26"], + "name": "private", + "admin_state_up": true, + "tenant_id": "625887121e364204873d362b553ab171", + "id": "9d83c053-b0a4-4682-ae80-c00df269ce0a", + "shared": false + }, + { + "status": "ACTIVE", + "subnets": ["aca4d43c-c48c-4a2c-9bb6-ba374ef7e135"], + "name": "nova", + "admin_state_up": true, + "tenant_id": "63878e4c5dd649d2a980e37aefddfa87", + "id": "ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "shared": false + }, + { + "status": "ACTIVE", + "subnets": ["e12f0c45-46e3-446a-b207-9474b27687a6"], + "name": "network_3", + "admin_state_up": true, + "tenant_id": "ed680f49ff714162ab3612d7876ffce5", + "id": "afc75773-640e-403c-9fff-62ba98db1f19", + "shared": true + } + ] +} diff --git a/v2.0/api_samples/networks-get-resp.xml b/v2.0/api_samples/networks-get-resp.xml new file mode 100644 index 0000000..14d0f7f --- /dev/null +++ b/v2.0/api_samples/networks-get-resp.xml @@ -0,0 +1,36 @@ + + + ACTIVE + + a318fcb4-9ff0-4485-b78c-9e6738c21b26 + + private + + True + 625887121e364204873d362b553ab171 + local + False + False + 9d83c053-b0a4-4682-ae80-c00df269ce0a + + + + ACTIVE + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + + nova + + True + 63878e4c5dd649d2a980e37aefddfa87 + local + True + False + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + + + diff --git a/v2.0/api_samples/networks-post-create-bulk-req.json b/v2.0/api_samples/networks-post-create-bulk-req.json new file mode 100644 index 0000000..858f505 --- /dev/null +++ b/v2.0/api_samples/networks-post-create-bulk-req.json @@ -0,0 +1,12 @@ +{ + "networks":[ + { + "name":"sample_network_1", + "admin_state_up":false + }, + { + "name":"sample_network_2", + "admin_state_up":false + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/networks-post-create-bulk-req.xml b/v2.0/api_samples/networks-post-create-bulk-req.xml new file mode 100644 index 0000000..cfc344f --- /dev/null +++ b/v2.0/api_samples/networks-post-create-bulk-req.xml @@ -0,0 +1,8 @@ + + + sample_network_1 + + + sample_network_2 + + diff --git a/v2.0/api_samples/port-get-resp.json b/v2.0/api_samples/port-get-resp.json new file mode 100644 index 0000000..6e6bf67 --- /dev/null +++ b/v2.0/api_samples/port-get-resp.json @@ -0,0 +1,25 @@ +{ + "port":[ + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "tenant_id":"63878e4c5dd649d2a980e37aefddfa87", + "binding:vif_type":"ovs", + "device_owner":"compute:None", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:b9:ef:05", + "fixed_ips":[ + { + "subnet_id":"aca4d43c-c48c-4a2c-9bb6-ba374ef7e135", + "ip_address":"172.24.4.227" + } + ], + "id":"664ebd1a-facd-4c20-948c-07a784475ab0", + "device_id":"f288bb5f-920d-4276-8345-2c0319c16f58" + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/port-get-resp.xml b/v2.0/api_samples/port-get-resp.xml new file mode 100644 index 0000000..2ff1616 --- /dev/null +++ b/v2.0/api_samples/port-get-resp.xml @@ -0,0 +1,25 @@ + + + ACTIVE + + True + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + 63878e4c5dd649d2a980e37aefddfa87 + ovs + compute:None + + False + + fa:16:3e:b9:ef:05 + + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + 172.24.4.227 + + + 664ebd1a-facd-4c20-948c-07a784475ab0 + f288bb5f-920d-4276-8345-2c0319c16f58 + diff --git a/v2.0/api_samples/port-post-create-req.json b/v2.0/api_samples/port-post-create-req.json new file mode 100644 index 0000000..26c40f2 --- /dev/null +++ b/v2.0/api_samples/port-post-create-req.json @@ -0,0 +1,8 @@ +{ + "port": { + "admin_state_up": true, + "device_id": "d6b4d3a5-c700-476f-b609-1493dd9dadc0", + "name": "port1", + "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12" + } +} \ No newline at end of file diff --git a/v2.0/api_samples/port_create_or_update_resp.json b/v2.0/api_samples/port_create_or_update_resp.json new file mode 100644 index 0000000..f0e9014 --- /dev/null +++ b/v2.0/api_samples/port_create_or_update_resp.json @@ -0,0 +1,26 @@ +{ + "port":[ + { + "status":"DOWN", + "binding:host_id":null, + "name":"sample_port_1", + "admin_state_up":true, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce", + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "binding:vif_type":"ovs", + "device_owner":"", + "binding:capabilities":{ + "port_filter":true + }, + "mac_address":"fa:16:3e:2e:7c:8a", + "fixed_ips":[ + + ], + "id":"8fb361d8-bab0-418d-b1b8-7204a230fb06", + "security_groups":[ + "99f465bc-0d7c-4142-8829-7ae0179f2fa8" + ], + "device_id":"" + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/port_create_or_update_resp.xml b/v2.0/api_samples/port_create_or_update_resp.xml new file mode 100644 index 0000000..d529505 --- /dev/null +++ b/v2.0/api_samples/port_create_or_update_resp.xml @@ -0,0 +1,24 @@ + + + DOWN + + test_port_1 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + ovs + + + True + + fa:16:3e:c9:8d:cf + + 7f0aa3f1-883a-43b2-8d1b-e85fac52b417 + + 99f465bc-0d7c-4142-8829-7ae0179f2fa8 + + + diff --git a/v2.0/api_samples/ports-create-bulk-resp.json b/v2.0/api_samples/ports-create-bulk-resp.json new file mode 100644 index 0000000..7780db1 --- /dev/null +++ b/v2.0/api_samples/ports-create-bulk-resp.json @@ -0,0 +1,48 @@ +{ + "ports":[ + { + "status":"DOWN", + "binding:host_id":null, + "name":"sample_port_1", + "admin_state_up":true, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce", + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "binding:vif_type":"ovs", + "device_owner":"", + "binding:capabilities":{ + "port_filter":true + }, + "mac_address":"fa:16:3e:2e:7c:8a", + "fixed_ips":[ + + ], + "id":"8fb361d8-bab0-418d-b1b8-7204a230fb06", + "security_groups":[ + "99f465bc-0d7c-4142-8829-7ae0179f2fa8" + ], + "device_id":"" + }, + { + "status":"DOWN", + "binding:host_id":null, + "name":"sample_port_2", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce", + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "binding:vif_type":"ovs", + "device_owner":"", + "binding:capabilities":{ + "port_filter":true + }, + "mac_address":"fa:16:3e:0a:4e:13", + "fixed_ips":[ + + ], + "id":"d4c93b0b-f593-424e-a199-d648478a5a3c", + "security_groups":[ + "99f465bc-0d7c-4142-8829-7ae0179f2fa8" + ], + "device_id":"" + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/ports-create-bulk-resp.xml b/v2.0/api_samples/ports-create-bulk-resp.xml new file mode 100644 index 0000000..fb62a7b --- /dev/null +++ b/v2.0/api_samples/ports-create-bulk-resp.xml @@ -0,0 +1,46 @@ + + + + DOWN + + test_port_1 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + ovs + + + True + + fa:16:3e:c9:8d:cf + + 7f0aa3f1-883a-43b2-8d1b-e85fac52b417 + + 99f465bc-0d7c-4142-8829-7ae0179f2fa8 + + + + + DOWN + + test_port_2 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + ovs + + + True + + fa:16:3e:79:90:81 + + a4a81484-c1c4-4b2b-95bc-f8c4484241d0 + + 99f465bc-0d7c-4142-8829-7ae0179f2fa8 + + + + diff --git a/v2.0/api_samples/ports-get-resp.json b/v2.0/api_samples/ports-get-resp.json new file mode 100644 index 0000000..dc2dde2 --- /dev/null +++ b/v2.0/api_samples/ports-get-resp.json @@ -0,0 +1,88 @@ +{ + "ports":[ + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "tenant_id":"63878e4c5dd649d2a980e37aefddfa87", + "binding:vif_type":"ovs", + "device_owner":"compute:None", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:b9:ef:05", + "fixed_ips":[ + { + "subnet_id":"aca4d43c-c48c-4a2c-9bb6-ba374ef7e135", + "ip_address":"172.24.4.227" + } + ], + "id":"664ebd1a-facd-4c20-948c-07a784475ab0", + "device_id":"f288bb5f-920d-4276-8345-2c0319c16f58" + }, + { + "status":"DOWN", + "name":"", + "admin_state_up":true, + "network_id":"ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "tenant_id":"", + "binding:vif_type":"ovs", + "device_owner":"network:router_gateway", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:4a:3a:a2", + "fixed_ips":[ + { + "subnet_id":"aca4d43c-c48c-4a2c-9bb6-ba374ef7e135", + "ip_address":"172.24.4.226" + } + ], + "id":"c5ca7017-c390-4ccc-8cd7-333747e57fef", + "device_id":"0dc517bf-9169-4aa6-88b7-569219962881" + }, + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"9d83c053-b0a4-4682-ae80-c00df269ce0a", + "tenant_id":"625887121e364204873d362b553ab171", + "binding:vif_type":"ovs", + "device_owner":"network:router_interface", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:2d:dc:7e", + "fixed_ips":[ + { + "subnet_id":"a318fcb4-9ff0-4485-b78c-9e6738c21b26", + "ip_address":"10.0.0.1" + } + ], + "id":"d7815f5b-a228-47bb-a5e5-f139c4e476f6", + "device_id":"0dc517bf-9169-4aa6-88b7-569219962881" + }, + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"9d83c053-b0a4-4682-ae80-c00df269ce0a", + "tenant_id":"625887121e364204873d362b553ab171", + "binding:vif_type":"ovs", + "device_owner":"network:dhcp", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:73:6d:1c", + "fixed_ips":[ + { + "subnet_id":"a318fcb4-9ff0-4485-b78c-9e6738c21b26", + "ip_address":"10.0.0.2" + } + ], + "id":"f8639521-fab2-4879-94b2-83a47bee8a26", + "device_id":"dhcpe1b8334f-9be9-5e49-aeee-b31e6df6c847-9d83c053-b0a4-4682-ae80-c00df269ce0a" + } + ] +} \ No newline at end of file diff --git a/v2.0/api_samples/ports-get-resp.xml b/v2.0/api_samples/ports-get-resp.xml new file mode 100644 index 0000000..37759d6 --- /dev/null +++ b/v2.0/api_samples/ports-get-resp.xml @@ -0,0 +1,87 @@ + + + + ACTIVE + + True + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + 63878e4c5dd649d2a980e37aefddfa87 + ovs + compute:None + + False + + fa:16:3e:b9:ef:05 + + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + 172.24.4.227 + + + 664ebd1a-facd-4c20-948c-07a784475ab0 + f288bb5f-920d-4276-8345-2c0319c16f58 + + + DOWN + + True + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + + ovs + network:router_gateway + + False + + fa:16:3e:4a:3a:a2 + + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + 172.24.4.226 + + + c5ca7017-c390-4ccc-8cd7-333747e57fef + 0dc517bf-9169-4aa6-88b7-569219962881 + + + ACTIVE + + True + 9d83c053-b0a4-4682-ae80-c00df269ce0a + 625887121e364204873d362b553ab171 + ovs + network:router_interface + + False + + fa:16:3e:2d:dc:7e + + + a318fcb4-9ff0-4485-b78c-9e6738c21b26 + 10.0.0.1 + + + d7815f5b-a228-47bb-a5e5-f139c4e476f6 + 0dc517bf-9169-4aa6-88b7-569219962881 + + + ACTIVE + + True + 9d83c053-b0a4-4682-ae80-c00df269ce0a + 625887121e364204873d362b553ab171 + ovs + network:dhcp + + False + + fa:16:3e:73:6d:1c + + + a318fcb4-9ff0-4485-b78c-9e6738c21b26 + 10.0.0.2 + + + f8639521-fab2-4879-94b2-83a47bee8a26 + dhcpe1b8334f-9be9-5e49-aeee-b31e6df6c847-9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/api_samples/ports-post-create-bulk-req.json b/v2.0/api_samples/ports-post-create-bulk-req.json new file mode 100644 index 0000000..1430d74 --- /dev/null +++ b/v2.0/api_samples/ports-post-create-bulk-req.json @@ -0,0 +1,14 @@ +{ + "ports":[ + { + "name":"sample_port_1", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce" + }, + { + "name":"sample_port_2", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce" + } + ] +} diff --git a/v2.0/api_samples/ports-post-create-bulk-req.xml b/v2.0/api_samples/ports-post-create-bulk-req.xml new file mode 100644 index 0000000..2bda50c --- /dev/null +++ b/v2.0/api_samples/ports-post-create-bulk-req.xml @@ -0,0 +1,10 @@ + + + test_port_1 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + + + test_port_2 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + + diff --git a/v2.0/api_samples/quotas-list-res.json b/v2.0/api_samples/quotas-list-res.json new file mode 100644 index 0000000..4e4f15f --- /dev/null +++ b/v2.0/api_samples/quotas-list-res.json @@ -0,0 +1,10 @@ +{ + "quotas": [{ + "subnet": 10, + "network": 10, + "floatingip": 50, + "tenant_id": "b7445f221cda4f4a8ac7db6b218b1339", + "router": 10, + "port": 30 + }] +} \ No newline at end of file diff --git a/v2.0/api_samples/quotas-put-req.json b/v2.0/api_samples/quotas-put-req.json new file mode 100644 index 0000000..c7e298e --- /dev/null +++ b/v2.0/api_samples/quotas-put-req.json @@ -0,0 +1,9 @@ +{ + "quota": { + "subnet": 40, + "router": 50, + "network": 10, + "floatingip": 30, + "port": 30 + } +} \ No newline at end of file diff --git a/v2.0/api_samples/quotas-put-res.json b/v2.0/api_samples/quotas-put-res.json new file mode 100644 index 0000000..38d6b35 --- /dev/null +++ b/v2.0/api_samples/quotas-put-res.json @@ -0,0 +1,9 @@ +{ + "quota": { + "subnet": 40, + "router": 50, + "port": 30, + "network": 10, + "floatingip": 30 + } +} \ No newline at end of file diff --git a/v2.0/api_samples/quotas-show-res.json b/v2.0/api_samples/quotas-show-res.json new file mode 100644 index 0000000..7579982 --- /dev/null +++ b/v2.0/api_samples/quotas-show-res.json @@ -0,0 +1,9 @@ +{ + "quota": { + "subnet": 10, + "router": 10, + "port": 50, + "network": 10, + "floatingip": 50 + } +} \ No newline at end of file diff --git a/v2.0/api_samples/subnet-get-detail-res.json b/v2.0/api_samples/subnet-get-detail-res.json new file mode 100644 index 0000000..63be6bd --- /dev/null +++ b/v2.0/api_samples/subnet-get-detail-res.json @@ -0,0 +1,12 @@ +{ + "port": + { + "state": "DOWN", + "id": "98017ddc-efc8-4c25-a915-774b2a633855", + "attachment": + { + "id": "test_interface_identifier" + } + } +} + diff --git a/v2.0/api_samples/subnet-get-detail-res.xml b/v2.0/api_samples/subnet-get-detail-res.xml new file mode 100644 index 0000000..507f23c --- /dev/null +++ b/v2.0/api_samples/subnet-get-detail-res.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/v2.0/api_samples/subnet-get-res.json b/v2.0/api_samples/subnet-get-res.json new file mode 100644 index 0000000..8ded3d2 --- /dev/null +++ b/v2.0/api_samples/subnet-get-res.json @@ -0,0 +1,8 @@ +{ + "port": + { + "state": "DOWN", + "id": "98017ddc-efc8-4c25-a915-774b2a633855" + } +} + diff --git a/v2.0/api_samples/subnet-get-res.xml b/v2.0/api_samples/subnet-get-res.xml new file mode 100644 index 0000000..622f397 --- /dev/null +++ b/v2.0/api_samples/subnet-get-res.xml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/v2.0/api_samples/subnet-post-req.json b/v2.0/api_samples/subnet-post-req.json new file mode 100644 index 0000000..fa33b66 --- /dev/null +++ b/v2.0/api_samples/subnet-post-req.json @@ -0,0 +1,16 @@ +status: 201, +content-length: 306, +content-type: application/json + +{ + "subnet": { + "name": "", + "network_id": "ed2e3c10-2e43-4297-9006-2863a2d1abbc", + "tenant_id": "c1210485b2424d48804aad5d39c61b8f", + "allocation_pools": [{"start": "10.0.3.20", "end": "10.0.3.150"}], + "gateway_ip": "10.0.3.1", + "ip_version": 4, + "cidr": "10.0.3.0/24", + "id": "9436e561-47bf-436a-b1f1-fe23a926e031", + "enable_dhcp": true} +} \ No newline at end of file diff --git a/v2.0/api_samples/subnet-post-req.xml b/v2.0/api_samples/subnet-post-req.xml new file mode 100644 index 0000000..79f9890 --- /dev/null +++ b/v2.0/api_samples/subnet-post-req.xml @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/v2.0/api_samples/subnet-post-res.json b/v2.0/api_samples/subnet-post-res.json new file mode 100644 index 0000000..9cec3c5 --- /dev/null +++ b/v2.0/api_samples/subnet-post-res.json @@ -0,0 +1,24 @@ +status: 200 +content-length: 381 +content-type: application/json + +{ + "subnet": { + "allocation_pools": [ + { + "end": "10.0.3.254", + "start": "10.0.3.2" + } + ], + "cidr": "10.0.3.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.3.1", + "host_routes": [], + "id": "91e47a57-7508-46fe-afc9-fc454e8580e1", + "ip_version": 4, + "name": "sample_subnet", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + } +} diff --git a/v2.0/api_samples/subnet-post-res.xml b/v2.0/api_samples/subnet-post-res.xml new file mode 100644 index 0000000..c710d9c --- /dev/null +++ b/v2.0/api_samples/subnet-post-res.xml @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/v2.0/api_samples/subnets-create-bulk-resp.json b/v2.0/api_samples/subnets-create-bulk-resp.json new file mode 100644 index 0000000..70086c8 --- /dev/null +++ b/v2.0/api_samples/subnets-create-bulk-resp.json @@ -0,0 +1,28 @@ +{ +"subnets": [ +{ +"name": "sample_subnet_1", +"enable_dhcp": true, +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"dns_nameservers": [], +"allocation_pools":[{"start": "10.100.0.2", "end": "10.100.255.254"}], +"host_routes": [], +"ip_version": 4, +"gateway_ip": "10.100.0.1", +"cidr": "10.100.0.0/16", +"id": "70ffbaeb-4b43-4605-abe6-4c5bdbb8236b" +}, +{ +"name": "sample_subnet_2", +"enable_dhcp": true, +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"dns_nameservers": [], +"allocation_pools": [{"start": "172.16.0.2", "end": "172.31.255.254"}], +"host_routes": [], +"ip_version": 4, +"gateway_ip": "172.16.0.1", +"cidr": "172.16.0.0/12", +"id": "d849e3fc-557d-4b27-8f1c-aceca1daa410"}] +} diff --git a/v2.0/api_samples/subnets-create-bulk-resp.xml b/v2.0/api_samples/subnets-create-bulk-resp.xml new file mode 100644 index 0000000..fec5e87 --- /dev/null +++ b/v2.0/api_samples/subnets-create-bulk-resp.xml @@ -0,0 +1,41 @@ + + + + test_subnet_1 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + + + + 10.0.0.2 + 10.255.255.254 + + + + 4 + 10.0.0.1 + 10.0.0.0/8 + bd3fd365-fe19-431a-be63-07017a09316c + + + test_subnet_2 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + + + + 192.168.0.2 + 192.168.255.254 + + + + 4 + 192.168.0.1 + 192.168.0.0/16 + 86e7c838-fb75-402b-9dbf-d68166e3f5fe + + diff --git a/v2.0/api_samples/subnets-get-detail-res.json b/v2.0/api_samples/subnets-get-detail-res.json new file mode 100644 index 0000000..d66231c --- /dev/null +++ b/v2.0/api_samples/subnets-get-detail-res.json @@ -0,0 +1,18 @@ +status: 200 +content-length: 309 +content-type: application/json + +{ + "subnet": + { + "name": "", + "network_id": "ed2e3c10-2e43-4297-9006-2863a2d1abbc", + "tenant_id": "c1210485b2424d48804aad5d39c61b8f", + "allocation_pools": [{"start": "10.10.0.2", "end": "10.10.0.254"}], + "gateway_ip": "10.10.0.1", + "ip_version": 4, + "cidr": "10.10.0.0/24", + "id": "4156c7a5-e8c4-4aff-a6e1-8f3c7bc83861", + "enable_dhcp": false, + } +} \ No newline at end of file diff --git a/v2.0/api_samples/subnets-get-detail-res.xml b/v2.0/api_samples/subnets-get-detail-res.xml new file mode 100644 index 0000000..ddb7923 --- /dev/null +++ b/v2.0/api_samples/subnets-get-detail-res.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/v2.0/api_samples/subnets-get-res.json b/v2.0/api_samples/subnets-get-res.json new file mode 100644 index 0000000..02afcea --- /dev/null +++ b/v2.0/api_samples/subnets-get-res.json @@ -0,0 +1,40 @@ +{ + "subnets": [ + { + "allocation_pools": [ + { + "end": "10.0.3.254", + "start": "10.0.3.2" + } + ], + "cidr": "10.0.3.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.3.1", + "host_routes": [], + "id": "91e47a57-7508-46fe-afc9-fc454e8580e1", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + }, + { + "allocation_pools": [ + { + "end": "10.0.2.254", + "start": "10.0.2.2" + } + ], + "cidr": "10.0.2.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.2.1", + "host_routes": [], + "id": "e3c3620c-9d24-4470-b226-739da2f617c0", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + } + ] +} diff --git a/v2.0/api_samples/subnets-get-res.xml b/v2.0/api_samples/subnets-get-res.xml new file mode 100644 index 0000000..1e9e0b3 --- /dev/null +++ b/v2.0/api_samples/subnets-get-res.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/v2.0/api_samples/subnets-get-resp.json b/v2.0/api_samples/subnets-get-resp.json new file mode 100644 index 0000000..02afcea --- /dev/null +++ b/v2.0/api_samples/subnets-get-resp.json @@ -0,0 +1,40 @@ +{ + "subnets": [ + { + "allocation_pools": [ + { + "end": "10.0.3.254", + "start": "10.0.3.2" + } + ], + "cidr": "10.0.3.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.3.1", + "host_routes": [], + "id": "91e47a57-7508-46fe-afc9-fc454e8580e1", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + }, + { + "allocation_pools": [ + { + "end": "10.0.2.254", + "start": "10.0.2.2" + } + ], + "cidr": "10.0.2.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.2.1", + "host_routes": [], + "id": "e3c3620c-9d24-4470-b226-739da2f617c0", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + } + ] +} diff --git a/v2.0/api_samples/subnets-post-create-bulk-req.json b/v2.0/api_samples/subnets-post-create-bulk-req.json new file mode 100644 index 0000000..5b3165e --- /dev/null +++ b/v2.0/api_samples/subnets-post-create-bulk-req.json @@ -0,0 +1,14 @@ +{ +"subnets": [ +{"name": "sample_subnet_1", +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"cidr": "10.100.0.0/16", +"ip_version": 4 +}, +{ +"name": "sample_subnet_2", +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"cidr": "172.16.0.0/12", +"ip_version": 4 +}] +} diff --git a/v2.0/api_samples/subnets-post-create-bulk-req.xml b/v2.0/api_samples/subnets-post-create-bulk-req.xml new file mode 100644 index 0000000..fb754c0 --- /dev/null +++ b/v2.0/api_samples/subnets-post-create-bulk-req.xml @@ -0,0 +1,14 @@ + + + test_subnet_1 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 10.0.0.0/8 + 4 + + + test_subnet_2 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 192.168.0.0/16 + 4 + + diff --git a/v2.0/api_samples/subnets_get_resp.json b/v2.0/api_samples/subnets_get_resp.json new file mode 100644 index 0000000..df67ff9 --- /dev/null +++ b/v2.0/api_samples/subnets_get_resp.json @@ -0,0 +1,29 @@ +status: 200 +content-length: 607 +content-type: application/json + +{ + "subnets": [ + { + "name": "", + "network_id": "ed2e3c10-2e43-4297-9006-2863a2d1abbc", + "tenant_id": "c1210485b2424d48804aad5d39c61b8f", + "allocation_pools": [{"start": "10.10.0.2", "end": "10.10.0.254"}], + "gateway_ip": "10.10.0.1", + "ip_version": 4, + "cidr": "10.10.0.0/24", + "id": "4156c7a5-e8c4-4aff-a6e1-8f3c7bc83861", + "enable_dhcp": true + }, + { + "name": "", + "network_id": "afc75773-640e-403c-9fff-62ba98db1f19", + "tenant_id": "ed680f49ff714162ab3612d7876ffce5", + "allocation_pools": [{"start": "10.0.0.2", "end": "10.0.0.254"}], + "gateway_ip": "10.0.0.1", + "ip_version": 4, + "cidr": "10.0.0.0/24", + "id": "e12f0c45-46e3-446a-b207-9474b27687a6", + "enable_dhcp": true + }] +} \ No newline at end of file diff --git a/v2.0/ch_neutron_api_extensions.xml b/v2.0/ch_neutron_api_extensions.xml new file mode 100644 index 0000000..c1f8c59 --- /dev/null +++ b/v2.0/ch_neutron_api_extensions.xml @@ -0,0 +1,74 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> + + API Extensions + The API extensions augment the core API. An API extension + extends one or more of the following components of the core + API: + + + Resources. An extension defines new object + classes. + + + Attributes. An extended attribute defines a new + attribute on existing resources. Prefixed by the + extension name. + + + Actions. An extended action defines a new operation + on an existing resource. + + + Generic API extensions are not plug-in-specific. For + information about plug-in-specific extensions that are shipped + with OpenStack Networking, see the extension documentation in + the source code tree. + + + + + + + + + + + + + + + + diff --git a/v2.0/ch_neutron_api_operations.xml b/v2.0/ch_neutron_api_operations.xml new file mode 100644 index 0000000..2a8facf --- /dev/null +++ b/v2.0/ch_neutron_api_operations.xml @@ -0,0 +1,69 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> + + API Operations + Provides virtual networking services among devices that are + managed by the OpenStack Compute service. The Networking API + v2.0 combines the API v1.1 functionality with some essential + Internet Protocol Address Management (IPAM) functionality. + Enables users to associate IP address blocks and other network + configuration settings with a neutron network. You can choose + a specific IP address from the block or let neutron choose the + first available IP address. +
+ Networks + Lists, shows information for, creates, updates, and + deletes networks. + +
+
+ Subnets + Lists, shows information for, creates, updates, and + deletes subnet resources. + +
+
+ Ports + Lists, shows information for, creates, updates, and + deletes ports. + +
+
diff --git a/v2.0/ch_neutron_general_info.xml b/v2.0/ch_neutron_general_info.xml new file mode 100644 index 0000000..55edffc --- /dev/null +++ b/v2.0/ch_neutron_general_info.xml @@ -0,0 +1,448 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> + + + General API Information + The &APIv2; is a ReSTful HTTP service that uses all aspects + of the HTTP protocol including methods, URIs, media types, + response codes, and so on. Providers can use existing features + of the protocol including caching, persistent connections, and + content compression. For example, providers who employ a + caching layer can respond with a 203 + code instead of a 200 code when a + request is served from the cache. Additionally, providers can + offer support for conditional &GET; requests by using ETags, + or they may send a redirect in response to a &GET; request. + Create clients so that these differences are accounted + for. +
+ Authentication and Authorization + The &APIv2; uses the Keystone + Identity Service as the default authentication + service. When Keystone is enabled, users that submit + requests to the OpenStack Networking service must provide + an authentication token in X-Auth-Token request header. You obtain + the token by authenticating to the Keystone endpoint. For + more information about Keystone, see the OpenStack Identity Service API v2.0 + Reference. + When Keystone is enabled, the + tenant_id attribute is not required + in create requests because the tenant ID is derived from + the authentication token. + The default authorization settings allow only + administrative users to create resources on behalf of a + different tenant. + OpenStack Networking uses information received from + Keystone to authorize user requests. OpenStack Networking + handles the following types of authorization policies: + + Operation-based + policies specify access + criteria for specific operations, possibly + with fine-grained control over specific + attributes. + + + Resource-based + policies access a specific + resource. Permissions might or might not be + granted depending on the permissions + configured for the resource. Currently + available for only the network + resource. + + + The actual authorization policies enforced in OpenStack + Networking might vary from deployment to + deployment. +
+ +
+ Request/Response Types + The &APIv2; supports the JSON data serialization + format. + The format for both the request and the response can be + specified by using the Content-Type header, + the Accept header or adding the + .json extension to the request + URI. + + JSON Request with Headers + POST /v1.0/tenants/tenantX/networks HTTP/1.1 +Host 127.0.0.1:9696 +Content-Type application/json +Accept application/json +Content-Length 57 + + + + JSON Response with Headers + HTTP/1.1 201 Created +Content-Type application/json +Content-Length 204 + + +
+
+ Filtering and Column Selection + The &APIv2; supports filtering based on all top level + attributes of a resource. Filters are applicable to all + list requests. + For example, the following request returns all networks + named foobar: + GET /v2.0/networks?name=foobar + When you specify multiple filters, the &APIv2; returns + only objects that meet all filtering criteria. The + operation applies an AND condition among the + filters. + + OpenStack Networking does not offer an OR mechanism + for filters. + + Alternatively, you can issue a distinct request for each + filter and build a response set from the received + responses on the client-side. + By default, OpenStack Networking returns all attributes + for any show or list call. The &APIv2; has a mechanism to + limit the set of attributes returned. For example, return + id. + You can use the fields query + parameter to control the attributes returned from the + &APIv2;. + For example, the following request returns only + id and name for + each network: + GET /v2.0/networks.json?fields=id&fields=name +
+
+ Synchronous versus Asynchronous Plug-in + Behavior + The &APIv2; presents a logical model of network + connectivity consisting of networks, ports, and subnets. + It is up to the OpenStack Networking plug-in to + communicate with the underlying infrastructure to ensure + packet forwarding is consistent with the logical model. A + plug-in might perform these operations + asynchronously. + When an API client modifies the logical model by issuing + an HTTP &POST;, &PUT;, or &DELETE; request, the API call + might return before the plug-in modifies underlying + virtual and physical switching devices. However, an API + client is guaranteed that all subsequent API calls + properly reflect the changed logical model. + For example, if a client issues an HTTP &PUT; request to + set the attachment for a port, there is no guarantee that + packets sent by the interface named in the attachment are + forwarded immediately when the HTTP call returns. However, + it is guaranteed that a subsequent HTTP &GET; request to + view the attachment on that port returns the new + attachment value. + You can use the status attribute with + the network and port resources to determine whether the + OpenStack Networking plug-in has successfully completed + the configuration of the resource. +
+
+ Bulk Create Operations + The &APIv2; enables you to create several objects of the + same type in the same API request. Bulk create operations + use exactly the same API syntax as single create + operations except that you specify a list of objects + rather than a single object in the request body. + Bulk operations are always performed atomically, meaning + that either all or none of the objects in the request body + are created. If a particular plug-in does not support + atomic operations, the &APIv2; emulates the atomic + behavior so that users can expect the same behavior + regardless of the particular plug-in running in the + background. + OpenStack Networking might be deployed without support + for bulk operations and when the client attempts a bulk + create operation, a 400 + Bad Request error is + returned. + +
+
+ Pagination + To reduce load on the service, list operations will + return a maximum number of items at a time. To navigate + the collection, the parameters limit, marker and + page_reverse can be set in the URI. For example: + ?limit=100&marker=1234&page_reverse=False + The marker parameter is the ID of + the last item in the previous list. The + limit parameter sets the page + size. The page_reverse parameter + sets the page direction. These parameters are optional. If + the client requests a limit beyond the maximum limit + configured by the deployment, the server returns the + maximum limit number of items. + For convenience, list responses contain atom "next" + links and "previous" links. The last page in the list + requested with 'page_reverse=False' will not contain + "next" link, and the last page in the list requested with + 'page_reverse=True' will not contain "previous" link. The + following examples illustrate two pages with three items. + The first page was retrieved through: + &GET; http://127.0.0.1:9696/v2.0/networks.json?limit=2 + Pagination is an optional feature of OpenStack + Networking API, and it might be disabled. If pagination is + disabled, the pagination parameters will be ignored and + return all the items. + If a particular plug-in does not support pagination + operations, and pagination is enabled, the &APIv2; will + emulate the pagination behavior so that users can expect + the same behavior regardless of the particular plug-in + running in the background. + Unfortunately OpenStack Networking does not expose any + mechanism to tell user if pagination is supported by + particular plug-in or enabled. + + Network Collection, First Page: JSON + Request + + GET /v2.0/networks.json?limit=2 HTTP/1.1 +Host: 127.0.0.1:9696 +Content-Type: application/json +Accept: application/json + + + Network Collection, First Page: JSON + Response + + + + Network Collection, First Page: XML Request + +GET /v2.0/networks.xml?limit=2 HTTP/1.1 +Host: 127.0.0.1:9696 +Content-Type: application/xml +Accept: application/xml + + + + Network Collection, First Page: XML + Response + + + The last page won't show the "next" links + + Network Collection, Last Page: JSON Request + +GET /v2.0/networks.json?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718 HTTP/1.1 +Host: 127.0.0.1:9696 +Content-Type: application/json +Accept: application/json + + + + Network Collection, Last Page: JSON + Response + + + + Network Collection, Last Page: XML Request + +GET /v2.0/networks.xml?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718 HTTP/1.1 +Host: 127.0.0.1:9696 +Content-Type: application/xml +Accept: application/xml + + + + Network Collection, Last Page: XML Response + + +
+
+ Sorting + The results of list operations can be ordered using the + 'sort_key' and 'sort_dir' parameters. Currently sorting + doesn't work with extended attributes of resource. The + 'sort_key' and 'sort_dir' can be repeated, and the number + of 'sort_key' and 'sort_dir' provided must be same. The + sort_dir parameter indicates in which direction to sort. + Acceptable values are 'asc' (ascending) and 'desc' + (descending). + Sorting is optional feature of OpenStack Networking API, + and it might be disabled. If sorting is disabled, the + sorting parameters will be ignored. + If a particular plug-in does not support sorting + operations, and sorting is enabled, the &APIv2; will + emulate the sorting behavior so that users can expect the + same behavior regardless of the particular plug-in running + in the background. + Unfortunately OpenStack Networking does provide a + mechanism to tell users if specific plug-ins support or + have enabled sorting. +
+
+ Extensions + The &APIv2; is extensible. + The purpose of &APIv2; extensions is to: + + + Introduce new features in the API without + requiring a version change. + + + Introduce vendor-specific niche + functionality. + + + Act as a proving ground for experimental + functionalities that might be included in a future + version of the API. + + + To programmatically determine which extensions are + available, issue a &GET; request on the + v2.0/extensions URI. + To query extensions individually by unique alias, issue + a &GET; request on the + /v2.0/extensions/alias_name + URI. Use this method to easily determine if an extension + is available. If the extension is not available, a + 404 + Not Found response is + returned. + You can extend existing core API resources with new + actions or extra attributes. Also, you can add new + resources as extensions. Extensions usually have tags that + prevent conflicts with other extensions that define + attributes or resources with the same names, and with core + resources and attributes. Because an extension might not + be supported by all plug-ins, the availability of an + extension varies with deployments and the specific plug-in + in use. + For more information regarding specific extensions, see + +
+ +
+ Faults + The &APIv2; returns an error response if a failure + occurs while processing a request. OpenStack Networking + uses only standard HTTP error codes. + 4xx errors indicate problems in the + particular request being sent from the client. + + + + + + + Error + Description + + + + + 400 + Bad Request + Malformed request URI or body + + + Requested admin state invalid + + + Invalid values entered + + + Bulk operations disallowed + + + Validation failed + + + Method not allowed for request body (such as + trying to update attributes that can be + specified at create-time only) + + + 404 + Not Found + Non existent URI + + + Resource not found + + + 409 + Conflict + Port configured on network + + + IP allocated on subnet + + + Conflicting IP allocation pools for + subnet + + + 500 + Internal server error + Internal OpenStack Networking error + + + 503 + Service unavailable + Failure in Mac address generation + + + + Users submitting requests to the &APIv2; might also + receive the following errors: + + + 401 Unauthorized - If + invalid credentials are provided. + + + 403 Forbidden - If the + user cannot access a specific resource or perform + the requested operation. + + +
+
diff --git a/v2.0/ch_neutron_overview.xml b/v2.0/ch_neutron_overview.xml new file mode 100644 index 0000000..1e06b96 --- /dev/null +++ b/v2.0/ch_neutron_overview.xml @@ -0,0 +1,270 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> + + + Overview + The Neutron project provides virtual networking services + among devices that are managed by the OpenStack compute service. + The &APIv2; combines the Quantum API v1.1 with some essential Internet + Protocol Address Management (IPAM) capabilities from the Melange API. + These IPAM capabilities enable you to: + + + Associate IP address blocks and other network + configuration settings required by a network device, + such as a default gateway and dns-servers settings, + with an OpenStack Networking network. + + + Allocate an IP address from a block and associate it + with a device that is attached to the network through + an OpenStack Networking port. + + + To do this, the &APIv2; introduces the subnet entity. A + subnet can represent either an IP version 4 or version 6 + address block. Each OpenStack Networking network commonly has + one or more subnets. When you create a port on the network, an + available fixed IP address is allocated to it from one the + designated subnets for each IP version. When you delete the + port, the allocated addresses return to the pool of available + IPs on the subnet. &APIv2; users can choose a specific IP + address from the block or let OpenStack Networking choose the + first available IP address. + + The Quantum API v1.x was removed from + the source code tree. To use the Quantum API + v1.x, install the Quantum Essex + release. + + +
+ Glossary + + + + Term + Description + + + + + CRUD + Create, read, update, and delete + (CRUD) are the basic functions of persistent + storage in computer programming. + + + entity + Any piece of hardware or software + that can connect to the network services + provided by OpenStack Networking. An entity + can use OpenStack Networking services by + implementing a VIF. + + + IPAM + Internet Protocol Address + Management (IPAM) is a means of planning, + tracking, and managing the Internet Protocol + (IP) address space that is used in a + network. + + + + layer-2 network + + A virtual Ethernet network that is + managed by the OpenStack Networking service. + Currently, OpenStack Networking manages only + Ethernet networks. + + + network + An isolated virtual layer-2 + broadcast domain that is typically reserved + for the tenant who created it unless the + network is configured to be shared. Tenants + can create multiple networks until they reach + the thresholds specified by per-tenant + quotas. + + + + plug-in + + A software component that + implements &APIv2;. + + + port + A virtual switch port on a logical + network switch. Virtual instances attach their + interfaces into ports. The logical port also + defines the MAC address and the IP addresses + to be assigned to the interfaces plugged into + them. When IP addresses are associated to a + port, this also implies the port is associated + with a subnet, as the IP address was taken + from the allocation pool for a specific + subnet. + + + subnet + An IP address block that can be + used to assign IP addresses to virtual + instances. Each subnet must have a CIDR and + must be associated with a network. IPs can be + either selected from the whole subnet CIDR or + from allocation pools that can be specified by + the user. + + + VM + A virtual machine (VM) is a + completely isolated guest operating system + installation within a normal host operating + system. + + + +
+ + +
+ High-Level Task Flow + The high-level task flow for OpenStack Networking + involves creating a network, associating a subnet with + that network, and booting a VM that is attached to the + network. Clean-up includes deleting the VM, deleting any + ports associated with the network, and deleting the + networks. OpenStack Networking deletes any subnets + associated with the deleted network. + + To use OpenStack Networking - high-level task + flow + + Create a network + The tenant creates a network. + For example, the tenant creates the + net1 network. Its ID is + net1_id. + + + + Associate a subnet with the network + The tenant associates a subnet with that + network. + For example, the tenant associates the + 10.0.0.0/24 subnet with the + net1 network. + + + + Boot a VM and attach it to the network + The tenant boots a virtual machine (VM) and + specifies a single NIC that connects to the + network. + The following examples use the nova client to + boot a VM. + In the first example, Nova contacts OpenStack + Networking to create the NIC and attach it to the + net1 network, with the ID + net1_id: + $ nova boot <server_name> --image <image> --flavor <flavor> --nic net-id=<net1_id> + In a second example, you first create the + port1, port and then you + boot the VM with a specified port. OpenStack + Networking creates a NIC and attaches it to the + port1 port, with the ID + port1_id: + $ nova boot <server_name> --image <image> --flavor <flavor> --nic port-id=<port1_id> + OpenStack Networking chooses and assigns an IP + address to the port1 + port. + For more information about the nova + boot command, enter: + $ nova help boot + + + Delete the VM + The tenant deletes the VM. + Nova contacts OpenStack Networking and deletes + the port1 port. + The allocated IP address is returned to the pool + of available IP addresses. + + + Delete any ports + If the tenant created any ports and associated + them with the network, the tenant deletes the + ports. + + + + Delete the network + The tenant deletes the network. This operation + deletes an OpenStack Networking network and its + associated subnets provided that no port is + currently configured on the network. + + +
+ +
+ Plug-ins + Virtual networking services are implemented through a + plug-in. A plug-in can use different techniques and + technologies to provide isolated virtual networks to + tenants. A plug-in also provides other services, such as + IP address management. Because each plug-in implements all + the operations included in &APIv2;, do not be concerned + about which plug-in is used. + However, some plug-ins might expose additional + capabilities through API extensions, which this document + discusses. For more information about the extensions + exposed by a particular plug-in, see the plug-in + documentation. +
+
diff --git a/v2.0/ch_preface.xml b/v2.0/ch_neutron_preface.xml similarity index 100% rename from v2.0/ch_preface.xml rename to v2.0/ch_neutron_preface.xml diff --git a/v2.0/neutron-api-guide.xml b/v2.0/neutron-api-guide.xml index 03951b4..b28efbc 100644 --- a/v2.0/neutron-api-guide.xml +++ b/v2.0/neutron-api-guide.xml @@ -10,7 +10,6 @@ PUT'> POST'> DELETE'> - OpenStack Networking API v2.0 Reference - Networking API Reference @@ -64,6 +63,17 @@ + + 2013-12-20 + + + + Updated book to source information + from WADL files. + + + + 2013-10-11 @@ -129,2587 +139,9 @@ - - - Overview - The Neutron project provides virtual networking services - among devices that are managed by the OpenStack compute service. - The &APIv2; combines the Quantum API v1.1 with some essential Internet - Protocol Address Management (IPAM) capabilities from the - Melange API. - These IPAM capabilities enable you to: - - Associate IP address blocks and other - network configuration settings required by a - network device, such as a default gateway and - dns-servers settings, with an OpenStack - Networking network. - - - Allocate an IP address from a block and - associate it with a device that is attached to - the network through an OpenStack Networking - port. - - To do this, the &APIv2; introduces the - subnet entity that can represent either an IP version 4 or - version 6 address block. Each OpenStack Networking network - commonly has one or more subnets. When you create a port - on the network, an available fixed IP address is allocated - to it from one the designated subnets for each IP version. - When you delete the port, the allocated addresses return - to the pool of available IPs on the subnet. &APIv2; users - can choose a specific IP address from the block or let - OpenStack Networking choose the first available IP - address. - - The Quantum API v1.x was removed - from the source code tree. To use the Quantum API - v1.x, install the Quantum Essex - release. - - -
- Glossary - - - - Term - Description - - - - - CRUD - Create, read, update, and - delete (CRUD) are the basic functions of - persistent storage in computer - programming. - - - entity - Any piece of hardware or - software that can connect to the network - services provided by OpenStack Networking. - An entity can use OpenStack Networking - services by implementing a VIF. - - - IPAM - Internet Protocol Address - Management (IPAM) is a means of planning, - tracking, and managing the Internet - Protocol (IP) address space that is used - in a network. - - - - layer-2 network - - A virtual Ethernet network - that is managed by the OpenStack - Networking service. Currently, OpenStack - Networking manages only Ethernet networks. - - - - network - An isolated virtual layer-2 - broadcast domain that is typically - reserved for the tenant who created it - unless the network is configured to be - shared. Tenants can create multiple - networks until they reach the thresholds - specified by per-tenant quotas. - - - - plug-in - - A software component that - implements &APIv2;. - - - port - A virtual switch port on a - logical network switch. Virtual instances - attach their interfaces into ports. The - logical port also defines the MAC address - and the IP addresses to be assigned to the - interfaces plugged into them. When IP - addresses are associated to a port, this - also implies the port is associated with a - subnet, as the IP address was taken from - the allocation pool for a specific subnet. - - - - subnet - An IP address block that can - be used to assign IP addresses to virtual - instances. Each subnet must have a CIDR - and must be associated with a network. IPs - can be either selected from the whole - subnet CIDR or from allocation pools that - can be specified by the user. - - - VM - A virtual machine (VM) is a - completely isolated guest operating system - installation within a normal host - operating system. - - - -
- -
- High-Level Task Flow - The high-level task flow for OpenStack Networking - involves creating a network, associating a subnet with - that network, and booting a VM that is attached to the - network. Clean-up includes deleting the VM, deleting - any ports associated with the network, and deleting - the networks. OpenStack Networking deletes any subnets - associated with the deleted network. - - To use OpenStack Networking - high-level task - flow - - Create a network - The tenant creates a network. - For example, the tenant creates the - net1 network. Its ID is - net1_id. - See . - - - Associate a subnet with the network - The tenant associates a subnet with that - network. - For example, the tenant associates the - 10.0.0.0/24 subnet with - the net1 network. - See . - - - Boot a VM and attach it to the - network - The tenant boots a virtual machine (VM) and - specifies a single NIC that connects to the - network. - The following examples use the nova client - to boot a VM. - In the first example, Nova contacts - OpenStack Networking to create the NIC and - attach it to the net1 - network, with the ID net1_id: - $ nova boot <server_name> --image <image> --flavor <flavor> --nic net-id=<net1_id> - In a second example, you first create the - port1, port and then - you boot the VM with a specified port. - OpenStack Networking creates a NIC and - attaches it to the port1 - port, with the ID port1_id: - $ nova boot <server_name> --image <image> --flavor <flavor> --nic port-id=<port1_id> - OpenStack Networking chooses and assigns an - IP address to the port1 - port. - For information about how to create ports, - see . - For more information about the nova - boot command, enter: - $ nova help boot - - - Delete the VM - The tenant deletes the VM. - Nova contacts OpenStack Networking and - deletes the port1 - port. - The allocated IP address is returned to the - pool of available IP addresses. - - - Delete any ports - If the tenant created any ports and - associated them with the network, the tenant - deletes the ports. - See . - - - Delete the network - The tenant deletes the network. This - operation deletes an OpenStack Networking - network and its associated subnets provided - that no port is currently configured on the - network. - See . - - -
- -
- The Plug-in - Virtual networking services are implemented through - a plug-in. A plug-in can use different techniques and - technologies to provide isolated virtual networks to - tenants. A plug-in also provides other services, such - as IP address management. Because each plug-in - implements all the operations included in &APIv2;, you do - not need to be concerned about which plug-in is used. - However, some plug-ins might expose additional - capabilities through API extensions, which are - discussed in this document. For more information about - the extensions exposed by a particular plug-in, see the - plug-in documentation. -
-
- - - Concepts - &APIv2; manages the following entities: - - Network. An - isolated virtual layer-2 domain. A network can - also be a virtual, or logical, switch. See - . - - - Subnet. An - IP version 4 or version 6 address block from - which IP addresses that are assigned to VMs on - a specified network are selected. See . - - - Port. A - virtual, or logical, switch port on a - specified network. See . - - - These entities have auto-generated unique identifiers - and support basic create, read, update, and delete (CRUD) - functions with the &POST;, &GET;, &PUT;, and &DELETE; - verbs. - -
- Network - A network is an isolated virtual layer-2 broadcast - domain that is typically reserved for the tenant who - created it unless the network is configured to be - shared. Tenants can create multiple networks until - they reach the thresholds specified by per-tenant - quotas. See . - In the &APIv2;, the network is the main entity. - Ports and subnets are always associated with a - network. - - The following table describes the attributes for - network objects. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Network Attributes
Attribute Type Required CRUD - - - C. Use the attribute in - create operations. - - - R. This attribute is - returned in response to show and - list operations. - - - U. You can update the - value of this attribute. - - - D. You can delete the - value of this attribute. - - - Default Value Validation Constraints Notes
id uuid-str N/A R generated N/A UUID for the network.
name String No CRU None N/A Human-readable name for the network. Might - not be unique.
admin_state_up Bool No CRU true {true|false}The administrative state of network. If - false (down), the network does not forward - packets.
status String N/A R N/A N/A Indicates whether network is - currently operational. Possible values - include: - - ACTIVE - - - DOWN - - - BUILD - - - ERROR - - - Plug-ins might define - additional values.
subnets list(uuid-str) No R Empty List N/A subnets associated with this network. -
shared Bool No CRUFalse{ True | False } Specifies whether the network resource can - be accessed by any tenant or not.
tenant_id uuid-str No - If OpenStack Networking is not - running with the Keystone Identity - service, the - tenant_id - attribute is required. - - CR N/A No constraintOwner of network. Only admin users can - specify a tenant_id other than its own. -
-
- -
- Subnet - A subnet represents an IP address block that can be - used to assign IP addresses to virtual instances. Each - subnet must have a CIDR and must be associated with a - network. IPs can be either selected from the whole - subnet CIDR or from allocation pools that can be - specified by the user. - A subnet can also optionally have a gateway, a list - of dns name servers, and host routes. This information - is pushed to instances whose interfaces are associated - with the subnet. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subnet Attributes
Attribute Type Required CRUD - - - C. Use the attribute in - create operations. - - - R. This attribute is - returned in response to show and - list operations. - - - U. You can update the - value of this attribute. - - - D. You can delete the - value of this attribute. - - - - Default Value Validation Constraints Notes
id uuid-str N/A R generated N/A UUID representing the subnet
network_id uuid-str Yes CR N/A network this subnet is associated with. -
name String No CRU None N/A Human-readable name for the subnet. Might - not be unique.
ip_version int Yes CR 4 { 4 | 6 } IP version
cidr string YesCR N/A valid cidr in the form - <network_address>/<prefix> cidr representing IP range for this - subnet, based on IP version
gateway_ip string No CRUD first address in cidr - Valid IP address or nulldefault gateway used by devices in this - subnet
dns_nameservers list(str) No CRU Empty list No constraint DNS name servers used by hosts in this - subnet.
allocation_pools list(dict) No CR Every address in cidr, excluding gateway_ip if - configured start/end of range must be valid ip Sub-ranges of cidr available for dynamic - allocation to ports [ { "start": - "10.0.0.2", "end": "10.0.0.254"} ]
host_routes list(dict) No CRU Empty List - [] - Routes that should be used by devices with - IPs from this subnet (not including local - subnet route).
enable_dhcp Bool NoCRU True { True | False } Specifies whether DHCP is enabled for this - subnet or not.
tenant_id uuid-str No - If OpenStack Networking is not - running with the Keystone Identity - service, the - tenant_id - attribute is required. - CR N/A No constraintOwner of network. Only admin users can - specify a tenant_id other than its own. -
-
- -
- Port - A port represents a virtual switch port on a logical - network switch. Virtual instances attach their - interfaces into ports. The logical port also defines - the MAC address and the IP address(es) to be assigned - to the interfaces plugged into them. When IP addresses - are associated to a port, this also implies the port - is associated with a subnet, as the IP address was - taken from the allocation pool for a specific - subnet. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Port Attributes
Attribute Type Required CRUD - - - C. Use the attribute in - create operations. - - - R. This attribute is - returned in response to show and - list operations. - - - U. You can update the - value of this attribute. - - - D. You can delete the - value of this attribute. - - - - Default Value Validation Constraints Notes
id uuid-str N/A R generated N/A UUID for the port.
network_id uuid-str Yes CR N/A existing network identifier Network that this port is associated with. -
name String No CRU None N/A Human-readable name for the port. Might - not be unique.
admin_state_up bool No CRU true {true|false}Administrative state of port. If false - (down), port does not forward packets. -
status string N/A R N/A N/A Indicates whether network is - currently operational. Possible values - include: - - ACTIVE - - - DOWN - - - BUILD - - - ERROR - - - Plug-ins might define - additional values.
mac_address string No CR generated valid MAC in 6-octet form separated by - colons Mac address to use on this port.
fixed_ipslist(dict)No CRU automatically allocated from pool Valid IP address and existing subnet - identifier Specifies IP addresses for the port thus - associating the port itself with the - subnets where the IP addresses are picked - from
device_id str No CRUD None No constraint identifies the device (e.g., virtual - server) using this port.
device_owner str No CRUD None No constraint Identifies the entity (e.g.: dhcp agent) - using this port.
tenant_iduuid-strNo - If OpenStack Networking is not - running with the Keystone Identity - service, the - tenant_id - attribute is required. - - CRN/ANo constraintOwner of port. Only admin users can - specify a tenant_id other than its own. -
security_groupslist(dict)NoCRUDNoneExisting security group IDsSpecifies the IDs of any security groups - associated with a port.
-
-
- - General API Information - The &APIv2; is a ReSTful HTTP service that uses all - aspects of the HTTP protocol including methods, URIs, - media types, response codes, and so on. Providers can use - existing features of the protocol including caching, - persistent connections, and content compression. For - example, providers who employ a caching layer can respond - with a 203 code instead of a - 200 code when a request is - served from the cache. Additionally, providers can offer - support for conditional &GET; requests by using ETags, or - they may send a redirect in response to a &GET; request. - Create clients so that these differences are accounted - for. -
- Authentication and Authorization - The &APIv2; uses the Keystone Identity Service as the default - authentication service. When Keystone is enabled, - users that submit requests to the OpenStack Networking - service must provide an authentication token in - X-Auth-Token - request header. You obtain the token by authenticating - to the Keystone endpoint. For more information about - Keystone, see the OpenStack Identity Service API v2.0 Reference. - When Keystone is enabled, the - tenant_id attribute is not - required in create requests because the tenant ID is - derived from the authentication token. - The default authorization settings allow only - administrative users to create resources on behalf of - a different tenant. - OpenStack Networking uses information received from - Keystone to authorize user requests. OpenStack - Networking handles the following types of - authorization policies: - - Operation-based - policies - Specify access criteria for specific - operations, possibly with fine-grained - control over specific attributes. - - - Resource-based - policies - Access a specific resource. Permissions - might or might not be granted depending on - the permissions configured for the - resource. Currently available for only the - network resource. - - - The actual authorization policies enforced in - OpenStack Networking might vary from deployment to - deployment. -
- -
- Request/Response Types - The &APIv2; supports the JSON data serialization - format. - - The format for both the request and the response can - be specified by using the Content-Type - header, the Accept header or adding the - .json extension to the request - URI. - - - JSON Request with Headers - POST /v1.0/tenants/tenantX/networks HTTP/1.1 -Host 127.0.0.1:9696 -Content-Type application/json -Accept application/json -Content-Length 57 - - - - JSON Response with Headers - HTTP/1.1 201 Created -Content-Type application/json -Content-Length 204 - - -
-
- Filtering and Column Selection - The &APIv2; supports filtering based on all top - level attributes of a resource. Filters are applicable - to all list requests. - For example, the following request returns all - networks named foobar: - GET /v2.0/networks?name=foobar - When you specify multiple filters, the &APIv2; - returns only objects that meet all filtering criteria. - The operation applies an AND condition among the - filters. - - OpenStack Networking does not offer an OR - mechanism for filters. - - Alternatively, you can issue a distinct request for - each filter and build a response set from the received - responses on the client-side. - By default, OpenStack Networking returns all - attributes for any show or list call. The &APIv2; has - a mechanism to limit the set of attributes returned. - For example, return id. - You can use the fields query - parameter to control the attributes returned from the - &APIv2;. - For example, the following request returns only - id and name - for each network: - GET /v2.0/networks.json?fields=id&fields=name -
-
- Synchronous versus Asynchronous Plug-in - Behavior - The &APIv2; presents a logical model of network - connectivity consisting of networks, ports, and - subnets. It is up to the OpenStack Networking plug-in - to communicate with the underlying infrastructure to - ensure packet forwarding is consistent with the - logical model. A plug-in might perform these operations - asynchronously. - When an API client modifies the logical model by - issuing an HTTP &POST;, &PUT;, or &DELETE; request, - the API call might return before the plug-in modifies - underlying virtual and physical switching devices. - However, an API client is guaranteed that all - subsequent API calls properly reflect the changed - logical model. - For example, if a client issues an HTTP &PUT; - request to set the attachment for a port, there is no - guarantee that packets sent by the interface named in - the attachment are forwarded immediately when the HTTP - call returns. However, it is guaranteed that a - subsequent HTTP &GET; request to view the attachment - on that port returns the new attachment value. - You can use the status attribute - with the network and port resources to determine - whether the OpenStack Networking plug-in has - successfully completed the configuration of the - resource. -
-
- Bulk Create Operations - The &APIv2; enables you to create several objects of - the same type in the same API request. Bulk create - operations use exactly the same API syntax as single - create operations except that you specify a list of - objects rather than a single object in the request - body. - Bulk operations are always performed atomically, - meaning that either all or none of the objects in the - request body are created. If a particular plug-in does - not support atomic operations, the &APIv2; emulates - the atomic behavior so that users can expect the same - behavior regardless of the particular plug-in running - in the background. - OpenStack Networking might be deployed without - support for bulk operations and when the client - attempts a bulk create operation, a - 400 - Bad Request error is - returned. - For information about how to submit bulk requests to - the &APIv2; see , , and . -
-
- Pagination - To reduce load on the service, list operations will - return a maximum number of items at a time. To - navigate the collection, the parameters limit, marker - and page_reverse can be set in the URI. For - example: - ?limit=100&marker=1234&page_reverse=False - The marker parameter is the - ID of the last item in the previous list. The - limit parameter sets the - page size. The page_reverse - parameter sets the page direction. These parameters - are optional. If the client requests a limit beyond - the maximum limit configured by the deployment, the - server returns the maximum limit number of - items. - For convenience, list responses contain atom "next" - links and "previous" links. The last page in the list - requested with 'page_reverse=False' will not contain - "next" link, and the last page in the list requested - with 'page_reverse=True' will not contain "previous" - link. The following examples illustrate two pages with - three items. The first page was retrieved - through: - &GET; http://127.0.0.1:9696/v2.0/networks.json?limit=2 - Pagination is an optional feature of OpenStack - Networking API, and it might be disabled. If - pagination is disabled, the pagination parameters will - be ignored and return all the items. - If a particular plug-in does not support pagination - operations, and pagination is enabled, the &APIv2; - will emulate the pagination behavior so that users can - expect the same behavior regardless of the particular - plug-in running in the background. - Unfortunately OpenStack Networking does not expose - any mechanism to tell user if pagination is supported - by particular plug-in or enabled. - - Network Collection, First Page: JSON - Request - - GET /v2.0/networks.json?limit=2 HTTP/1.1 -Host: 127.0.0.1:9696 -Content-Type: application/json -Accept: application/json - - - Network Collection, First Page: JSON - Response - - - - Network Collection, First Page: XML - Request - -GET /v2.0/networks.xml?limit=2 HTTP/1.1 -Host: 127.0.0.1:9696 -Content-Type: application/xml -Accept: application/xml - - - - Network Collection, First Page: XML - Response - - - The last page won't show the "next" links - - Network Collection, Last Page: JSON - Request - -GET /v2.0/networks.json?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718 HTTP/1.1 -Host: 127.0.0.1:9696 -Content-Type: application/json -Accept: application/json - - - - Network Collection, Last Page: JSON - Response - - - - Network Collection, Last Page: XML - Request - -GET /v2.0/networks.xml?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718 HTTP/1.1 -Host: 127.0.0.1:9696 -Content-Type: application/xml -Accept: application/xml - - - - Network Collection, Last Page: XML - Response - - -
-
- Sorting - The results of list operations can be ordered using - the 'sort_key' and 'sort_dir' parameters. Currently - sorting doesn't work with extended attributes of - resource. The 'sort_key' and 'sort_dir' can be - repeated, and the number of 'sort_key' and 'sort_dir' - provided must be same. The sort_dir parameter - indicates in which direction to sort. Acceptable - values are 'asc' (ascending) and 'desc' - (descending). - Sorting is optional feature of OpenStack Networking - API, and it might be disabled. If sorting is disabled, - the sorting parameters will be ignored. - If a particular plug-in does not support sorting - operations, and sorting is enabled, the &APIv2; will - emulate the sorting behavior so that users can expect - the same behavior regardless of the particular plug-in - running in the background. - Unfortunately OpenStack Networking does provide a - mechanism to tell users if specific plug-ins support or - have enabled sorting. -
-
- Extensions - The &APIv2; is extensible. - The purpose of &APIv2; extensions is to: - - - Introduce new features in the API without - requiring a version change. - - - Introduce vendor-specific niche - functionality. - - - Act as a proving ground for experimental - functionalities that might be included in a - future version of the API. - - - To programmatically determine which extensions are - available, issue a &GET; request on the - v2.0/extensions URI. - To query extensions individually by unique alias, - issue a &GET; request on the - /v2.0/extensions/alias_name - URI. Use this method to easily determine if an - extension is available. If the extension is not - available, a 404 - Not Found response is - returned. - You can extend existing core API resources with new - actions or extra attributes. Also, you can add new - resources as extensions. Extensions usually have tags - that prevent conflicts with other extensions that - define attributes or resources with the same names, - and with core resources and attributes. Because an - extension might not be supported by all plug-ins, the - availability of an extension varies with deployments - and the specific plug-in in use. - For more information regarding specific extensions, - see -
- -
- Faults - The &APIv2; returns an error response if a failure - occurs while processing a request. OpenStack - Networking uses only standard HTTP error codes. - 4xx errors indicate problems in - the particular request being sent from the - client. - - - - - - - Error - Description - - - - - 400 - Bad Request - Malformed request URI or body - - - Requested admin state invalid - - - Invalid values entered - - - Bulk operations disallowed - - - Validation failed - - - Method not allowed for request body (such - as trying to update attributes that can be - specified at create-time only) - - - 404 - Not Found - Non existent URI - - - Resource not found - - - 409 - Conflict - Port configured on network - - - IP allocated on subnet - - - Conflicting IP allocation pools for - subnet - - - 500 - Internal server error - Internal OpenStack Networking error - - - 503 - Service unavailable - Failure in Mac address generation - - - - Users submitting requests to the &APIv2; might also - receive the following errors: - - - 401 Unauthorized - If - invalid credentials are provided. - - - 403 Forbidden - If - the user cannot access a specific resource or - perform the requested operation. - - -
-
- - API Operations -
- Networks - Use the &APIv2; to manage network resources. - - - - - - - Verb - URI - Description - - - - - &GET; - /networks - Lists networks that the tenant who submits - the request can access. - - - &GET; - /networks/network_id - Shows information for a specified - network. - - - &POST; - /networks - Creates a network. - - - &PUT; - /networks/network-id - Updates a specified network. - - - &DELETE; - /networks/network-id - Deletes a specified network and its - associated resources. - - - - -
- List Networks - - - - - - - Verb - URI - Description - - - - - &GET; - /networks - Lists networks that the tenant who - submits the request can access. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401) - Lists networks that the tenant who submits the - request can access. The list shows the ID for each - network. - This operation does not require a request body, - unless the OpenStack Networking server is running - without Keystone integration. - This operation returns a response body. - - List Networks: JSON Request - GET /v2.0/networks -Accept: application/json - - - List Networks: JSON Response - - - - List Networks: XML Request - GET /v2.0/networks -Accept: application/xml - - - List Networks: XML Response - - -
- -
- Show Network - - - - - - - Verb - URI - Description - - - - - &GET; - /networks/network_id - Shows information for a specified - network. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401), Not Found - (404) - This operation returns the status, subnets, - name, admin state, tenant ID, and ID for the - specified network ID. - This operation does not require a request - body. - This operation returns a response body. - - Show Network: JSON Request - GET /v2.0/networks/afc75773-640e-403c-9fff-62ba98db1f19 -Accept: application/json - - - Show Network: JSON Response - - -
- -
- Create Network - - - - - - - Verb - URI - Description - - - - - &POST; - /networks - Creates a network. - - - - Normal Response Code: - 201 - - Error Response Codes: Bad Request - (400) Unauthorized - (401) - This operation does not require a request - body. If specified, the body might include one or - more of the following attributes: - - - name: - a string specifying a symbolic name for - the network, which is not required to be - unique; - - - admin_state_up: a bool - value specifying the administrative status - of the network; - - - shared: a bool value - specifying whether this network should be - shared across all tenants or not. Note - that the default policy setting restrict - usage of this attribute to administrative - users only; - - - tenant_id: a uuid - identifying the tenant which will own the - network. Only administrative users can set - the tenant identifier; this cannot be - changed using authorization - policies; - - - - Create Network: JSON Request - POST v2.0/networks.json -Content-Type: application/json -Accept: application/json - - - - Create Network: JSON Response - - -
- Bulk Create Networks - This operation enables you to create several - networks in a single request. - This operation requires a request - body. - This operation returns a response - body. - Specify a list of networks in the request - body, as shown in the following - example: - - Bulk Create Networks: JSON Request - POST v2.0/networks.json -Content-Type: application/json -Accept: application/json - - - - Bulk Create Networks: JSON Response - HTTP/1.1 201 OK -Content-Type: application/json; charset=UTF-8 - - - - The bulk create operation is always atomic. - Either all or no networks in the request body - are created. -
-
- -
- Update Network - - - - - - - Verb - URI - Description - - - - - &PUT; - /networks/network-id - Updates a specified network. - - - - Normal Response Code: - 200 - - Error Response Codes: Bad Request - (400) Unauthorized - (401), Forbidden - (403) Not Found - (404) - This operation requires a request body. You can - set the following attributes in the request - body: - - - - - - - - - - - - - - - - - - - -
Update Network Request Body - Attributes
AttributeDescription
nameThe name for the network.
admin_state_upSpecifies whether the admin state - is up or down. Set to - true for up and - false for down. - If down, the network does not - forward packets.
- You cannot update the status, - tenant_id, or - id attributes. If you try - to update these attributes, a - 400 - Bad Request error is - returned. - This operation returns a response body. - - Update operations in OpenStack Networking - adopt patch semantics. This implies that the - &APIv2; does not require the user to send the - whole resource to be updated, but just the - attributes that the user wishes to update, as - shown in the following example. - - - Update Network: JSON Request - PUT /v2.0/networks/fc68ea2c-b60b-4b4f-bd82-94ec81110766.json - -Content-Type: application/json -Accept: application/json - { - "network": - { - "name": "updated_name" - } -} - - - Update Network: JSON Response - status: 200 -content-length: 192 -content-type: application/json - -{ - "network": - { - "status": "ACTIVE", - "subnets": [], - "name": "updated_name", - "admin_state_up": false, - "shared": false, - "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" - } -} - -
-
- Delete Network - - - - - - - Verb - URI - Description - - - - - &DELETE; - /networks/network-id - Deletes a specified network and its - associated resources. - - - - Normal Response Code: - 204 - - Error Response Codes: Unauthorized - (401), Not Found - (404), Network In Use - (409) - This operation deletes an OpenStack Networking - network and its associated subnets provided that - no port is currently configured on the - network. - If ports are still configured on the network - that you want to delete, a - 409 - Network In Use error is - returned. - This operation does not require a request - body. - This operation does not return a response - body. - - Delete Network: JSON Request - DELETE /v2.0/networks/fc68ea2c-b60b-4b4f-bd82-94ec81110766 - -Content-Type: application/json -Accept: application/json - - - Delete Network: JSON Response - status: 204 - -
-
-
- Subnets - Use the &APIv2; to manage subnet resources. - - - - - - - Verb - URI - Description - - - - - &GET; - /subnets - Lists all subnets that are accessible to - the tenant who submits the request. - - - &GET; - /subnets/subnet_id - Lists detailed information for the - specified subnet. - - - &POST; - /subnets - Creates a subnet on the specified - network. - - - &PUT; - /subnets/subnet-id - Updates the specified subnet. - - - &DELETE; - /subnets/subnet-id - Removes the specified subnet. - - - - -
- List Subnets - - - - - - - Verb - URI - Description - - - - - &GET; - /subnets - Lists all subnets that are accessible - to the tenant who submits the - request. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401) - This operation returns a list of subnets objects - the tenant has access to. Default policy settings - returns exclusively subnets owned by the tenant - submitting the request, unless the request is - submitted by an user with administrative rights. - You can control which attributes are returned by - using the fields query parameter. You can - filter results by using query string parameters. - See . - This operation does not require a request - body. - This operation returns a response body. - - List Subnets: JSON Request - GET v2.0/subnets.json -Accept: application/json - - - List Subnets: JSON Response - - -
- -
- Show Subnet - - - - - - - Verb - URI - Description - - - - - &GET; - /subnets/subnet-id - Gets information about a specified - subnet. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401), Not Found - (404) - This operation returns data about the subnet - specified in the request URI. You can control - which attributes are returned by using the - fields - query parameter, as discussed in . - This operation does not require a request - body. - This operation returns a response body. - - Show Subnet: JSON Request - GET /v2.0/subnets/4156c7a5-e8c4-4aff-a6e1-8f3c7bc83861 -Accept: application/json - - - Show Subnet: JSON Response - status: 200 -content-length: 309 -content-type: application/json - - -
- -
- Create Subnet - - - - - - - Verb - URI - Description - - - - - &POST; - /subnets - Creates a subnet on the specified - network. - - - - Normal Response Code: Created - (201) - Error Response Codes: Bad Request - (400), Unauthorized - (401), Forbidden - (403), Not Found - (404), Conflict - (409) - This operation creates a new subnet on the - specified network. The network ID, - network_id, is - required. You must also specify the - cidr attribute for the - subnet, in the form: - network_address/prefixThe - remaining attributes are optional. - By default, OpenStack Networking creates IP v4 - subnets. To create an IP v6 subnet, you must - specify the value 6 for the - ip_version attribute in - the request body. OpenStack Networking does not - try to derive the correct IP version from the - provided CIDR. If the parameter for the gateway - address, gateway_ip, is not - specified, OpenStack Networking allocates an - address from the cidr for the gateway for the - subnet. - To specify a subnet without a gateway, specify - the value null for the - gateway_ip attribute in the - request body. If allocation pools attribute, - allocation_pools, is not - specified, OpenStack Networking automatically - allocates pools for covering all IP addresses in - the CIDR, excluding the address reserved for the - subnet gateway. Otherwise, you can explicitly - specify allocation pools as shown in the following - example. - When allocation_pools and - gateway_ip are both - specified, it is up to the user ensuring the - gateway ip does not overlap with the specified - allocation pools; otherwise a 409 - Conflict error will be - returned. - - Create Subnet: JSON Request - POST /v2.0/subnets -Content-Type: application/json -Accept: application/json - { - "subnet":{ - "network_id":"ed2e3c10-2e43-4297-9006-2863a2d1abbc", - "ip_version":4, - "cidr":"10.0.3.0/24", - "allocation_pools":[ - { - "start":"10.0.3.20", - "end":"10.0.3.150" - } - ] - } -} - - - Create Subnet: JSON Response - - -
- Bulk Create Subnets - This operation requires a request - body. - This operation returns a response - body. - This operation enables you to create several - subnets in a single request. Specify a list of - subnets in the request body, as shown in the - following example: - - Bulk Create Subnets: JSON Request - POST /v2.0/subnets -Content-Type: application/json -Accept: application/json - - - - Bulk Create Subnets: JSON Response - HTTP/1.1 201 OK -Content-Type: application/json; charset=UTF-8 - - - - The bulk create operation is always atomic. - Either all subnets or no subnets in the - request body are created. -
-
- -
- Update Subnet - - - - - - - Verb - URI - Description - - - - - &PUT; - /subnets/subnet-id - Updates the specified subnet. - - - - Normal Response Code: Ok - (200) - Error Response Codes: Bad Request - (400), Unauthorized - (401), Forbidden - (403), Not Found - (404) - This operation updates the specified subnet. - Some attributes, such as IP version - (ip_version), CIDR - (cidr), and IP - allocation pools - (allocation_pools) - cannot be updated. Attempting to update these - attributes results in a 400 - Bad Request error. - This operation requires a request body. - This operation returns a response body. - - Update operations in OpenStack Networking - adopt patch semantics. This implies that the - &APIv2; does not require you to send the whole - resource to be updated, but just the - attributes that you wish to update, as shown - in the following example. - - - Update Subnet: JSON Request - PUT /v2.0/subnets/9436e561-47bf-436a-b1f1-fe23a926e031 -Content-Type: application/json -Accept: application/json - { - "subnet":{ - "gateway_ip":"10.0.3.254", - "name":"new_name" - } -} - - - Update Subnet: JSON Response - - -
- -
- Delete Subnet - - - - - - - Verb - URI - Description - - - - - &DELETE; - /subnets/subnet-id - Removes the specified subnet. - - - - Normal Response Code: - 204 - - Error Response Codes: Unauthorized - (401), Not Found - (404), Conflict - (409) - This operation removes a subnet from a - OpenStack Networking network. The operation fails - if IP addresses from the subnet that you want to - delete are still allocated. - This operation does not require a request - body. - This operation does not return a response - body. - - Delete Subnet: JSON Request - DELETE /v2.0/subnets/9436e561-47bf-436a-b1f1-fe23a926e031 -Accept: application/json - - - Delete Subnet: Response - Status: 204 - -
-
-
- Ports - Use the &APIv2; to manage port resources. - - - - - - - Verb - URI - Description - - - - - &GET; - /ports - Lists ports to which the tenant has - access. - - - &GET; - /ports/port_id - Shows information for a specified - port. - - - &POST; - /ports - Creates a port for a specified - network. - - - &PUT; - /ports/port-id - Updates a specified port. - - - &DELETE; - /ports/port-id - Removes a specified port from an OpenStack - Networking network. - - - - -
- List Ports - - - - - - - Verb - URI - Description - - - - - &GET; - /ports - Lists ports to which the tenant has - access. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401) - This operation lists ports to which the tenant - has access. Default policy settings return only - those ports that are owned by the tenant who - submits the request, unless the request is - submitted by an user with administrative - rights. - Users can control which attributes are returned - by using the fields query - parameter. Additionally, you can filter results by - using query string parameters. - This operation does not require a request - body. - This operation returns a response body. The - response body contains the following - fields: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
List Ports Response Fields
FieldDescription
admin_state_upAdministrative state of the - router.
device_idThe ID of the device that uses - this port. For example, a virtual - server,
device_ownerThe ID of the entity that uses - this port. For example, a dhcp - agent.
fixed_ipsIP addresses for the port. - Includes the IP address and subnet - ID.
idThe ID of the port.
mac_addressThe MAC address of the port.
nameThe name of the port.
network_idThe ID of the attached - network.
security_groupsThe IDs of any attached security - groups.
statusThe status of the port: UP or - DOWN.
tenant_idThe ID of the tenant who owns the - network. Only administrative users - can specify a tenant_id other than - their own.
-
- - List Ports: JSON Request - GET /v2.0/ports.json HTTP/1.1 -content-type: application/json -accept: application/json - - - List Ports: JSON Response - - -
- -
- Show Port - - - - - - - Verb - URI - Description - - - - - &GET; - /ports/port-id - Shows information for a specified - port. - - - - Normal Response Code: - 200 - - Error Response Codes: Unauthorized - (401), Not Found - (404) - This operation returns information for the port - specified in the request URI. - This operation does not require a request - body. - This operation returns a response body. - - Show Port: JSON Request - GET /v2.0/ports/ebe69f1e-bc26-4db5-bed0-c0afb4afe3db.json -accept: application/json - - - Show Port: JSON Response - - -
- -
- Create Port - - - - - - - Verb - URI - Description - - - - - &POST; - /ports - Creates a port on a specified - network. - - - - Normal Response Code: - 201 - - Error Response Codes: Bad Request - (400), Unauthorized - (401), Forbidden - (403), Not Found - (404), Conflict - (409), MAC generation - failure (503) - This operation creates a new OpenStack - Networking port. You must specify the network - where the port is to created on the - network_id attribute in - the request body. - If you specify a security group ID, this port is - associated with the security group. You can - associate more than one security group with a - port. - You can also specify the following optional - attributes: - - - Security groups. Specify one or more - security group IDs. - - - A symbolic name for the port - - - MAC address. If you specify an address - that is not valid, a 400 Bad - Request error is - returned - If the specified MAC address is already - in use, a 409 Conflict - error is returned. - When the MAC address is not specified, - OpenStack Networking tries to allocate one - for the port being created. - If a failure occurs while generating the - address, a 503 Service - Unavailable error is - returned. - - - Administrative state. Set to - true for up, and - false for down. - - - - Fixed IPs - - If you specify just a subnet - ID, OpenStack Networking allocates - an available IP from that subnet to - the port. - - - If you specify both a subnet - ID and an IP address, OpenStack - Networking tries to allocate the - specified address to the - port. - - - - - Host routes for the port, in addition to - the host routes defined for the subnets - with which the port is associated. - - - This operation requires a request body. - This operation returns a response body. - - Create Port: JSON Request - POST /v2.0/ports.json HTTP/1.1 -Content-Length: 158 -content-type: application/json -accept: application/json - - - - Create Port: JSON Response - - -
- Bulk Create Port - This operation requires a request - body. - This operation returns a response - body. - This operation enables you to create several - ports in a single request. Specify a list of - ports in the request body. - - Bulk Create Ports: JSON Request - POST /v2.0/ports -Content-Type: application/json -Accept: application/json - - - - Bulk Create Ports: JSON Response - HTTP/1.1 201 OK -Content-Type: application/json; charset=UTF-8 - - - - The &APIv2; always guarantees the atomic - completion of the bulk operation. -
-
- -
- Update Port - - - - - - - Verb - URI - Description - - - - - &PUT; - /ports/port-id - Updates a specified port. - - - - Normal Response Code: - 200 - - Error Response Codes: Bad Request - (400), Unauthorized - (401), Forbidden - (403), Not Found - (404), Conflict - (409) - You can use this operation to update information - for a port, such as its symbolic name and - associated IPs. When you update IPs for a port, - the previously associated IPs are removed, - returned to the respective subnets allocation - pools, and replaced by the IPs specified in the - body for the update request. Therefore, this - operation replaces the - fixed_ip attribute when - it is specified in the request body. If the new IP - addresses are not valid, for example, they are - already in use, the operation fails and the - existing IP addresses are not removed from the - port. - When you update security groups for a port and - the operation succeeds, any associated security - groups are removed and replaced by the security - groups specified in the body for the update - request. Therefore, this operation replaces the - security_groups attribute when you specify it in - the request body. However, if the specified - security groups are not valid, the operation fails - and the existing security groups are not removed - from the port. - This operation requires a request body. - This operation returns a response body. - - Update Port: JSON Request - PUT /v2.0/ports/1d8591f4-7b62-428e-857d-e82a15e5a7f1.json HTTP/1.1 -Content-Length: 63 -content-type: application/json -accept: application/json - - - - Update Port: JSON Response - - -
- -
- Delete Port - - - - - - - Verb - URI - Description - - - - - &DELETE; - /ports/port-id - Removes a specified port from an - OpenStack Networking network. - - - - Normal Response Code: - 204 - - Error Response Codes: Unauthorized - (401), Forbidden - (403), Not Found - (404) - This operation removes a port from an OpenStack - Networking network. If IP addresses are associated - with the port, they are returned to the respective - subnets allocation pools. - This operation does not require a request - body. - This operation does not return a response - body. - - Delete Port: JSON Request - DELETE /v2.0/ports/ebe69f1e-bc26-4db5-bed0-c0afb4afe3db.json -accept: application/json - - - Delete Port: JSON Response - status: 204 - -
-
-
- - API Extensions - The API extensions augment the core API. An API - extension extends one or more of the following components - of the core API: - - - Resources. An extension defines new object - classes. - - - Attributes. An extended attribute defines a new - attribute on existing resources. Prefixed by the - extension name. - - - Actions. An extended action defines a new - operation on an existing resource. - - - Generic API extensions are not plug-in-specific. For - information about plug-in-specific extensions that are - shipped with OpenStack Networking, see the extension - documentation in the source code tree. -
- List Available Extensions - You can list available extensions through the - /v2.0/extensions - URI. - - You must authenticate these requests just like - any other API request. - - The following example response shows a list of - extensions: - Status Code: 200 OK -Connection: keep-alive -Content-Length: 654 -Content-Type: application/xml; charset=UTF-8 -Date: Wed, 12 Sep 2012 11:32:56 GMT - - Also, you can query for specific extension using the - extension alias. For instance, querying - /v2.0/extensions/router, - results in the following response: - Status Code: 200 OK -Connection: keep-alive -Content-Length: 350 -Content-Type: application/xml; charset=UTF-8 -Date: Wed, 12 Sep 2012 11:36:20 GMT - -
- - - - - - - - - - - - - - - - -
+ + + + + diff --git a/v2.0/neutron-extgwmodes-ext.xml b/v2.0/neutron-extgwmodes-ext.xml deleted file mode 100644 index 8adb424..0000000 --- a/v2.0/neutron-extgwmodes-ext.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - '> - - - - - - '> -]> -
- Configurable external gateway modes extension - By default, when a gateway is attached to a router using the Neutron L3 extension, Network - Address Translation (NAT) is enabled for traffic generated by subnets attached to the - router. With this extension, the user will have the option of choosing whether SNAT - should be enabled or not on a router basis. - This is achieved simply by specifying a boolean attribute, enable_snat, - in the external_gateway_info attribute of the router - resource. - This extension redefines the external_gateway_info attribute as depicted in the following - table. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
external_gateway_info attributes
Attribute Type Required Default Value Validation Constraints Notes
network_idUUIDYesN/AMust be a valid uuid representative of an external network. -
enable_snatBooleanNoTrue{True|False}The default setting is True to ensure backward compatibility - for plugins supporting this extension.
- SNAT can be enabled or disabled at any time on a Neutron router regardless of the - current status of floating IPs. Floating IPs will continue working even when SNAT is - disabled. -
- List Routers - - - - - - - - Verb - URI - Description - - - - - &GET; - /routers - Retrieve Neutron routers - - - - - Success and error response codes are not changed with regards to the operation as - introduced by the L3 API extension. - When this extension is enabled, this operation will also return the current Source - NAT status for configured routers, as shown in the sample below. - The response for the show router operation is the same, with - the obvious exception that a single router is returned. - - Router list with configurable external gateway modes enabled - - -
-
- Create Router with external gateway - - - - - - - - Verb - URI - Description - - - - - &POST; - /routers - Create a new Neutron router - - - - - - Success and error response codes are not changed with regards to the operation as - introduced by the L3 API extension. - Neutron API users can specify whether SNAT should be performed on the network - specifed as the router's external gateway by setting enable_snat in - external_gateway_info to either True or - False; the default value is True. - - Create router with SNAT disabled - - -
-
- Update Router's external gateway info - - - - - - - - Verb - URI - Description - - - - - &PUT; - /routers/router_id - Create a new Neutron router - - - - - Success and error response codes are not changed with regards to the operation as - introduced by the L3 API extension. - Neutron API users can enable or disable SNAT on a router specifying the - enable_snat attribute in the - external_gateway_info attribute for the router resource. This - operation can be either used for updating the SNAT status only, the - external network, or both attributes at the same time. In any case, if - the enable_snat attribute is not specified, it will default to - True. For instance, if the current SNAT status is disabled, and - the router's gateway is updated to a different external network without specifying - enable_snat, SNAT will be enabled for the new network. - It is important to note that whenever updating a router's external gateway - information, the network_id parameter must be specified always, even - if the final goal is just to enable or disable SNAT for the router on the same - external network. - The rest of this section provides some samples for updating a router's external gateway - info with SNAT mode. - - - Disable SNAT for the current external network - - - - Change external network and enable SNAT - - - - Change external network and keep SNAT disabled - - - -
- - -
diff --git a/v2.0/neutron-quotas-ext.xml b/v2.0/neutron-quotas-ext.xml deleted file mode 100644 index 82e8167..0000000 --- a/v2.0/neutron-quotas-ext.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - '> - - - - - - '> - -]> -
- Quotas - The neutron.conf configuration file defines default quota - values that are applied identically to all tenants. This extension enables an admin user to - define quotas values on a per-tenant basis. For example, an admin user can permit tenant A - to create at most X networks, and permit tenant B to create at most Y networks. - If quotas per tenant is needed, you must enable the Quotas - extension. For information, see the OpenStack - Cloud Administrator Guide. - - - - - - - Verb - URI - Description - - - - - &GET; - /quotas - Lists quotas for tenants who have non-default - quota values. - - - &GET; - /quotas/tenant_id - Shows quotas for a specified tenant. - - - &PUT; - /quotas/tenant_id - Updates quotas for a specified tenant. Use when - non-default quotas are desired. - - - &DELETE; - /quotas/tenant_id - Resets quotas to default values for a specified - tenant. - - - - -
- List Quotas - - - - - - - Verb - URI - Description - - - - - &GET; - /quotas - Lists quotas for tenants who have non-default - quota values. - - - - Normal Response Code: 200 - - Error Response Codes: Unauthorized - (401), Forbidden - (403) - This operation does not require a request body. - This operation returns a response body. - - List Quotas: JSON Request - GET /v2.0/quotas HTTP/1.1 -Host: controlnode:9696 -User-Agent: python-neutronclient -Content-Type: application/json -Accept: application/json -X-Auth-Token: c52a1b304fec4ca0ac85dc1741eec6e2 - - - List Quotas: JSON Response - - -
- -
- Show Quotas - - - - - - - Verb - URI - Description - - - - - &GET; - /quotas/tenant_id - Shows quotas for a specified tenant. - - - - Normal Response Code: 200 - - Error Response Codes: Unauthorized - (401), Forbidden - (403) - This operation returns information for the quotas of the - tenant specified in the request URI. - This operation does not require a request body. - This operation returns a response body. - - Show Quotas: JSON Request - GET /v2.0/quotas/5fcfbc3283a142a5bb6978b549a511ac.json HTTP/1.1 -Host: controlnode:9696 -User-Agent: python-neutronclient -Content-Type: application/json -Accept: application/json -X-Auth-Token: a54d6fdda41341f892150e2aaf648f0d - - - Show Quotas: JSON Response - - -
- -
- Update Quotas - - - - - - - Verb - URI - Description - - - - - &PUT; - /quotas/tenant_id - Updates quotas for a specified tenant. Use - when non-default quotas are desired. - - - - Normal Response Code: 200 - - Error Response Codes: Unauthorized - (401), Forbidden - (403) - This operation updates quotas for a given tenant. - This operation requires a request body. The body - contains the resource names and their new quota values. - This operation returns a response body. - - Update Quotas: JSON Request - PUT /v2.0/quotas/5fcfbc3283a142a5bb6978b549a511ac.json HTTP/1.1 -Host: controlnode:9696 -User-Agent: python-neutronclient -Content-Type: application/json -Accept: application/json -X-Auth-Token: 4cbb09e780434b249ff596d6979fd8fc -Content-Length: 88 - - - - Update Quotas: JSON Response - - -
- -
- Reset Quotas - - - - - - - Verb - URI - Description - - - - - &DELETE; - /quotas/tenant_id - Resets quotas to default values for a - specified tenant. - - - - Normal Response Code: 204 - - Error Response Codes: Unauthorized - (401), Forbidden - (403) - This operation resets quotas of a given tenant to - default values. - This operation does not require a request body. - This operation does not return a response body. - - Reset Quotas: JSON Request - DELETE /v2.0/quotas/5fcfbc3283a142a5bb6978b549a511ac.json HTTP/1.1 -Host: controlnode:9696 -User-Agent: python-neutronclient -Content-Type: application/json -Accept: application/json -X-Auth-Token: 903857de62274690911c364b60582440 - -
-
diff --git a/v2.0/samples/network-post-req.xml b/v2.0/samples/network-post-req.xml index 6531ee9..e39bc94 100644 --- a/v2.0/samples/network-post-req.xml +++ b/v2.0/samples/network-post-req.xml @@ -1,2 +1,3 @@ - \ No newline at end of file + + sample_network + diff --git a/v2.0/samples/network-post-resp.json b/v2.0/samples/network-post-resp.json new file mode 100644 index 0000000..1729132 --- /dev/null +++ b/v2.0/samples/network-post-resp.json @@ -0,0 +1,15 @@ +'status': '201' +'content-length': '194' +'content-type': 'application/json; + +{ + "network": { + "admin_state_up": true, + "id": "850d3f2c-f0a5-4f8b-b1cf-5836fc0be940", + "name": "sample_network", + "shared": false, + "status": "ACTIVE", + "subnets": [], + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + } +} diff --git a/v2.0/samples/network-post-resp.xml b/v2.0/samples/network-post-resp.xml new file mode 100644 index 0000000..4101965 --- /dev/null +++ b/v2.0/samples/network-post-resp.xml @@ -0,0 +1,13 @@ + + + ACTIVE + + sample_network + 4be6b806faa0491eb358018bbe9f0d4e + True + False + 0657ef52-d3f6-4320-9c26-015a3e9badea + diff --git a/v2.0/samples/network-put-update-resp.json b/v2.0/samples/network-put-update-resp.json new file mode 100644 index 0000000..f9b1f94 --- /dev/null +++ b/v2.0/samples/network-put-update-resp.json @@ -0,0 +1,12 @@ +{ + "network": + { + "status": "ACTIVE", + "subnets": ["e12f0c45-46e3-446a-b207-9474b27687a6"], + "name": "private", + "admin_state_up": true, + "tenant_id": "625887121e364204873d362b553ab171", + "id": "9d83c053-b0a4-4682-ae80-c00df269ce0a", + "shared": false + } +} diff --git a/v2.0/samples/network-put-update-resp.xml b/v2.0/samples/network-put-update-resp.xml new file mode 100644 index 0000000..3e90de6 --- /dev/null +++ b/v2.0/samples/network-put-update-resp.xml @@ -0,0 +1,16 @@ + + + ACTIVE + + e12f0c45-46e3-446a-b207-9474b27687a6 + + private + + True + 625887121e364204873d362b553ab171 + local + False + False + 9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/samples/network-put-update.req.json b/v2.0/samples/network-put-update.req.json new file mode 100644 index 0000000..37fe569 --- /dev/null +++ b/v2.0/samples/network-put-update.req.json @@ -0,0 +1,6 @@ +{ + "network": + { + "name": "updated_name" + } +} diff --git a/v2.0/samples/network-put-update.req.xml b/v2.0/samples/network-put-update.req.xml new file mode 100644 index 0000000..d43bdde --- /dev/null +++ b/v2.0/samples/network-put-update.req.xml @@ -0,0 +1,3 @@ + + nova2 + diff --git a/v2.0/samples/networks-create-bulk-resp.json b/v2.0/samples/networks-create-bulk-resp.json new file mode 100644 index 0000000..7c10808 --- /dev/null +++ b/v2.0/samples/networks-create-bulk-resp.json @@ -0,0 +1,28 @@ +{ +"networks": [ +{ +"status": "ACTIVE", +"subnets": [], +"name": "sample_network_1", +"provider:physical_network": null, +"admin_state_up": false, +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"provider:network_type": "local", +"router:external": false, +"shared": false, +"id": "e9330b1f-a2ef-4160-a951-169ee6ab17f5", +"provider:segmentation_id": null +}, +{ +"status": "ACTIVE", +"subnets": [], +"name": "sample_network_2", +"provider:physical_network": null, +"admin_state_up": false, +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"provider:network_type": "local", +"router:external": false, +"shared": false, +"id": "cfb5f52c-dfe2-4357-a10d-a225693e2b84", +"provider:segmentation_id": null}] +} diff --git a/v2.0/samples/networks-create-bulk-resp.xml b/v2.0/samples/networks-create-bulk-resp.xml new file mode 100644 index 0000000..93eff7f --- /dev/null +++ b/v2.0/samples/networks-create-bulk-resp.xml @@ -0,0 +1,33 @@ + + + + ACTIVE + + sample_network_1 + + True + 60cd4f6dbc2f491982a284e7b83b5be3 + local + False + False + 9eb3ce34-183b-4a75-b08f-d6a3d241e68b + + + + ACTIVE + + sample_network_2 + + True + 60cd4f6dbc2f491982a284e7b83b5be3 + local + False + False + df679a25-915d-41ed-b5ec-721481ddfd56 + + + diff --git a/v2.0/samples/networks-get-detail-resp.json b/v2.0/samples/networks-get-detail-resp.json new file mode 100644 index 0000000..f9b1f94 --- /dev/null +++ b/v2.0/samples/networks-get-detail-resp.json @@ -0,0 +1,12 @@ +{ + "network": + { + "status": "ACTIVE", + "subnets": ["e12f0c45-46e3-446a-b207-9474b27687a6"], + "name": "private", + "admin_state_up": true, + "tenant_id": "625887121e364204873d362b553ab171", + "id": "9d83c053-b0a4-4682-ae80-c00df269ce0a", + "shared": false + } +} diff --git a/v2.0/samples/networks-get-detail-resp.xml b/v2.0/samples/networks-get-detail-resp.xml new file mode 100644 index 0000000..3e90de6 --- /dev/null +++ b/v2.0/samples/networks-get-detail-resp.xml @@ -0,0 +1,16 @@ + + + ACTIVE + + e12f0c45-46e3-446a-b207-9474b27687a6 + + private + + True + 625887121e364204873d362b553ab171 + local + False + False + 9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/samples/networks-get-resp.xml b/v2.0/samples/networks-get-resp.xml index 70d5df4..6c4f7ae 100644 --- a/v2.0/samples/networks-get-resp.xml +++ b/v2.0/samples/networks-get-resp.xml @@ -1,5 +1,6 @@ @@ -9,11 +10,14 @@ a318fcb4-9ff0-4485-b78c-9e6738c21b26 private + True 625887121e364204873d362b553ab171 + local False False 9d83c053-b0a4-4682-ae80-c00df269ce0a + ACTIVE @@ -21,10 +25,13 @@ aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 nova + True 63878e4c5dd649d2a980e37aefddfa87 + local True False ebda9658-093b-41ba-80ce-0cf8cb8365d4 + diff --git a/v2.0/samples/networks-post-create-bulk-req.json b/v2.0/samples/networks-post-create-bulk-req.json new file mode 100644 index 0000000..8527240 --- /dev/null +++ b/v2.0/samples/networks-post-create-bulk-req.json @@ -0,0 +1,11 @@ +{ +"networks": [ +{ +"name": "sample_network_1", +"admin_state_up": false +}, +{ +"name": "sample_network_2", +"admin_state_up": false +}] +} diff --git a/v2.0/samples/networks-post-create-bulk-req.xml b/v2.0/samples/networks-post-create-bulk-req.xml new file mode 100644 index 0000000..cfc344f --- /dev/null +++ b/v2.0/samples/networks-post-create-bulk-req.xml @@ -0,0 +1,8 @@ + + + sample_network_1 + + + sample_network_2 + + diff --git a/v2.0/samples/port-post-create-req.json b/v2.0/samples/port-post-create-req.json new file mode 100644 index 0000000..26c40f2 --- /dev/null +++ b/v2.0/samples/port-post-create-req.json @@ -0,0 +1,8 @@ +{ + "port": { + "admin_state_up": true, + "device_id": "d6b4d3a5-c700-476f-b609-1493dd9dadc0", + "name": "port1", + "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12" + } +} \ No newline at end of file diff --git a/v2.0/samples/ports-create-bulk-resp.json b/v2.0/samples/ports-create-bulk-resp.json new file mode 100644 index 0000000..883d029 --- /dev/null +++ b/v2.0/samples/ports-create-bulk-resp.json @@ -0,0 +1,49 @@ +{ + "ports":[ + { + "status":"DOWN", + "binding:host_id":null, + "name":"sample_port_1", + "admin_state_up":true, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce", + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "binding:vif_type":"ovs", + "device_owner":"", + "binding:capabilities":{ + "port_filter":true + }, + "mac_address":"fa:16:3e:2e:7c:8a", + "fixed_ips":[ + + ], + "id":"8fb361d8-bab0-418d-b1b8-7204a230fb06", + "security_groups":[ + "99f465bc-0d7c-4142-8829-7ae0179f2fa8" + ], + "device_id":"" + }, + { + "status":"DOWN", + "binding:host_id":null, + "name":"sample_port_2", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce", + "tenant_id":"60cd4f6dbc2f491982a284e7b83b5be3", + "binding:vif_type":"ovs", + "device_owner":"", + "binding:capabilities":{ + "port_filter":true + }, + "mac_address":"fa:16:3e:0a:4e:13", + "fixed_ips":[ + + ], + "id":"d4c93b0b-f593-424e-a199-d648478a5a3c", + "security_groups":[ + "99f465bc-0d7c-4142-8829-7ae0179f2fa8" + ], + "device_id":"" + } + ] +} + diff --git a/v2.0/samples/ports-create-bulk-resp.xml b/v2.0/samples/ports-create-bulk-resp.xml new file mode 100644 index 0000000..0b806ce --- /dev/null +++ b/v2.0/samples/ports-create-bulk-resp.xml @@ -0,0 +1,46 @@ + + + + DOWN + + test_port_1 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + ovs + + + True + + fa:16:3e:c9:8d:cf + + 7f0aa3f1-883a-43b2-8d1b-e85fac52b417 + + 99f465bc-0d7c-4142-8829-7ae0179f2fa8 + + + + + DOWN + + test_port_2 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + ovs + + + True + + fa:16:3e:79:90:81 + + a4a81484-c1c4-4b2b-95bc-f8c4484241d0 + + 99f465bc-0d7c-4142-8829-7ae0179f2fa8 + + + + diff --git a/v2.0/samples/ports-get-resp.json b/v2.0/samples/ports-get-resp.json new file mode 100644 index 0000000..dc2dde2 --- /dev/null +++ b/v2.0/samples/ports-get-resp.json @@ -0,0 +1,88 @@ +{ + "ports":[ + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "tenant_id":"63878e4c5dd649d2a980e37aefddfa87", + "binding:vif_type":"ovs", + "device_owner":"compute:None", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:b9:ef:05", + "fixed_ips":[ + { + "subnet_id":"aca4d43c-c48c-4a2c-9bb6-ba374ef7e135", + "ip_address":"172.24.4.227" + } + ], + "id":"664ebd1a-facd-4c20-948c-07a784475ab0", + "device_id":"f288bb5f-920d-4276-8345-2c0319c16f58" + }, + { + "status":"DOWN", + "name":"", + "admin_state_up":true, + "network_id":"ebda9658-093b-41ba-80ce-0cf8cb8365d4", + "tenant_id":"", + "binding:vif_type":"ovs", + "device_owner":"network:router_gateway", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:4a:3a:a2", + "fixed_ips":[ + { + "subnet_id":"aca4d43c-c48c-4a2c-9bb6-ba374ef7e135", + "ip_address":"172.24.4.226" + } + ], + "id":"c5ca7017-c390-4ccc-8cd7-333747e57fef", + "device_id":"0dc517bf-9169-4aa6-88b7-569219962881" + }, + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"9d83c053-b0a4-4682-ae80-c00df269ce0a", + "tenant_id":"625887121e364204873d362b553ab171", + "binding:vif_type":"ovs", + "device_owner":"network:router_interface", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:2d:dc:7e", + "fixed_ips":[ + { + "subnet_id":"a318fcb4-9ff0-4485-b78c-9e6738c21b26", + "ip_address":"10.0.0.1" + } + ], + "id":"d7815f5b-a228-47bb-a5e5-f139c4e476f6", + "device_id":"0dc517bf-9169-4aa6-88b7-569219962881" + }, + { + "status":"ACTIVE", + "name":"", + "admin_state_up":true, + "network_id":"9d83c053-b0a4-4682-ae80-c00df269ce0a", + "tenant_id":"625887121e364204873d362b553ab171", + "binding:vif_type":"ovs", + "device_owner":"network:dhcp", + "binding:capabilities":{ + "port_filter":false + }, + "mac_address":"fa:16:3e:73:6d:1c", + "fixed_ips":[ + { + "subnet_id":"a318fcb4-9ff0-4485-b78c-9e6738c21b26", + "ip_address":"10.0.0.2" + } + ], + "id":"f8639521-fab2-4879-94b2-83a47bee8a26", + "device_id":"dhcpe1b8334f-9be9-5e49-aeee-b31e6df6c847-9d83c053-b0a4-4682-ae80-c00df269ce0a" + } + ] +} \ No newline at end of file diff --git a/v2.0/samples/ports-get-resp.xml b/v2.0/samples/ports-get-resp.xml new file mode 100644 index 0000000..37759d6 --- /dev/null +++ b/v2.0/samples/ports-get-resp.xml @@ -0,0 +1,87 @@ + + + + ACTIVE + + True + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + 63878e4c5dd649d2a980e37aefddfa87 + ovs + compute:None + + False + + fa:16:3e:b9:ef:05 + + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + 172.24.4.227 + + + 664ebd1a-facd-4c20-948c-07a784475ab0 + f288bb5f-920d-4276-8345-2c0319c16f58 + + + DOWN + + True + ebda9658-093b-41ba-80ce-0cf8cb8365d4 + + ovs + network:router_gateway + + False + + fa:16:3e:4a:3a:a2 + + + aca4d43c-c48c-4a2c-9bb6-ba374ef7e135 + 172.24.4.226 + + + c5ca7017-c390-4ccc-8cd7-333747e57fef + 0dc517bf-9169-4aa6-88b7-569219962881 + + + ACTIVE + + True + 9d83c053-b0a4-4682-ae80-c00df269ce0a + 625887121e364204873d362b553ab171 + ovs + network:router_interface + + False + + fa:16:3e:2d:dc:7e + + + a318fcb4-9ff0-4485-b78c-9e6738c21b26 + 10.0.0.1 + + + d7815f5b-a228-47bb-a5e5-f139c4e476f6 + 0dc517bf-9169-4aa6-88b7-569219962881 + + + ACTIVE + + True + 9d83c053-b0a4-4682-ae80-c00df269ce0a + 625887121e364204873d362b553ab171 + ovs + network:dhcp + + False + + fa:16:3e:73:6d:1c + + + a318fcb4-9ff0-4485-b78c-9e6738c21b26 + 10.0.0.2 + + + f8639521-fab2-4879-94b2-83a47bee8a26 + dhcpe1b8334f-9be9-5e49-aeee-b31e6df6c847-9d83c053-b0a4-4682-ae80-c00df269ce0a + + diff --git a/v2.0/samples/ports-post-create-bulk-req.json b/v2.0/samples/ports-post-create-bulk-req.json new file mode 100644 index 0000000..0be6798 --- /dev/null +++ b/v2.0/samples/ports-post-create-bulk-req.json @@ -0,0 +1,14 @@ +{ + "ports":[ + { + "name":"sample_port_1", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce" + }, + { + "name":"sample_port_2", + "admin_state_up":false, + "network_id":"a3775a7d-9f8b-4148-be81-c84bbd0837ce" + } + ] +} \ No newline at end of file diff --git a/v2.0/samples/ports-post-create-bulk-req.xml b/v2.0/samples/ports-post-create-bulk-req.xml new file mode 100644 index 0000000..7b93e74 --- /dev/null +++ b/v2.0/samples/ports-post-create-bulk-req.xml @@ -0,0 +1,11 @@ + + + + test_port_1 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + + + test_port_2 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + + diff --git a/v2.0/samples/subnets-create-bulk-resp.json b/v2.0/samples/subnets-create-bulk-resp.json new file mode 100644 index 0000000..70086c8 --- /dev/null +++ b/v2.0/samples/subnets-create-bulk-resp.json @@ -0,0 +1,28 @@ +{ +"subnets": [ +{ +"name": "sample_subnet_1", +"enable_dhcp": true, +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"dns_nameservers": [], +"allocation_pools":[{"start": "10.100.0.2", "end": "10.100.255.254"}], +"host_routes": [], +"ip_version": 4, +"gateway_ip": "10.100.0.1", +"cidr": "10.100.0.0/16", +"id": "70ffbaeb-4b43-4605-abe6-4c5bdbb8236b" +}, +{ +"name": "sample_subnet_2", +"enable_dhcp": true, +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"tenant_id": "60cd4f6dbc2f491982a284e7b83b5be3", +"dns_nameservers": [], +"allocation_pools": [{"start": "172.16.0.2", "end": "172.31.255.254"}], +"host_routes": [], +"ip_version": 4, +"gateway_ip": "172.16.0.1", +"cidr": "172.16.0.0/12", +"id": "d849e3fc-557d-4b27-8f1c-aceca1daa410"}] +} diff --git a/v2.0/samples/subnets-create-bulk-resp.xml b/v2.0/samples/subnets-create-bulk-resp.xml new file mode 100644 index 0000000..fec5e87 --- /dev/null +++ b/v2.0/samples/subnets-create-bulk-resp.xml @@ -0,0 +1,41 @@ + + + + test_subnet_1 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + + + + 10.0.0.2 + 10.255.255.254 + + + + 4 + 10.0.0.1 + 10.0.0.0/8 + bd3fd365-fe19-431a-be63-07017a09316c + + + test_subnet_2 + True + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 60cd4f6dbc2f491982a284e7b83b5be3 + + + + 192.168.0.2 + 192.168.255.254 + + + + 4 + 192.168.0.1 + 192.168.0.0/16 + 86e7c838-fb75-402b-9dbf-d68166e3f5fe + + diff --git a/v2.0/samples/subnets-get-resp.json b/v2.0/samples/subnets-get-resp.json new file mode 100644 index 0000000..02afcea --- /dev/null +++ b/v2.0/samples/subnets-get-resp.json @@ -0,0 +1,40 @@ +{ + "subnets": [ + { + "allocation_pools": [ + { + "end": "10.0.3.254", + "start": "10.0.3.2" + } + ], + "cidr": "10.0.3.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.3.1", + "host_routes": [], + "id": "91e47a57-7508-46fe-afc9-fc454e8580e1", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + }, + { + "allocation_pools": [ + { + "end": "10.0.2.254", + "start": "10.0.2.2" + } + ], + "cidr": "10.0.2.0/24", + "dns_nameservers": [], + "enable_dhcp": true, + "gateway_ip": "10.0.2.1", + "host_routes": [], + "id": "e3c3620c-9d24-4470-b226-739da2f617c0", + "ip_version": 4, + "name": "", + "network_id": "1a6f6006-9e0b-4f99-984c-96787ae66363", + "tenant_id": "f667b69e4d6749749ef3bcba7251d9ce" + } + ] +} diff --git a/v2.0/samples/subnets-post-create-bulk-req.json b/v2.0/samples/subnets-post-create-bulk-req.json new file mode 100644 index 0000000..5b3165e --- /dev/null +++ b/v2.0/samples/subnets-post-create-bulk-req.json @@ -0,0 +1,14 @@ +{ +"subnets": [ +{"name": "sample_subnet_1", +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"cidr": "10.100.0.0/16", +"ip_version": 4 +}, +{ +"name": "sample_subnet_2", +"network_id": "a3775a7d-9f8b-4148-be81-c84bbd0837ce", +"cidr": "172.16.0.0/12", +"ip_version": 4 +}] +} diff --git a/v2.0/samples/subnets-post-create-bulk-req.xml b/v2.0/samples/subnets-post-create-bulk-req.xml new file mode 100644 index 0000000..fb754c0 --- /dev/null +++ b/v2.0/samples/subnets-post-create-bulk-req.xml @@ -0,0 +1,14 @@ + + + test_subnet_1 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 10.0.0.0/8 + 4 + + + test_subnet_2 + a3775a7d-9f8b-4148-be81-c84bbd0837ce + 192.168.0.0/16 + 4 + + diff --git a/v2.0/neutron-agent-ext.xml b/v2.0/section_neutron-agent-ext.xml similarity index 100% rename from v2.0/neutron-agent-ext.xml rename to v2.0/section_neutron-agent-ext.xml diff --git a/v2.0/neutron-allowed-address-pair-ext.xml b/v2.0/section_neutron-allowed-address-pair-ext.xml similarity index 76% rename from v2.0/neutron-allowed-address-pair-ext.xml rename to v2.0/section_neutron-allowed-address-pair-ext.xml index 9bacb77..d953039 100644 --- a/v2.0/neutron-allowed-address-pair-ext.xml +++ b/v2.0/section_neutron-allowed-address-pair-ext.xml @@ -35,17 +35,23 @@ '> ]> -
+
The Allowed Address Pair Extension - The Allowed Address Pair extension extends the port attribute to - allow one to specify arbitrary mac_address/ip_address(cidr) pairs - that are allowed to pass through a port regardness of the subnet - associated with the network. + The Allowed Address Pair extension extends the port + attribute to allow one to specify arbitrary + mac_address/ip_address(cidr) pairs that are allowed to pass + through a port regardness of the subnet associated with the + network.
- Port API operations with allowed address pair extension - This section discusses operations for setting and retrieving the allowed address pair - extension attributes for port objects. + Port API operations with allowed address pair + extension + This section discusses operations for setting and + retrieving the allowed address pair extension attributes + for port objects.
List Ports @@ -64,22 +70,25 @@ &GET; /ports - Returns a list of ports with their allowed address pair - attributes. + Returns a list of ports with their + allowed address pair attributes. Normal Response Code: 200 OK Error Response Codes: 401 Unauthorized - This operation returns, for each port, its allowed address pair attributes as well as - all the attributes normally returned by the list port operation. + This operation returns, for each port, its allowed + address pair attributes as well as all the attributes + normally returned by the list port operation. - List Ports with allowed address pair attributes: JSON Response + List Ports with allowed address pair + attributes: JSON Response - List Ports with allowed address pair attributes: XML Response + List Ports with allowed address pair + attributes: XML Response
@@ -101,20 +110,24 @@ &GET; /ports/port_id - Returns details about a specific port, including allowed address - pair attributes. + Returns details about a specific port, + including allowed address pair + attributes. Normal Response Code: 200 OK - Error Response Code: 401 Unauthorized, 404 Not Found + Error Response Code: 401 Unauthorized, 404 Not + Found - Show port with allowed address pair atributes: JSON Response + Show port with allowed address pair attributes: + JSON Response - Show port with allowed address pair attributes: XML Response + Show port with allowed address pair attributes: + XML Response
@@ -136,17 +149,24 @@ &POST; /ports - Creates a new port and explicitly specify the allowed address pair attributes. + Creates a new port and explicitly + specify the allowed address pair + attributes. Normal Response Code: 200 OK - Error Response Code: 400 Bad Request, 401 Unauthorized, 403 Forbidden - Bad request is returned if an allowed address pair matches the mac_address and ip_address on port. - Note: If the mac_address field is left out of the body of the request the mac_address assigned to the port will be used. + Error Response Code: 400 Bad Request, 401 + Unauthorized, 403 Forbidden + Bad request is returned if an allowed address pair + matches the mac_address and ip_address on port. + Note: If the mac_address field is left out of the + body of the request the mac_address assigned to the + port will be used. - Create Port with allowed address pair attributes: JSON Request + Create Port with allowed address pair + attributes: JSON Request
@@ -168,16 +188,18 @@ &PUT; /ports/port_id - Updates a port, with new allowed address pair values. + Updates a port, with new allowed + address pair values. Normal Response Code: 200 OK - Error Response Code: 400 Bad Request, 401 Unauthorized, 404 Not Found, 403 - Forbidden + Error Response Code: 400 Bad Request, 401 + Unauthorized, 404 Not Found, 403 Forbidden - Update allowed address pair attributes for a port: JSON Request + Update allowed address pair attributes for a + port: JSON Request
diff --git a/v2.0/section_neutron-extgwmodes-ext.xml b/v2.0/section_neutron-extgwmodes-ext.xml new file mode 100644 index 0000000..cc2f7b3 --- /dev/null +++ b/v2.0/section_neutron-extgwmodes-ext.xml @@ -0,0 +1,235 @@ + + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + + '> + + + + + + '> +]> +
+ Configurable external gateway modes extension + By default, when a gateway is attached to a router using the + Neutron L3 extension, Network Address Translation (NAT) is + enabled for traffic generated by subnets attached to the + router. With this extension, the user will have the option of + choosing whether SNAT should be enabled or not on a router + basis. + This is achieved simply by specifying a boolean attribute, + enable_snat, in the + external_gateway_info attribute of the + router resource. + This extension redefines the external_gateway_info attribute + as depicted in the following table. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
external_gateway_info attributes
Attribute Type Required Default Value Validation Constraints Notes
network_idUUIDYesN/AMust be a valid uuid representative of an external + network. +
enable_snatBooleanNoTrue{True|False}The default setting is True to + ensure backward compatibility for plugins + supporting this extension.
+ SNAT can be enabled or disabled at any time on a Neutron + router regardless of the current status of floating IPs. + Floating IPs will continue working even when SNAT is + disabled. +
+ List Routers + + + + + + + + Verb + URI + Description + + + + + &GET; + /routers + Retrieve Neutron routers + + + + + Success and error response codes are not changed with + regards to the operation as introduced by the L3 API + extension. + When this extension is enabled, this operation will + also return the current Source NAT status for configured + routers, as shown in the sample below. + The response for the show router + operation is the same, with the obvious exception that a + single router is returned. + + Router list with configurable external gateway + modes enabled + + +
+
+ Create Router with external gateway + + + + + + + + Verb + URI + Description + + + + + &POST; + /routers + Create a new Neutron router + + + + + Success and error response codes are not changed with + regards to the operation as introduced by the L3 API + extension. + Neutron API users can specify whether SNAT should be + performed on the network specified as the router's + external gateway by setting enable_snat + in external_gateway_info to either + True or False; + the default value is True. + + Create router with SNAT disabled + + +
+
+ Update Router's external gateway info + + + + + + + + Verb + URI + Description + + + + + &PUT; + /routers/router_id + Create a new Neutron router + + + + + Success and error response codes are not changed with + regards to the operation as introduced by the L3 API + extension. + Neutron API users can enable or disable SNAT on a router + specifying the enable_snat attribute in + the external_gateway_info attribute for + the router resource. This operation can be either used for + updating the SNAT status only, the external network, or + both attributes at the same time. In any case, if the + enable_snat attribute is not + specified, it will default to True. For + instance, if the current SNAT status is disabled, and the + router's gateway is updated to a different external + network without specifying enable_snat, + SNAT will be enabled for the new network. + It is important to note that whenever updating a + router's external gateway information, the + network_id parameter must be + specified always, even if the final goal is just to enable + or disable SNAT for the router on the same external + network. + The rest of this section provides some samples for + updating a router's external gateway info with SNAT + mode. + + + Disable SNAT for the current external + network + + + + Change external network and enable SNAT + + + + Change external network and keep SNAT + disabled + + + +
+ + +
diff --git a/v2.0/neutron-extra-dhcp-opt-ext.xml b/v2.0/section_neutron-extra-dhcp-opt-ext.xml similarity index 100% rename from v2.0/neutron-extra-dhcp-opt-ext.xml rename to v2.0/section_neutron-extra-dhcp-opt-ext.xml diff --git a/v2.0/neutron-extraroute-ext.xml b/v2.0/section_neutron-extraroute-ext.xml similarity index 100% rename from v2.0/neutron-extraroute-ext.xml rename to v2.0/section_neutron-extraroute-ext.xml diff --git a/v2.0/neutron-firewall-ext.xml b/v2.0/section_neutron-firewall-ext.xml similarity index 100% rename from v2.0/neutron-firewall-ext.xml rename to v2.0/section_neutron-firewall-ext.xml diff --git a/v2.0/neutron-l3-ext.xml b/v2.0/section_neutron-l3-ext.xml similarity index 100% rename from v2.0/neutron-l3-ext.xml rename to v2.0/section_neutron-l3-ext.xml diff --git a/v2.0/neutron-loadbalancer-ext.xml b/v2.0/section_neutron-loadbalancer-ext.xml similarity index 100% rename from v2.0/neutron-loadbalancer-ext.xml rename to v2.0/section_neutron-loadbalancer-ext.xml diff --git a/v2.0/neutron-provider-ext.xml b/v2.0/section_neutron-provider-ext.xml similarity index 51% rename from v2.0/neutron-provider-ext.xml rename to v2.0/section_neutron-provider-ext.xml index 2ec66bd..502ee03 100644 --- a/v2.0/neutron-provider-ext.xml +++ b/v2.0/section_neutron-provider-ext.xml @@ -35,67 +35,98 @@ '> ]> -
+
The Provider Networks Extension - (<literal>provider</literal>) - The provider networks extension allows OpenStack Networking API users with the appropriate rights, to - specify how an OpenStack Networking network object is mapped to the underlying networking infrastructure. - It also allows users with the appropriate rights to view such attributes when networks are - queried. - To this aim, it extends the network resource by defining - a set of attributes prependend by the provider prefix, - which specify these attributes. + (provider) + The provider networks extension allows OpenStack Networking + API users with the appropriate rights, to specify how an + OpenStack Networking network object is mapped to the + underlying networking infrastructure. It also allows users + with the appropriate rights to view such attributes when + networks are queried. + To this aim, it extends the network resource by defining a set of + attributes prefixed with the provider prefix, which specify these + attributes.
Concepts - The provider networks extension is an attribute extension which adds the following set - of attributes to the network resource: + The provider networks extension is an attribute + extension which adds the following set of attributes to + the network + resource: - provider:network_type - Specifies the - nature of the physical network mapped to this network resource. Examples are - flat, vlan, or + + provider:network_type - + Specifies the nature of the physical network + mapped to this network resource. Examples are + flat, + vlan, or gre. - provider:physical_network - Identifies - the physical network on top of which this network object is being - implemented. The OpenStack Networking API does not expose any facility for retrieving the - list of available physical networks. As an example, in the Open vSwitch - plug-in this is a symbolic name which is then mapped to specific bridges on - each compute host through the Open vSwitch plug-in configuration file. + + provider:physical_network - + Identifies the physical network on top of + which this network object is being + implemented. The OpenStack Networking API does + not expose any facility for retrieving the + list of available physical networks. As an + example, in the Open vSwitch plug-in this is a + symbolic name which is then mapped to specific + bridges on each compute host through the Open + vSwitch plug-in configuration file. - provider:segmentation_id - Identifies - an isolated segment on the physical network; the nature of the segment - depends on the segmentation model defined by - network_type. For instance, if - network_type is vlan, then this is - a vlan identifier; otherwise, if - network_type is gre, then this - will be a gre key. + + provider:segmentation_id - + Identifies an isolated segment on the physical + network; the nature of the segment depends on + the segmentation model defined by + network_type. For + instance, if network_type + is vlan, then this is a + vlan identifier; + otherwise, if network_type + is gre, then this will be a + gre key. - The actual semantics of these attributes depend on the technology back end of the - particular plug-in. See the plug-in documentation and the - OpenStack Cloud Administrator Guide to understand which values should be specific for - each of these attributes when OpenStack Networking is deployed with a particular plug-in. The examples - shown in this chapter refer to the Open vSwitch plug-in. - It is also worth noting that the default policy settings allow only users with - administrative rights to specify these parameters in requests, and to see their values - in responses. By default, the provider network extension attributes are completely - hidden from regular tenants. As a rule of thumb, if these attributes are not visible in - a GET /networks/<network-id> operation, this - implies the user submitting the request is not authorized to view or manipulate provider - network attributes. + The actual semantics of these attributes depend on the + technology back end of the particular plug-in. See the + plug-in documentation and the OpenStack Cloud + Administrator Guide to understand which + values should be specific for each of these attributes + when OpenStack Networking is deployed with a particular + plug-in. The examples shown in this chapter refer to the + Open vSwitch plug-in. + It is also worth noting that the default policy settings + allow only users with administrative rights to specify + these parameters in requests, and to see their values in + responses. By default, the provider network extension + attributes are completely hidden from regular tenants. As + a rule of thumb, if these attributes are not visible in a + GET + /networks/<network-id> operation, this + implies the user submitting the request is not authorized + to view or manipulate provider network attributes.
- Network API operations with provider network extension - This section discusses operations for setting and retrieving the provider networks - extension attributes for network objects. + Network API operations with provider network + extension + This section discusses operations for setting and + retrieving the provider networks extension attributes for + network objects. +
List Networks @@ -114,24 +145,28 @@ &GET; /networks - Returns a list of networks with their provider networks - attributes. + Returns a list of networks with their + provider networks attributes. Normal Response Code: 200 OK Error Response Codes: 401 Unauthorized - This operation returns, for each network, its provider network attributes as well as - all the attributes normally returned by the list networks operation. Please note - that provider networks attribute are returned only if the user is authorized to view - them. + This operation returns, for each network, its + provider network attributes as well as all the + attributes normally returned by the list networks + operation. Provider networks + attribute are returned only if the user is authorized + to view them. - List Networks with provider attributes: JSON Response + List Networks with provider attributes: JSON + Response - List Networks with provider attributes: XML Response + List Networks with provider attributes: XML + Response
@@ -153,24 +188,31 @@ &GET; /networks/network_id - Returns details about a specific network, including provider - networks attributes. + Returns details about a specific + network, including provider networks + attributes. Normal Response Code: 200 OK - Error Response Code: 401 Unauthorized, 404 Not Found - When the provider networks extension is enabled, and the user submitting the - request is authorized to see provider networks mapping, this operation returns, for - the network specified in the request URI, its provider network attributes, as well as - all the attributes normally retuned by the show networks operation. + Error Response Code: 401 Unauthorized, 404 Not + Found + When the provider networks extension is enabled, and + the user submitting the request is authorized to see + provider networks mapping, this operation returns, for + the network specified in the request URI, its provider + network attributes, as well as all the attributes + normally retuned by the show networks + operation. - Show network with provider attributes: JSON Response + Show network with provider attributes: JSON + Response - Show network with provider attributes: XML Response + Show network with provider attributes: XML + Response
@@ -192,77 +234,93 @@ &POST; /networks - Creates a new network and explicitly specify attributes with the - underlying infrastructure using the provider network extension - attributes. + Creates a new network and explicitly + specify attributes with the underlying + infrastructure using the provider + network extension attributes. Normal Response Code: 200 OK - Error Response Code: 400 Bad Request, 401 Unauthorized, 403 Forbidden - When the provider networks extension is enabled, and the user submitting the - request is authorized to set provider networks mapping, this operation allows for - specifying how a new network should be mapped on the underlying network - infrastructure. - If the user submitting the request is not allowed to set provider networks - attributes, a 403 Forbidden response will be returned. - As stated earlier in this chapter, the semantics of the various provider networks - attribute vary with the particular plug-in employed. The following example shows how - to create a network mapped to a specific vlan tag (the example refers to an OpenStack Networking - deployment which uses the Open vSwitch plug-in). + Error Response Code: 400 Bad Request, 401 + Unauthorized, 403 Forbidden + When the provider networks extension is enabled, and + the user submitting the request is authorized to set + provider networks mapping, this operation allows for + specifying how a new network should be mapped on the + underlying network infrastructure. + If the user submitting the request is not allowed to + set provider networks attributes, a 403 Forbidden + response will be returned. + As stated earlier in this chapter, the semantics of + the various provider networks attribute vary with the + particular plug-in employed. The following example + shows how to create a network mapped to a specific + vlan tag (the example refers to an OpenStack + Networking deployment which uses the Open vSwitch + plug-in). - Create Network with provider attributes: JSON Request + Create Network with provider attributes: JSON + Request - Create Network with provider attributes: XML Request + Create Network with provider attributes: XML + Request
Update Network - - - - - - - - Verb - URI - Description - - - - - &PUT; - /networks/network_id - Updates a network, including its mapping with the underlying - infrastructure using the provider network extension attributes. - - - - + + + + + + + Verb + URI + Description + + + + + &PUT; + /networks/network_id + Updates a network, including its mapping + with the underlying infrastructure using + the provider network extension + attributes. + + + Normal Response Code: 200 OK - Error Response Code: 400 Bad Request, 401 Unauthorized, 404 Not Found, 403 - Forbidden - When the provider networks extension is enabled, and the user submitting the - request is authorized to see provider networks mapping, this operation allows for - specifying how an existing network should be mapped on the underlying network - infrastructure. - If the user submitting the request is not allowed to set provider networks - attributes, a 403 Forbidden response will be returned. - As stated earlier in this chapter, the semantics of the various provider networks - attribute vary with the particular plug-in employed. The following example shows how - to update a network in order to map it to a flat network (such as, no vlan tag); the - example refers to an OpenStack Networking deployment that uses the Open vSwitch plug-in. + Error Response Code: 400 Bad Request, 401 + Unauthorized, 404 Not Found, 403 Forbidden + When the provider networks extension is enabled, and + the user submitting the request is authorized to see + provider networks mapping, this operation allows for + specifying how an existing network should be mapped on + the underlying network infrastructure. + If the user submitting the request is not allowed to + set provider networks attributes, a 403 Forbidden + response will be returned. + As stated earlier in this chapter, the semantics of + the various provider networks attribute vary with the + particular plug-in employed. The following example + shows how to update a network in order to map it to a + flat network (such as, no vlan tag); the example + refers to an OpenStack Networking deployment that uses + the Open vSwitch plug-in. - Update provider attributes for a network: JSON Request + Update provider attributes for a network: JSON + Request - Update provider attributes for a network: XML Request + Update provider attributes for a network: XML + Request
diff --git a/v2.0/section_neutron-quotas-ext.xml b/v2.0/section_neutron-quotas-ext.xml new file mode 100644 index 0000000..0393698 --- /dev/null +++ b/v2.0/section_neutron-quotas-ext.xml @@ -0,0 +1,47 @@ + + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + + '> + + + + + '> + +]> +
+ Quotas + The neutron.conf configuration file + defines default quota values that are applied to all tenants. + This extension enables an administrative user to define quotas + values on a per-tenant basis. For example, an administrative + user can permit tenant A to create at most X networks and + tenant B to create at most Y networks. + +
diff --git a/v2.0/neutron-scheduler-ext.xml b/v2.0/section_neutron-scheduler-ext.xml similarity index 100% rename from v2.0/neutron-scheduler-ext.xml rename to v2.0/section_neutron-scheduler-ext.xml diff --git a/v2.0/neutron-security-groups-ext.xml b/v2.0/section_neutron-security-groups-ext.xml similarity index 92% rename from v2.0/neutron-security-groups-ext.xml rename to v2.0/section_neutron-security-groups-ext.xml index 9b1a606..2f726fc 100644 --- a/v2.0/neutron-security-groups-ext.xml +++ b/v2.0/section_neutron-security-groups-ext.xml @@ -40,5 +40,5 @@ Security Groups and Rules Creates, modifies, and deletes OpenStack Networking security groups and rules. - +
diff --git a/v2.0/neutron-vpn-ext.xml b/v2.0/section_neutron-vpn-ext.xml similarity index 100% rename from v2.0/neutron-vpn-ext.xml rename to v2.0/section_neutron-vpn-ext.xml diff --git a/v2.0/section_neutron_binding_ext_ports.xml b/v2.0/section_neutron_binding_ext_ports.xml new file mode 100644 index 0000000..ea48cb0 --- /dev/null +++ b/v2.0/section_neutron_binding_ext_ports.xml @@ -0,0 +1,469 @@ + + + + + + + + + GET'> + PUT'> + POST'> + DELETE'> + + + + + + + + + '> + + + + + + + + + '> + +]> +
+ The <literal>binding</literal> Extended Attributes for + Ports + Use the &APIv2; with the binding + extended attributes to get information about, create, and + update port objects. + The binding-prefixed extended + attributes for ports are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
binding Extended Attributes + for Ports
Attribute Type Required CRUD + + + C. Use the attribute in + create operations. + + + R. This attribute is + returned in response to show and + list operations. + + + U. You can update the + value of this attribute. + + + D. You can delete the + value of this attribute. + + + Default ValueValidation ConstraintsNotes
binding:vif_typeStringN/ARNoneN/ARead-only. The vif type for the specified + port. +
+ binding:host_iduuid-strN/ACRUNoneN/AThe ID of the host where the port is + allocated. In some cases different + implementations can run on different + hosts. +
+ binding:profilelist(dict)N/ACRUNoneN/AA dictionary that enables the application + running on the specified host to pass and + receive vif port-specific information to the + plug-in. +
+ binding:capabilitieslist(dict)N/ARNoneN/ARead-only. A dictionary that enables the + application to pass information about + functions that &APIv2; provides. Specify the + following value: port_filter : Boolean to + define whether &APIv2; provides port filtering + features such as security group and + anti-MAC/IP spoofing.
+ +
+ List Ports + + + + + + + Verb + URI + Description + + + + + &GET; + /ports + Lists ports to which the tenant has access. + The binding extended + attributes are visible to only administrative + users. + + + + Normal Response Code: 200 + + Error Response Codes: Unauthorized + (401) + This operation lists ports to which the tenant has + access. + This operation does not require a request body. + This operation returns a response body. + In addition to any other fields returned in the list + port response, the following + binding-prefixed fields are + visible to administrative users: + + + + Field + Description + + + + + binding:vif_type + + Read-only. The vif type for the + specified port. + + + + + binding:host_id + The ID of the host where the port is + allocated. In some cases different + implementations can run on different + hosts. + + + + + binding:profile + A dictionary that enables the + application running on the specified host + to pass and receive vif port-specific + information to the plug-in. + + + + + binding:capabilities + Read-only. A dictionary that enables the + application to pass information about + functions that &APIv2; provides. Specify + the following value: port_filter : Boolean + to define whether &APIv2; provides port + filtering features such as security group + and anti-MAC/IP spoofing. + + + + +
+ +
+ Show Port + + + + + + + Verb + URI + Description + + + + + &GET; + /ports/port-id + Shows information for a specified port. The + binding extended + attributes are visible to only administrative + users. + + + + Normal Response Code: 200 + + Error Response Codes: Unauthorized + (401), Not Found + (404) + This operation returns information for the port + specified in the request URI. + This operation does not require a request body. + This operation returns a response body. + In addition to any fields returned in the show port + response, the following + binding-prefixed extended + attributes are visible to administrative users: + + + + Field + Description + + + + + binding:vif_type + + Read-only. The vif type for the + specified port. + + + + + binding:host_id + The ID of the host where the port is + allocated. In some cases different + implementations can run on different + hosts. + + + + + binding:profile + A dictionary that enables the + application running on the specified host + to pass and receive vif port-specific + information to the plug-in. + + + + + binding:capabilities + Read-only. A dictionary that enables the + application to pass information about + functions that &APIv2; provides. Specify + the following value: port_filter : Boolean + to define whether &APIv2; provides port + filtering features such as security group + and anti-MAC/IP spoofing. + + + + +
+ +
+ Create Port + + + + + + + Verb + URI + Description + + + + + &POST; + /ports + Creates a port on a specified network. Only + administrative users can add the + binding extended + attributes. + + + + Normal Response Code: 201 + + Error Response Codes: Bad Request + (400), Unauthorized + (401), Forbidden + (403), Not Found + (404), Conflict + (409), MAC generation failure + (503) + This operation creates an OpenStack Networking port. You + must specify the network where the port is to created on + the network_id attribute in the + request body. + This operation requires a request body. + This operation returns a response body. + In addition to any attributes that can be set in a + create port operation, administrative users can also set + the following binding-prefixed + extended attributes: + + + + Field + Description + + + + + + binding:host_id + The ID of the host where the port is + allocated. In some cases different + implementations can run on different + hosts. + + + + + binding:profile + A dictionary that enables the + application running on the specified host + to pass and receive vif port-specific + information to the plug-in. + + + + +
+
+ Update Port + + + + + + + Verb + URI + Description + + + + + &PUT; + /ports/port-id + Updates a specified port. Only administrative + users can update the + binding extended + attributes. + + + + Normal Response Code: 200 + + Error Response Codes: Bad Request + (400), Unauthorized + (401), Forbidden + (403), Not Found + (404), Conflict + (409) + Use this operation to update information for a + port. + This operation requires a request body. + This operation returns a response body. + In addition to any attributes that can be updated in the + update port operation, administrative users can also + update the following + binding-prefixed extended + attributes: + + + + Field + Description + + + + + + binding:host_id + The ID of the host where the port is + allocated. In some cases different + implementations can run on different + hosts. + + + + + binding:profile + A dictionary that enables the + application running on the specified host + to pass and receive vif port-specific + information to the plug-in. + + + + +
+
diff --git a/v2.0/section_neutron_concepts.xml b/v2.0/section_neutron_concepts.xml new file mode 100644 index 0000000..022ed63 --- /dev/null +++ b/v2.0/section_neutron_concepts.xml @@ -0,0 +1,594 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> +
+ + Concepts + Use the &APIv2; to manage the following entities: + + Network. An + isolated virtual layer-2 domain. A network can + also be a virtual, or logical, switch. See . + + + Subnet. An IP + version 4 or version 6 address block from which IP + addresses that are assigned to VMs on a specified + network are selected. See . + + + Port. A + virtual, or logical, switch port on a specified + network. See . + + + These entities have auto-generated unique identifiers and + support basic create, read, update, and delete (CRUD) + functions with the &POST;, &GET;, &PUT;, and &DELETE; + verbs. + +
+ Network + A network is an isolated virtual layer-2 broadcast + domain that is typically reserved for the tenant who + created it unless you configure the network to be shared. + Tenants can create multiple networks until the thresholds + per-tenant quota is reached. + In the &APIv2;, the network is the main entity. Ports + and subnets are always associated with a network. + + The following table describes the attributes for network + objects: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Network Attributes
Attribute Type Required CRUD + + + C. Use the attribute in + create operations. + + + R. This attribute is + returned in response to show and + list operations. + + + U. You can update the + value of this attribute. + + + D. You can delete the + value of this attribute. + + + Default Value Validation Constraints Notes
iduuid-strN/ARgeneratedN/AUUID for the network.
nameStringNoCRUNoneN/AHuman-readable name for the network. Might not + be unique.
admin_state_upBoolNoCRUtrue{true|false}The administrative state of network. If false + (down), the network does not forward + packets.
statusStringN/ARN/AN/AIndicates whether network is currently + operational. Possible values include: + + ACTIVE + + + DOWN + + + BUILD + + + ERROR + + + Plug-ins might define additional + values.
subnetslist(uuid-str)NoREmpty ListN/Asubnets associated with this network.
sharedBoolNoCRUFalse{ True | False }Specifies whether the network resource can be + accessed by any tenant or not.
tenant_iduuid-strNo + If OpenStack Networking is not + running with the Keystone Identity + service, the + tenant_id + attribute is required. + + CRN/ANo constraintOwner of network. Only admin users can specify + a tenant_id other than its own.
+
+ +
+ Subnet + A subnet represents an IP address block that can be used + to assign IP addresses to virtual instances. Each subnet + must have a CIDR and must be associated with a network. + IPs can be either selected from the whole subnet CIDR or + from allocation pools that can be specified by the + user. + A subnet can also optionally have a gateway, a list of + dns name servers, and host routes. This information is + pushed to instances whose interfaces are associated with + the subnet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subnet Attributes
Attribute Type Required CRUD + + + C. Use the attribute in + create operations. + + + R. This attribute is + returned in response to show and + list operations. + + + U. You can update the + value of this attribute. + + + D. You can delete the + value of this attribute. + + + + Default Value Validation Constraints Notes
iduuid-strN/ARgeneratedN/AUUID representing the subnet
network_iduuid-strYesCRN/Anetwork this subnet is associated with. +
nameStringNoCRUNoneN/AHuman-readable name for the subnet. Might not + be unique.
ip_versionintYesCR4{ 4 | 6 }IP version
cidrstringYesCRN/Avalid cidr in the form + <network_address>/<prefix>cidr representing IP range for this subnet, + based on IP version
gateway_ipstringNoCRUDfirst address in cidr + Valid IP address or nulldefault gateway used by devices in this + subnet
dns_nameserverslist(str)NoCRUEmpty listNo constraintDNS name servers used by hosts in this + subnet.
allocation_poolslist(dict)NoCREvery address in cidr, excluding gateway_ip if + configuredstar/end of range must be valid ipSub-ranges of cidr available for dynamic + allocation to ports [ { "start": "10.0.0.2", + "end": "10.0.0.254"} ]
host_routeslist(dict)NoCRUEmpty List + [] + Routes that should be used by devices with IPs + from this subnet (not including local subnet + route).
enable_dhcpBoolNoCRUTrue{ True | False }Specifies whether DHCP is enabled for this + subnet or not.
tenant_iduuid-strNo + If OpenStack Networking is not + running with the Keystone Identity + service, the + tenant_id + attribute is required. + CRN/ANo constraintOwner of network. Only admin users can specify + a tenant_id other than its own.
+
+ +
+ Port + A port represents a virtual switch port on a logical + network switch. Virtual instances attach their interfaces + into ports. The logical port also defines the MAC address + and the IP address(es) to be assigned to the interfaces + plugged into them. When IP addresses are associated to a + port, this also implies the port is associated with a + subnet, as the IP address was taken from the allocation + pool for a specific subnet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Port Attributes
Attribute Type Required CRUD + + + C. Use the attribute in + create operations. + + + R. This attribute is + returned in response to show and + list operations. + + + U. You can update the + value of this attribute. + + + D. You can delete the + value of this attribute. + + + + Default Value Validation Constraints Notes
iduuid-strN/ARgeneratedN/AUUID for the port.
network_iduuid-strYesCRN/Aexisting network identifierNetwork that this port is associated with. +
nameStringNoCRUNoneN/AHuman-readable name for the port. Might not be + unique.
admin_state_upboolNoCRUtrue{true|false}Administrative state of port. If false (down), + port does not forward packets.
statusstringN/ARN/AN/AIndicates whether network is currently + operational. Possible values include: + + ACTIVE + + + DOWN + + + BUILD + + + ERROR + + + Plug-ins might define additional + values.
mac_addressstringNoCRgeneratedvalid MAC in 6-octet form separated by + colonsMac address to use on this port.
fixed_ipslist(dict)NoCRUautomatically allocated from poolValid IP address and existing subnet + identifierSpecifies IP addresses for the port thus + associating the port itself with the subnets + where the IP addresses are picked from
device_idstrNoCRUDNoneNo constraintidentifies the device (e.g., virtual server) + using this port.
device_ownerstrNoCRUDNoneNo constraintIdentifies the entity (e.g.: dhcp agent) using + this port.
tenant_iduuid-strNo + If OpenStack Networking is not + running with the Keystone Identity + service, the + tenant_id + attribute is required. + + CRN/ANo constraintOwner of network. Only admin users can specify + a tenant_id other than its own.
security_groupslist(dict)NoCRUDNoneExisting security group IDsSpecifies the IDs of any security groups + associated with a port.
+
+
diff --git a/v2.0/section_neutron_list-extensions.xml b/v2.0/section_neutron_list-extensions.xml new file mode 100644 index 0000000..226f8d2 --- /dev/null +++ b/v2.0/section_neutron_list-extensions.xml @@ -0,0 +1,61 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> + + + + + '> + + + + + '> + +]> +
+ List Available Extensions + You can list available extensions through the /v2.0/extensions URI. + + You must authenticate these requests just like any other + API request. + + The following example response shows a list of + extensions: + Status Code: 200 OK +Connection: keep-alive +Content-Length: 654 +Content-Type: application/xml; charset=UTF-8 +Date: Wed, 12 Sep 2012 11:32:56 GMT + + Also, you can query for specific extension using the + extension alias. For instance, querying + /v2.0/extensions/router, results in the + following response: + Status Code: 200 OK +Connection: keep-alive +Content-Length: 350 +Content-Type: application/xml; charset=UTF-8 +Date: Wed, 12 Sep 2012 11:36:20 GMT + +
diff --git a/v2.0/wadl/os-networks-provider-ext.wadl b/v2.0/wadl/os-networks-provider-ext.wadl new file mode 100644 index 0000000..88c4752 --- /dev/null +++ b/v2.0/wadl/os-networks-provider-ext.wadl @@ -0,0 +1,256 @@ + + + + + + + + + + + + + +%common;]> + + + + + + + + + + + + +

The + network name.

+
+ + + +

Indicates the administrative status of + the network.

+
+ + + +

Indicates whether this network is shared + across all tenants. By default, only + administrative users can change this + value.

+
+ + + +

The ID + of the tenant that owns the network. Only + administrative users can set the tenant + ID. You cannot change this value through + authorization policies.

+
+ + + +

The + type of physical network that maps to this + networks resource. Examples are flat, + vlan, and gre.

+
+ + + +

The + physical network on which this network + object is implemented. The Networking API + v2.0 does not provide a way to list + available physical networks. For example, + the Open vSwitch plug-in configuration + file defines a symbolic name that maps to + specific bridges on each Compute host.

+
+ + + +

An + isolated segment on the physical network. + The network_type attribute defines the + segmentation model. For example, if + network_type is vlan, this ID is a vlan + identifier. If network_type is gre, this + ID is a gre key.

+
+ + + + + +

The UUID for the network of interest to + you.

+
+ + + + +
+
+
+
+ + + + + + + +

Lists networks + that are accessible to the tenant who submits the + request.

+
+ &networkListParameters; + &networkProviderParameters; + + + + + + + + + + +
+ + + +

Creates a + network.

+
+ &networkCreateParameters; + + + + + + + + + + + &networkListParameters; + &networkProviderParameters; + + + + + + + + + + +
+ + + +

Shows information + for the specified network.

+
+ &networkListParameters; + &networkProviderParameters; + + + + + + + + + + +
+ + +

Updates the + specified network.

+
+ &networkCreateParameters; + &networkProviderParameters; + + + + + + + + + + + &networkListParameters; + &networkProviderParameters; + + + + + + + + + + +
+
diff --git a/v2.0/wadl/os-networks.wadl b/v2.0/wadl/os-networks.wadl new file mode 100644 index 0000000..1781592 --- /dev/null +++ b/v2.0/wadl/os-networks.wadl @@ -0,0 +1,539 @@ + + + + + + + + + + + + +%common;]> + + + + + + + + + + + The tenant ID in a multi-tenancy + cloud. + + + + + + + + + + + + The UUID for the network of + interest to you. + + + + + + + + + + + + + + + + + + Lists networks to which the + specified tenant has access. + You can control which attributes are returned by + using the fields query parameter. For information, see + Filtering and Column Selection in the + OpenStack Networking API v2.0 + Reference. + + + + Indicates whether the + administrative state of the network is up or + down. + + + The network + ID. + + + The network + name. + + + Indicates whether this network + is shared across all tenants. By default, only + administrative users can change this + value. + + + The network + status. + + + The associated + subnets. + + + The tenant + ID. + + + + + + + + + + + + &fault401; + + + Creates a network. + + + +

The administrative state of + the network.

+ + + + + + + + + + + + + + + +
+ + + Indicates whether the + administrative state of the network is up or + down. + + + The network + ID. + + + The network + name. + + + Indicates whether this network + is shared across all tenants. By default, only + administrative users can change this + value. + + + The network + status. + + + The associated + subnets. + + + The tenant + ID. + + + + + + + + + + + + &fault400; &fault401;
+ + + Creates multiple networks in a + single request. + In the request body, specify a list of + networks. + The bulk create operation is always atomic. Either + all or no networks in the request body are + created. + + &networkCreateParameters; + + + + + + + + + + + + + Indicates whether the + administrative state of the network is up or + down. + + + The network + ID. + + + The network + name. + + + Indicates whether this network + is shared across all tenants. By default, only + administrative users can change this + value. + + + The network + status. + + + The associated + subnets. + + + The tenant + ID. + + + + + + + + + + + + &fault400; &fault401; + + + Shows information for a specified + network. + You can control which attributes are returned by + using the fields query parameter. For information, see + Filtering and Column Selection in the + OpenStack Networking API v2.0 + Reference. + + + + Indicates whether the + administrative state of the network is up or + down. + + + The network + ID. + + + The network + name. + + + Indicates whether this network + is shared across all tenants. By default, only + administrative users can change this + value. + + + The network + status. + + + The associated + subnets. + + + The tenant + ID. + + + + + + + + + + + + &fault401; &fault404; + + + Updates a specified network. + + &networkCreateParameters; + + + + + + + + + + + + + Indicates whether the + administrative state of the network is up or + down. + + + The network + ID. + + + The network + name. + + + Indicates whether this network + is shared across all tenants. By default, only + administrative users can change this + value. + + + The network + status. + + + The associated + subnets. + + + The tenant + ID. + + + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; + + + Deletes a specified network and its + associated resources. + + &fault401; &fault404; + &fault409conflict; +
diff --git a/v2.0/wadl/os-ports-binding-ext.wadl b/v2.0/wadl/os-ports-binding-ext.wadl new file mode 100644 index 0000000..e993bd4 --- /dev/null +++ b/v2.0/wadl/os-ports-binding-ext.wadl @@ -0,0 +1,140 @@ + + + + + + + + + + + + + +%common;]> + + + + + + + + + + + + + + + The UUID for the port of interest to you. + + + + + + + + + + + + + + + Lists ports to which the tenant has access. + + &portListParameters; &portBindingParameters; + + + + + + + + + + + + + + + + Creates a port on the specified network. + + + &portCreateParameters; &portBindingParameters; + + + + + + &portListParameters; &portBindingParameters; + + + + + + + + + + + + + + + + Shows information for the specified port. + + + &portListParameters; &portBindingParameters; + + + + + + + + + + + + + + + Updates the specified port. + + + &portCreateParameters; &portBindingParameters; + + + + + + &portListParameters; &portBindingParameters; + + + + + + + + + + + + + diff --git a/v2.0/wadl/os-ports.wadl b/v2.0/wadl/os-ports.wadl new file mode 100644 index 0000000..b1bc99e --- /dev/null +++ b/v2.0/wadl/os-ports.wadl @@ -0,0 +1,246 @@ + + + + + + + + + + + + + +%common;]> + + + + + + + + + + + + The tenant ID in a multi-tenancy + cloud. + + + + + + + + + + The UUID for the port of + interest to you. + + + + + + + + + + + + + + + + + Lists ports to which the tenant has + access. + Default policy settings return only those subnets + that are owned by the tenant who submits the request, + unless the request is submitted by an user with + administrative rights. Users can control which + attributes are returned by using the fields query + parameter. Additionally, you can filter results by + using query string parameters. For information, see + Filtering and Column Selection in the + OpenStack Networking API v2.0 + Reference. + + &portListParameters; + + + + + + + + + + &fault401; + + + Creates a port on a specified + network. + You must specify the network where the port is to + created in the network_id attribute in + the request body. + + &portCreateParameters; + + + + + + &portListParameters; + + + + + &fault400; &fault401; &fault403; &fault404; + &fault503macGeneration; &fault503; + + + Creates multiple ports in a single + request. Specify a list of ports in the request + body. + Guarantees the atomic completion of the bulk + operation. + + &portCreateParameters; + + + + + + + + + + + &portListParameters; + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; + &fault409conflict; &fault503macGeneration; + + + Shows information for a specified + port. + + &portListParameters; + + + + + + + + + + &fault401; &fault404; + + + Updates a specified port. + You can update information for a port, such as its + symbolic name and associated IPs. When you update IPs + for a port, any previously associated IPs are removed, + returned to the respective subnets allocation pools, + and replaced by the IPs specified in the body for the + update request. Therefore, this operation replaces the + fixed_ip attribute when it is + specified in the request body. If the updated IP + addresses are not valid or are already in use, the + operation fails and the existing IP addresses are not + removed from the port. + When you update security groups for a port and the + operation succeeds, any associated security groups are + removed and replaced by the security groups specified + in the body for the update request. Therefore, this + operation replaces the security_groups + attribute when you specify it in the request body. + However, if the specified security groups are not + valid, the operation fails and the existing security + groups are not removed from the port. + + &portCreateParameters; + + + + + + &portListParameters; + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; + &fault409conflict; + + + Deletes a specified port. + Any IP addresses that are associated with the port + are returned to the respective subnets allocation + pools. + + &fault401; &fault403; &fault404; + + diff --git a/v2.0/wadl/os-quotas.wadl b/v2.0/wadl/os-quotas.wadl new file mode 100644 index 0000000..1d2ff57 --- /dev/null +++ b/v2.0/wadl/os-quotas.wadl @@ -0,0 +1,163 @@ + + + + + + + + + + + + +%common;]> + + + + + + + + + + + +

The + tenant ID in a multi-tenancy cloud.

+
+ + + + + + + +

The UUID for the quota of interest to you.

+ + + + +
+
+
+
+
+ + + + + + + + + Lists quotas for tenants who have non-default quota values. + + + + + + + + + + + + + + + + + + + + + + Shows information for a specified quota. + + + + + + + + + + + + + + + + + + + + + + + Updates quotas for a specified tenant. Use when non-default quotas are desired. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resets quotas to default values for a specified tenant. + + + + + + + + + + + + + +
diff --git a/v2.0/wadl/os-subnets.wadl b/v2.0/wadl/os-subnets.wadl new file mode 100644 index 0000000..82965ee --- /dev/null +++ b/v2.0/wadl/os-subnets.wadl @@ -0,0 +1,284 @@ + + + + + + + + + + +%common;]> + + + + + + + + + + + The tenant ID in a multi-tenancy + cloud. + + + + + + + + + + The UUID for the subnet of + interest to you. + + + + + + + + + + + + + + + + + + Lists subnets to which the + specified tenant has access. + Default policy settings returns exclusively subnets + owned by the tenant submitting the request, unless the + request is submitted by an user with administrative + rights. You can control which attributes are returned + by using the fields query parameter. You can filter + results by using query string parameters. For + information, see Filtering and Column Selection in the + OpenStack Networking API v2.0 + Reference. + + + + + + + + + + + + + + &fault401; + + + + Creates a subnet on a specified + network. + By default, OpenStack Networking creates IP v4 + subnets. To create an IP v6 subnet, you must specify + the value 6 for the ip_version attribute + in the request body. OpenStack Networking does not try + to derive the correct IP version from the provided + CIDR. If the parameter for the gateway address, + gateway_ip, is not specified, + OpenStack Networking allocates an address from the + cidr for the gateway for the subnet. + To specify a subnet without a gateway, specify the + value null for the gateway_ip attribute + in the request body. If allocation pools attribute, + allocation_pools, is not specified, + OpenStack Networking automatically allocates pools for + covering all IP addresses in the CIDR, excluding the + address reserved for the subnet gateway. Otherwise, + you can explicitly specify allocation pools as shown + in the following example. + When allocation_pools and + gateway_ip are both specified, it is + up to the user to ensure that the gateway IP does not + overlap with the specified allocation pools; otherwise + a 409 Conflict error occurs. + + &subnetCreateParameters; + + + + + + + + + + + &subnetListParameters; + + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; &fault409conflict; + + + + Creates multiple subnets in a + single request. Specify a list of subnets in the + request body. + The bulk create operation is always atomic. Either + all or no subnets in the request body are + created. + + &subnetCreateParameters; + + + + + + + + + + + &subnetListParameters; + + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; &fault409conflict; + + + + Shows information for a specified + subnet. + You can control which attributes are returned by + using the fields query parameter. For information, see + Filtering and Column Selection in the + OpenStack Networking API v2.0 + Reference. + + &subnetListParameters; + + + + + + + + + + + &fault401; &fault404; + + + + + Updates a specified subnet. + Some attributes, such as IP version (ip_version), + CIDR (cidr), and IP allocation pools + (allocation_pools) cannot be updated. Attempting to + update these attributes results in a 400 Bad Request + error. + + &subnetCreateParameters; + + + + + + + + + + + &subnetListParameters; + + + + + + + + + + + &fault400; &fault401; &fault403; &fault404; + + + + + Deletes a specified subnet. + The operation fails if subnet IP addresses are still + allocated. + + + &fault401; &fault404; &fault409conflict; + + diff --git a/v2.0/xsd/actions.xsd b/v2.0/xsd/actions.xsd index 5633438..ccdf849 100644 --- a/v2.0/xsd/actions.xsd +++ b/v2.0/xsd/actions.xsd @@ -1,106 +1,94 @@ - + - + - + Server Actions - + - -

- This schema file defines actions that can be performed on a + +

This schema file defines actions that can be performed on a cloud server. All cloud server actions are derived from the Action type. -

+ href="#type_Action" title="See definition of + Action" + >Action type.

- - -

- Types related to servers. -

-
-
+ + +

Types related to servers.

+
+
- + - -

- Performs a HARD or SOFT reboot. -

+ +

Performs a HARD or SOFT reboot.

- + - +
- + - -

- Rebuilds a server. -

+ +

Rebuilds a server.

- + - +
- + - -

- Resizes a server. -

+ +

Resizes a server.

- + - + @@ -108,20 +96,19 @@
- -

- Confirms a resize action. -

+ +

Confirms a resize action.

- + - + @@ -129,20 +116,19 @@
- -

- Reverts a resize action. -

+ +

Reverts a resize action.

- + - + @@ -150,20 +136,19 @@
- -

- Changes a server's password. -

+ +

Changes a server's password.

- + - + @@ -171,38 +156,34 @@
- -

- The action creates a new image for the server. -

+ +

The action creates a new image for the server.

- + - +
- + - -

- This is the base type for all server actions. It is simply + +

This is the base type for all server actions. It is simply a marker abstract type used to differentiate an Action - element from other elements. -

+ element from other elements.

@@ -211,18 +192,18 @@ - - - - + + + + - -

- The type of reboot to perform. -

+ +

The type of reboot to perform.

@@ -233,78 +214,63 @@ - - - - -

- A collection of meta data items - associated with the server. If not - specified the original server metadata - will be kept. -

-
-
-
- - - -

- A collection of small files used to personalize a - new server instance. Exisiting server - personality files are deleted by the - rebuild process. -

-
-
-
- -
- - - -

- The name of the server. If not specified the - original server name will be kept. -

-
-
-
- - - -

- The server's administration password. -

-
-
-
- - - -

- A reference to an image to use for the - rebuild. A local image need contain only an - Image ID. External images must contian a - link that provides the full path to the - image resource. You must supply an image - when rebuilding. -

-
-
-
+ + + + +

A collection of meta data items associated with the + server. If not specified the original server + metadata will be kept.

+
+
+
+ + + +

A collection of small files used to personalize a new server + instance. Existing server personality files are + deleted by the rebuild process.

+
+
+
+ +
+ + + +

The name of the server. If not specified the original + server name will be kept.

+
+
+
+ + + +

The administration password for the server.

+
+
+
+ + + +

A reference to an image to use for the rebuild. A + local image must contain only an image ID. External + images must contain a link that provides the full path + to the image resource. You must supply an image when + rebuilding.

+
+
+
@@ -312,20 +278,18 @@ - - - - - - -

- A reference to the flavor to convert to. -

-
-
-
+ + + + + + +

A reference to the flavor to convert to.

+
+
+
@@ -333,73 +297,68 @@ - - - + + + - - - - + + + + - - - - - - - -

- The server's administration password. -

-
-
-
+ + + + + + + +

The server's administration password.

+
+
+
- - - - - -

- A collection of meta data items - associated with the image. -

-
-
-
- -
- - - -

- The name of the image to create. -

-
-
-
+ + + + + +

A collection of meta data items associated with the + image.

+
+
+
+ +
+ + + +

The name of the image to create.

+
+
+
@@ -409,31 +368,24 @@ - -

- A HARD reboot is equivalent to power cycling the server. - The operating system is not allowed to gracefully - shutdown. -

+ +

A HARD reboot is equivalent to power cycling the + server. The operating system is not allowed to + gracefully shut down.

- -

- With a SOFT reboot, the operating system is signaled to - restart. This allows for a graceful shutdown of all - processes. -

+ +

With a SOFT reboot, the operating system is signaled to + restart, which enables a graceful shut down of all + processes.

- diff --git a/v2.0/xsd/common.xsd b/v2.0/xsd/common.xsd index c157ea5..bd26cef 100644 --- a/v2.0/xsd/common.xsd +++ b/v2.0/xsd/common.xsd @@ -1,71 +1,64 @@ - + - + - + Common Types - + - -

- This schema file defines common types used by multiple - entities and possibly spanning several types of requests. -

+ +

This schema file defines common types used by multiple + entities and possibly spanning several types of requests.

- + - + - -

- A collection of metadata items. There may be an + +

A collection of metadata items. There may be an absolute limit that imposes additional constraints on - the number of metadata items. -

+ the number of metadata items.

- - + +
- -

- A MetadataItem is simply a name-value pair. The name is + +

A MetadataItem is simply a name-value pair. The name is specified in the key attribute and the value is included inline. -

+ href="#type_MetadataValue" + title="See definition of + MetadataValue" + >value is included inline.

- + - -

- A meta data name-value pair. -

+ +

A meta data name-value pair.

@@ -95,62 +85,54 @@ - -

- An integer between 0 and 100 that denotes the progress of an - operation. -

+ +

An integer between 0 and 100 that denotes the progress of + an operation.

- +
- - -

- A universally unique identifier. -

-
-
- - - - + + +

A universally unique identifier.

+
+
+ + + +
- - -

- An extended status must contian a prefix. -

-
-
- - - + + +

An extended status must contain a prefix.

+
+
+ + +
- + - +
- diff --git a/v2.0/xsd/extensions.xsd b/v2.0/xsd/extensions.xsd index ccebe7b..278934a 100644 --- a/v2.0/xsd/extensions.xsd +++ b/v2.0/xsd/extensions.xsd @@ -1,53 +1,51 @@ - + - + - Extensions - + - -

- This schema file defines types related to API - extensions. -

+

This schema file defines types related to API + extensions.

- + - -

- A list of supported extensions. -

+

A list of supported extensions.

- + - + @@ -55,20 +53,19 @@
- -

- Detials about a specific extension. -

+

Detials about a specific extension.

- + - + @@ -77,105 +74,91 @@ - -

- A list of extensions. -

+

A list of extensions.

- - - + + +
- -

- Detials about a specific extension. -

+

Details about a specific extension.

- + - -

- A short description of what the extension - does. -

+

A short description of what the extension + does.

- - + +
- -

- A human reabable extension name. -

+

A human readable extension name.

- + - -

- Extension namespace used for XML representations. -

+

Extension namespace used for XML + representations.

- -

- A vendor prefix alieas used for non-XML - representations. -

+

A vendor prefix alias used for non-XML + representations.

- + - -

- The time that the extension was added or - modifided. -

+

The time that the extension was added or + modified.

- + - -

- There should be at least one atom link with a - describedby relation. This relation provides - developer info for the extension. -

+

There should be at least one atom link with a + describedby relation. This relation provides + developer info for the extension.

@@ -183,21 +166,18 @@ - -

- Vendor aliases are used to differentiate +

Vendor aliases are used to differentiate extensions in non-XML representations as well as - in HTTP headers and in the URL path. An alias is - made of a vendor prefix, followed be a a dash (-) - followed be a short extension ID. For example: - RAX-PIE. -

+ in HTTP headers and in the URL path. An alias is + made of a vendor prefix, followed be a dash (-) + followed be a short extension ID. For example: + RAX-PIE.

- +
diff --git a/v2.0/xsd/faults.xsd b/v2.0/xsd/faults.xsd index e37e1e6..30d4b71 100644 --- a/v2.0/xsd/faults.xsd +++ b/v2.0/xsd/faults.xsd @@ -1,230 +1,226 @@ - + - + - + Faults - + - -

- This schema file defines faults that may be raised by the - OpenStack Compute API. These faults are derived from the ComputeAPIFault. Most faults extend this - type without adding any additional attributes or elements. - The only exceptions is the OverLimitAPIFault which adds a - retryAt attribute and the AsyncAPIFault which adds a - created timestamp. Because all faults extend - a standard base type, it should be possible to capture all API - faults with a single catch statement. -

-

- Faults are associated with a default HTTP status code that - corresponds to the particular fault type. For example an <itemNotFound> element is associated - with the HTTP status code 404. Some elements, the <computeFault> element for - example, may be associated with multiple status codes. It is - also possible for multiple fault elements to be associated - with the same default code. The examples below showcase the - default status codes for each element type. Note that these - default codes are not part of the formal schema. In practice, - however, an element type will likely be associated with its - corresponding default status code. -

+ +

This schema file defines faults that may be raised by the + OpenStack Compute API. These faults are derived from the ComputeAPIFault. Most faults extend this type without + adding any additional attributes or elements. The only + exceptions is the OverLimitAPIFault which adds a retryAt + attribute and the AsyncAPIFault which adds a created + timestamp. Because all faults extend a standard base type, it + should be possible to capture all API faults with a single + catch statement.

+

Faults are associated with a default HTTP status code that + corresponds to the particular fault type. For example an <itemNotFound> element is associated with the + HTTP status code 404. Some elements, the <computeFault> element for example, may be + associated with multiple status codes. It is also possible for + multiple fault elements to be associated with the same default + code. The examples below showcase the default status codes for + each element type. Note that these default codes are not part + of the formal schema. In practice, however, an element type + will likely be associated with its corresponding default + status code.

- + - -

- A generic Cloud Servers API fault. -

+ +

A generic Cloud Servers API fault.

- + - +
- + - -

- The item or resource could not be found. -

+ +

The item or resource could not be found.

- + - +
- + - -

- The operation is not allowed because the corresponding - server is in a build state. -

+ +

The operation is not allowed because the corresponding + server is in a build state.

- + - +
- + - -

- There is not enough capacity to honor the request. -

+ +

There is not enough capacity to honor the request.

- + - +
- + - -

- The operation is not allowed because the corresponding - server is being re-sized or backed up. -

+ +

The operation is not allowed because the corresponding + server is being re-sized or backed up.

- + - +
- + - -

- The re-size operation is not permitted. -

+ +

The re-size operation is not permitted.

- + - +
- + - -

- The API service is currently unavailable. -

+ +

The API service is currently unavailable.

- + - +
- + - -

- Insufficient privileges to honor the request, perhaps an - authentication token needs to be obtained or renewed. -

+ +

Insufficient privileges to honor the request, perhaps an + authentication token needs to be obtained or renewed.

- + - + @@ -232,130 +228,128 @@
- -

- Authentication has been validated, however the operation is unauthorized. -

+ +

Authentication was validated, however the operation is + unauthorized.

- + - +
- + - -

- An absolute or rate limit has been exceeded. -

+ +

An absolute or rate + limit has been exceeded.

- + - +
- + - -

- The request is malformed. -

+ +

The request is malformed.

- + - +
- + - -

- The Content Type of the request is not supported. -

+ +

The Content Type of the request is not supported.

- + - +
- + - -

- The HTTP method (or verb) is not - supported by the corresponding resource. -

+ +

The HTTP method (or verb) is not + supported by the corresponding resource.

- + - +
- + - -

- The operation is currently not implemented. -

+ +

The operation is currently not implemented.

- + - + @@ -367,39 +361,32 @@ - -

- A human readable message that is appropriate for display - to the end user. -

+ +

A human readable message that is appropriate for + display to the end user.

- -

- The optional <details> element may contain useful - information for tracking down errors (e.g a stack - trace). This information may or may not be appropriate - for display to an end user. -

+ +

The optional <details> element may contain useful + information for tracking down errors (such as, a stack + trace). This information might not be appropriate for an + end user.

- +
- -

- The HTTP status code associated with the current fault. + +

The HTTP status code associated with the current fault.

@@ -409,72 +396,61 @@ - - + - - + - - + - - + - - + - - + - - + - - + - + - -

- An optional dateTime denoting when an operation should - be retried. -

+ +

An optional dateTime denoting when an operation + should be retried.

@@ -485,47 +461,40 @@ - - - -

- An optional dateTime denoting when the fault - was created. -

-
-
-
+ + + +

An optional dateTime denoting when the fault + occurred.

+
+
+
- - + - - + - - + - - + diff --git a/v2.0/xsd/limits.xsd b/v2.0/xsd/limits.xsd index 9dd9b17..e551dd6 100644 --- a/v2.0/xsd/limits.xsd +++ b/v2.0/xsd/limits.xsd @@ -1,58 +1,55 @@ - + - + - + Limits - + - -

- This schema file defines types related to - preconfigured limits. Limits are used to manage the - capacity of the API and to prevent abuse. The API - defines two kinds of limits RateLimits - and rate + limits and AbsoluteLimits. RateLimits are - thresholds that are reset after a certain amount of - time passes. Absolute limits are fixed. -

+ AbsoluteLimit" + >absolute limits. Rate limits are thresholds + that are reset after a certain amount of time passes. + Absolute limits are fixed.

- -

- The limits element contains information on both rate and - absolute limits. -

+

The limits element contains information on both + rate and absolute limits.

- + - + @@ -63,62 +60,61 @@ - - The HttpMethod simple type defines a string + The HttpMethod simple type defines a string enumeration of HTTP method verbs as outlined in RFC2616 - section 9. - + href="http://www.ietf.org/rfc/rfc2616.txt" + >RFC2616 section 9. - + - - - - - - - - - - + + + + + + + + + + - - The TimeUnit simple type defines a string + The TimeUnit simple type defines a string enumeration of coarse time units that are be used to define the duration of time that a limited - request will be unavailable for. - + request will be unavailable for. - + - - - - + + + + - - A Limits type defines a collection of limits + A Limits type defines a collection of limits - + - - - + + + @@ -126,15 +122,16 @@ - - An AbsoluteLimitList type defines a list of absolute limits - + An AbsoluteLimitList type defines a list of + absolute limits - - + + @@ -142,16 +139,16 @@ - - A RateLimitList type defines a list of resource - scoped limit collections. - + A RateLimitList type defines a list of + resource scoped limit collections. - + - - + + @@ -159,28 +156,26 @@ - - A ResourceLimitCollection type represents a - collection of limits that are scoped to a single - resource variant. - + A ResourceLimitCollection type represents a + collection of limits that are scoped to a single + resource variant. - + - - + + - + - - The uri of a limit collection is a human + The URI of a limit collection is a human readable string version of the regular expression matcher that is used to define the - limit collection resource scope. - + limit collection resource scope. @@ -188,10 +183,8 @@ - - A collection of limits are scoped to a - resource by a regular expression. - + A collection of limits are scoped to a + resource by a regular expression. @@ -201,9 +194,8 @@ - - Absolute limits are predefined fixed limits. We - define each of these limits as a key/value + Absolute limits are predefined fixed limits. + We define each of these limits as a key/value pair. Please consult the API Specification for a list of absolute limits used by the system. @@ -211,13 +203,13 @@ - + - - The name (or key) of the absolute limit. + The name (or key) of the absolute limit. @@ -226,12 +218,11 @@ - - A value specifying the absolute limit.The name - of the absolute limit determines the unit + A value specifying the absolute limit. The + name of the absolute limit determines the unit type. For example, the key maxIPGroups implies - that the value is in terms of IPGroups. - + that the value is in terms of + IPGroups. @@ -241,25 +232,25 @@ - - A Rate Limit type defines the maximum number of - requests that can be performed, the time interval - that each limited request will be unavailable for, - and, for convience, the remaining number of - requests remaining. This is done for every - HttpMethod that is rate limited. + A Rate Limit type defines the maximum number + of requests that can be performed, the time + interval that each limited request will be + unavailable for, and, for convenience, the + remaining number of requests remaining. This is + done for every HttpMethod that is rate limited. - + - + - - The verb of a Limit represents the HttpMethod - that the Limit is scoped to. + The verb of a Limit represents the + HttpMethod that the Limit is scoped to. @@ -268,10 +259,9 @@ - - The value of a Limit represents maximum Number - of requests that the rate limit will allow. - + The value of a Limit represents maximum + Number of requests that the rate limit will + allow. @@ -279,34 +269,31 @@ - - The remaining number of requests that a user - can make against the limited resource before - being denied access. + The remaining number of requests that a + user can make against the limited resource + before being denied access. + + + + + + + + The unit of a Limit defines the duration + of a limited request's unavailability. - + - - The unit of a Limit defines the duration of a - limited request's unavailability. - - - - - - - - - - The next-available attribute of a Limit tells - the user when a limited request will become - available for consumption. - + The next-available attribute of a limit + tells the user when a limited request + becomes available for consumption. diff --git a/v2.0/xsd/secgr.xsd b/v2.0/xsd/secgr.xsd index 88fa6a0..da8b991 100644 --- a/v2.0/xsd/secgr.xsd +++ b/v2.0/xsd/secgr.xsd @@ -13,8 +13,8 @@ -

This is the main index XML Schema document for Security Groups API - Schema Types Version 1.0.

+

This is the main index XML Schema document for Security + Groups API Schema Types Version 1.0.

@@ -259,7 +259,7 @@ -

The hostname attached to the instance.

+

The host name attached to the instance.

@@ -549,8 +549,8 @@ -

A human readable message that is appropriate for - display to the end user.

+

A human readable message that is appropriate for + display to the end user.

@@ -558,10 +558,10 @@ -

The optional <details> element may contain - useful information for tracking down errors (e.g a stack +

The optional <details> element may contain useful + information for tracking down errors (such as, a stack trace). This information may or may not be appropriate - for display to an end user.

+ for display to an end user.

@@ -572,8 +572,7 @@ -

The HTTP status code associated with the current fault. -

+

The HTTP status code associated with the current fault.

@@ -582,25 +581,25 @@ - + - + - + - + @@ -611,8 +610,8 @@ -

An optional dateTime denoting when an operation - should be retried.

+

An optional dateTime denoting when an operation + should be retried.

@@ -622,39 +621,38 @@ - + - + - + - + - + - +
- diff --git a/v2.0/xsd/server.xsd b/v2.0/xsd/server.xsd index 1c89c8b..089ffef 100644 --- a/v2.0/xsd/server.xsd +++ b/v2.0/xsd/server.xsd @@ -1,105 +1,89 @@ - + - + - + Servers and Related Types - + - -

- This schema file defines a Server and all internal + +

This schema file defines a Server and all internal entities related to servers including Addresses and Files. -

+ href="#type_Addresses" + title="Addresses type + definition">Addresses and + Files.

- + - -

- Common types used by multiple entities and possibly spanning - several types of requests. -

+ +

Common types used by multiple entities and possibly + spanning several types of requests.

- -

- Types related to images. -

+ +

Types related to images.

- -

- Types related to flavors. -

+ +

Types related to flavors.

- -

- All fault types. -

+ +

All fault types.

- -

- The element defines a server. -

+ +

The element defines a server.

- + - + @@ -108,20 +92,19 @@ - -

- A collection of servers. -

+ +

A collection of servers.

- + - + @@ -130,361 +113,305 @@ - -

- The element defines list of addresses by network: (public, - private, ...). -

+ +

The element defines list of addresses by network: (public, + private, ...).

- + - - - - -
-
- - - - -

- The element defines a list of addresses in a network. -

-
- - - - - - - +
- + - -

- The element defines an individual IP address. -

+ +

The element defines a list of addresses in a network.

- + - +
- + + + + +

The element defines an individual IP address.

+
+ + + + + + + + + + +
+
+ - -

- A server is a virtual machine instance in the Cloud Servers - system. Note that this complex type defines all elements - and attributes as optional because a server instance may - take many different forms depending on the operation. When - creating a server, for example, the name, imageRef, and - flavorRef attributes are required. In addition, optional - metadata and personality file elements may be specified: -

+ +

A server is a virtual machine instance in the Cloud + Servers system. Note that this complex type defines all + elements and attributes as optional because a server + instance may take many different forms depending on the + operation. When creating a server, for example, the name, + imageRef, and flavorRef attributes are required. In + addition, optional metadata and personality file elements + may be specified:

- + - + -

- The response to such a crate operation will include the +

The response to such a crate operation will include the administration password, host ID, and addresses associated - with the server: -

+ with the server:

- + - + -

- When modifying a server only the name and administration +

When modifying a server only the name and administration password should be specified as these are the only - attributes that are modifiable. -

+ attributes that are modifiable.

- + - +
- - -

- A reference to an image used to create the - server. External images must contian a link that - provides the full path to the image resource. -

-
-
+ + +

A reference to an image used to create the server. + External images must contain a link that provides the + full path to the image resource.

+
+
- - -

- The current server flavor. This may not contais - all flavor detials but will always contain an - ID, a name, as well as self and bookmark links. -

-
-
+ + +

The current server flavor. This may not contains all + flavor details but will always contain an ID, a name, as + well as self and bookmark links.

+
+
- -

- A collection of meta data items associated with the server. -

+ +

A collection of meta data items associated with the + server.

- -

- A server's public and private address. -

+ +

A server's public and private address.

- + - -

- A collection of small files used to personalize a new - server instance. -

+ +

A collection of small files + used to personalize a new server instance.

- - -

- The detials of a fault that may have occured - while cerating the server or performing a server - action. -

-
-
+ + +

The details of a fault that may have occurred while + creating the server or performing a server action.

+
+
- - + +
- -

- The name of the server. -

+ +

The name of the server.

- -

- A reference to an image. This is used exclusevely when - creating a server. Using an image ID here indicates that - the image is locally hosted. -

+ +

A reference to an image. This is used exclusively when + creating a server. Using an image ID here indicates that + the image is locally hosted.

- -

- A reference to a flavor. This is used exclusevely when - creating a server. Using a flavorRef here indicates that - the flavor is locally hosted. -

+ +

A reference to a flavor. This is used exclusively when + creating a server. Using a flavorRef here indicates that + the flavor is locally hosted.

- -

- The IPv4 primary IP. -

+ +

The IPv4 primary IP.

- -

- The IPv6 primary IP. -

+ +

The IPv6 primary IP.

-
+ + - -

- The ID of the server. -

+ +

The ID of the server.

- -

- The server's administration password. -

+ +

The server's administration password.

- + - -

- A unique ID that identifies the tenant that contains - the server. -

+ +

A unique ID that identifies the tenant that contains the + server.

- + - -

- A unique ID that identifies the user who created - the server. -

+ +

A unique ID that identifies the user who created the + server.

- + - -

- A unique ID that identifies the physical host that the VM - is running on. This ID is unique per - account and not globally unique. -

+ +

A unique ID that identifies the physical host that the + VM is running on. This ID is unique per + account and not globally unique.

- + - -

- The progress of the current server operation. -

+ +

The progress of the current server operation.

- + - -

- The current state (or status) of the - server. -

+ +

The current state (or status) of the server.

- -

- The time the server was updated. -

+ +

The time the server was updated.

- -

- The time the server was created. -

+ +

The time the server was created.

@@ -492,216 +419,207 @@
- - + +

The only allowed attribute for this Server type is the + name, ID, and links. This type is used for non-detailed + server lists.

+
+
+ + + + + + + + + + + + + + + + + + + + + + -

- The only allowed attribute for this Server type is - the name, ID, and links. This type is used for - non-detailed server lists. -

-
-
- - - - - - - - - - - - - - - - - - - - - - -

- Here the server MUST - contain a name, an ID, a bookmark link, - and a self link. -

-
-
-
-
-
+

The server MUST contain a name, an + ID, a bookmark link, and a self link.

+
+
+ + + - - -

- When creating a server the server must contain a - name and a reference to an image and flavor. -

-
-
- - - - - - -

- A collection of meta data items associated with the server. -

-
-
-
- - - -

- A collection of small files used to personalize a new - server instance. -

-
-
-
- -
- - - - - - - - - - - - - - - -
-
+ + +

When creating a server the server must contain a name and + a reference to an image and flavor.

+
+
+ + + + + + +

A collection of meta data items associated with + the server.

+
+
+
+ + + +

A collection of small files used to personalize a new server + instance.

+
+
+
+ +
+ + + + + + + + + + + + + + + +
+
- - - - - -

- When updating a server. The server - MUST contain either a - name or metadata or access address. The - other fields are not editabile on a - server update. -

-
-
-
-
-
+ + + + + +

When updating a server. The server + MUST contain either a name or + metadata or access address. The other fields are not + editable on a server update.

+
+
+
+
+
- + - -

- A collection of servers. -

+ +

A collection of servers.

- - + +
- - -

- A collection of servers with only IDs, names, and - links. A collection of this type is returned in - non-detailed server list. -

-
-
- - - - - - - - - - + + +

A collection of servers with only IDs, names, and links. A + collection of this type is returned in non-detailed server + list.

+
+
+ + + + + + + + +
- - A collection of small files used to personalize a server - instance. + A collection of small files used to personalize a server instance. - + - -

- A collection of files. -

+ +

A collection of files.

- +
- -

- A file is simply a full path along with base64 file + +

A file is simply a full path along with base64 file content. The name of the file is specified in the path - attribute and the file content is included - inline. -

+ attribute and the file + content is included inline.

- + - -

- Full file path. -

+ +

Full file path.

@@ -737,151 +652,128 @@ - - - + + + - + - -

- A collection of addresses. -

+ +

A collection of addresses.

- - + +
- - -

- A id of an address list. This is typically a name - used to identify a network. -

-
-
+ + +

A id of an address list. This is typically a name used + to identify a network.

+
+
- + - -

- An IP address. -

-
-
+ +

An IP address.

+
+
- + - -

- The IP Address version can be 4 or 6. The version - attribute is optional if it is left off, the type of - address will be determined by from its address - format. If it is specified it should - match the address format. -

-

- The OpenStack compute API will always fill in the - version number as a convinence to the client. -

-
-
+ +

The IP Address version can be 4 or 6. The version + attribute is optional if it is left off, the type of + address is determined from its address format. If it is + specified, it should match the address + format.

+

The OpenStack compute API always fills in the version + number as a convenience to the client.

+
+
- - -

- An extensible server status type allows all of the - strings defined in ServerStatus or an alias prefixed - status. -

-
-
- + + +

An extensible server status type allows all of the strings + defined in ServerStatus or an alias prefixed status.

+
+
+
- -

- The server is ready to use. -

+ +

The server is ready to use.

- -

- The server is in an inactive (suspended) state. -

+ +

The server is in an inactive (suspended) state.

- -

- The server has been deleted. -

+ +

The server has been deleted.

- -

- The server is being resized. -

+ +

The server is being resized.

- -

- The server is waiting for the resize operation to be + +

The server is waiting for the resize operation to be confirmed so that the original server may be removed.

@@ -889,83 +781,66 @@
- -

- The requested operation failed, the server is in an - error state. -

+ +

The requested operation failed, the server is in an + error state.

- -

- The server is being built. -

+ +

The server is being built.

- -

- The server password is being changed. -

+ +

The server password is being changed.

- -

- The server is being rebuilt. -

+ +

The server is being rebuilt.

- -

- The server is going through a SOFT reboot. -

+ +

The server is going through a SOFT reboot.

- -

- The server is going through a HARD reboot. -

+ +

The server is going through a HARD reboot.

- -

- The server is in an unknown state. -

+ +

The server is in an unknown state.

@@ -974,40 +849,34 @@ - + - + - - - - -

- Denotes IPv4. -

-
-
-
- - - -

- Denotes IPv6. -

-
-
-
-
+ + + + +

Denotes IPv4.

+
+
+
+ + + +

Denotes IPv6.

+
+
+
+
diff --git a/v2.0/xsd/version.xsd b/v2.0/xsd/version.xsd index 90b39aa..39c0257 100644 --- a/v2.0/xsd/version.xsd +++ b/v2.0/xsd/version.xsd @@ -1,55 +1,52 @@ - + + + - - - + Version Types - + - -

- This schema file defines all types related to versioning. -

+

This schema file defines all types related to + versioning.

- - + + - -

- This element is returned when the version of the +

This element is returned when the version of the resource cannot be determined. The element - provides a list of choices for the resource. -

+ provides a list of choices for the resource.

- + - + @@ -59,35 +56,34 @@ - -

- Provides a list of supported versions. -

+

Provides a list of supported versions.

- + - + - +
- + - -

- This element provides detailed meta information +

This element provides detailed meta information regarding the status of the current API version. This is the XSD 1.0 compatible element definition.

@@ -95,29 +91,30 @@
- + - -

- This element provides detailed meta information - regarding the status of the current API - version. The description should include a pointer - to both a human readable and a machine processable - description of the API service. -

+

This element provides detailed meta information + regarding the status of the current API version. + The description should include a pointer to both a + human readable and a machine processable + description of the API service.

- + - + - + @@ -128,37 +125,34 @@ - - The VersionStatus type describes a service's operational status. - + The VersionStatus type describes a service's + operational status. - + - - This is a new service the API. Thi API - contract may be set, but the implementaiton - may not be 100% complient with it. Developers - are encouraged to begin testing aganst an - ALPHA version to provide feedback. - + This is a new service the API. This + API contract may be set, but the + implementation may not be 100% compliant + with it. Developers are encouraged to + begin testing against an ALPHA version to + provide feedback. - - A status of BETA indicates that this + A status of BETA indicates that this version is a candidate for the next major release and may feature functionality not - available in the current - version. Developers are encouraged to test - and begin the migration processes to a - BETA version. Note that a BETA version is + available in the current version. + Developers are encouraged to test and + begin the migration processes to a BETA + version. Note that a BETA version is undergoing testing, it has not been officially released, and my not be stable. @@ -168,54 +162,49 @@ - - The API version is stable and has been + The API version is stable and has been tested. Developers are encouraged to develop against this API version. The current released version of the API will - always be marked as CURRENT. - + always be marked as CURRENT. - - A status of DEPRECATED indicates that a - newer version of the API is - available. Application developers are - discouraged from using this version and - should instead develop against the latest - current version of the API. - + A status of DEPRECATED indicates that + a newer version of the API is available. + Application developers are discouraged + from using this version and should instead + develop against the latest current version + of the API. - + - - A version choice list outlines a collection of - resources at various versions. - + A version choice list outlines a collection of + resources at various versions. - - + + - + - - In version lists, every single version must - contain at least one self link. - + In version lists, every single version + must contain at least one self link. @@ -227,10 +216,9 @@ - - When used as a root element, a version choice - must contain at least one describedby link. - + When used as a root element, a + version choice must contain at least + one describedby link. @@ -241,40 +229,43 @@ - - A version choice contains relevant information + A version choice contains relevant information about an available service that a user can then - use to target a specific version of the service. - + use to target a specific version of the + service. - - - + + + - - The ID of a version choice represents the service version's unique - identifier. This ID is guaranteed to be unique only among the - service version choices outlined in the VersionChoiceList. - + The ID of a version choice represents the + service version's unique identifier. This ID + is guaranteed to be unique only among the + service version choices outlined in the + VersionChoiceList. - + - - A version choice's status describes the current operational state of - the given service version. The operational status is captured in a - simple type enumeration called VersionStatus. - + A version choice's status describes the + current operational state of the given service + version. The operational status is captured in + a simple type enumeration called + VersionStatus. @@ -282,14 +273,12 @@ - - A version choice's updated attribute describes - the time when the version was updated. The - time should be updated anytime - anything in the + A version choice's updated attribute + describes the time when the version was + updated. The time should be updated anytime + anythingin the version has changed: documentation, - extensions, bug fixes. - + extensions, bug fixes. @@ -299,16 +288,16 @@ - - A MediaTypeList outlines a collection of valid media types for a given - service version. - + A MediaTypeList outlines a collection of valid + media types for a given service version. - + - - + + @@ -316,25 +305,24 @@ - - A MediaType describes what content types the service version understands. - + A MediaType describes what content types the + service version understands. - + - + - - The base of a given media type describes the - simple MIME type that then a more complicated - media type can be derived from. These types - are basic and provide no namespace or version - specific data are are only provided as a - convenience. - + The base of a given media type describes + the simple MIME type that then a more + complicated media type can be derived from. + These types are basic and provide no namespace + or version specific data are only provided as + a convenience. @@ -342,11 +330,9 @@ - - The type attribute of a MediaType describes - the MIME specific identifier of the media type - in question. - + The type attribute of a MediaType + describes the MIME specific identifier of the + media type in question.