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
-
CRU
-
False
-
{ 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 constraint
-
Owner 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
-
Yes
-
CR
-
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 null
-
default 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
-
No
-
CRU
-
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 constraint
-
Owner 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_ips
-
list(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_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 constraint
-
Owner of port. Only admin users can
- specify a tenant_id other than its own.
-
-
-
-
security_groups
-
list(dict)
-
No
-
CRUD
-
None
-
Existing security group IDs
-
Specifies 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
-
-
-
-
-
Attribute
-
Description
-
-
-
-
-
name
-
The name for the network.
-
-
-
admin_state_up
-
Specifies 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
-
-
-
Field
-
Description
-
-
-
-
-
admin_state_up
-
Administrative state of the
- router.
-
-
-
device_id
-
The ID of the device that uses
- this port. For example, a virtual
- server,
-
-
-
device_owner
-
The ID of the entity that uses
- this port. For example, a dhcp
- agent.
-
-
-
fixed_ips
-
IP addresses for the port.
- Includes the IP address and subnet
- ID.
-
-
-
id
-
The ID of the port.
-
-
-
mac_address
-
The MAC address of the port.
-
-
-
name
-
The name of the port.
-
-
-
network_id
-
The ID of the attached
- network.
-
-
-
security_groups
-
The IDs of any attached security
- groups.
-
-
-
status
-
The status of the port: UP or
- DOWN.
-
-
-
tenant_id
-
The 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_id
-
UUID
-
Yes
-
N/A
-
Must be a valid uuid representative of an external network.
-
-
-
-
enable_snat
-
Boolean
-
No
-
True
-
{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.
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 OKError 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_id
+
UUID
+
Yes
+
N/A
+
Must be a valid uuid representative of an external
+ network.
+
+
+
+
enable_snat
+
Boolean
+
No
+
True
+
{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
- (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 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 OKError 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
+ RequestUpdate 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 RulesCreates, 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 binding 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 Value
+
Validation Constraints
+
Notes
+
+
+
+
+
binding:vif_type
+
String
+
N/A
+
R
+
None
+
N/A
+
Read-only. The vif type for the specified
+ port.
+
+
+
+
+ binding:host_id
+
uuid-str
+
N/A
+
CRU
+
None
+
N/A
+
The ID of the host where the port is
+ allocated. In some cases different
+ implementations can run on different
+ hosts.
+
+
+
+
+ binding:profile
+
list(dict)
+
N/A
+
CRU
+
None
+
N/A
+
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
+
list(dict)
+
+
N/A
+
R
+
None
+
N/A
+
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.
+
+
+
+
+
+ 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
+
+
+
+
+
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
+
CRU
+
False
+
{ 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 constraint
+
Owner 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
+
Yes
+
CR
+
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 null
+
default 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
+
star/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
+
No
+
CRU
+
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 constraint
+
Owner 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_ips
+
list(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_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 constraint
+
Owner of network. Only admin users can specify
+ a tenant_id other than its own.
+
+
+
security_groups
+
list(dict)
+
No
+
CRUD
+
None
+
Existing security group IDs
+
Specifies 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.
+
+ &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.
-
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
-
- 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.
-
- 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.
- 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.