diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.json
new file mode 100644
index 000000000..d174bad5a
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.json
@@ -0,0 +1,8 @@
+{
+ "floating_ips_bulk_create" :
+ {
+ "ip_range": "192.168.1.0/24",
+ "pool": "nova",
+ "interface": "eth0"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.xml
new file mode 100644
index 000000000..1fc730509
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.xml
@@ -0,0 +1,6 @@
+
+
+192.168.1.0/24
+nova
+eth0
+
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.json
new file mode 100644
index 000000000..ef1cbfb17
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.json
@@ -0,0 +1,7 @@
+{
+ "floating_ips_bulk_create": {
+ "interface": "eth0",
+ "ip_range": "192.168.1.0/24",
+ "pool": "nova"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.xml
new file mode 100644
index 000000000..db80bbfc1
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.xml
@@ -0,0 +1,6 @@
+
+
+ eth0
+ 192.168.1.0/24
+ nova
+
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.json
new file mode 100644
index 000000000..df59c1a73
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.json
@@ -0,0 +1,3 @@
+{
+ "ip_range": "192.168.1.0/24"
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.xml
new file mode 100644
index 000000000..c40f28dc3
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.xml
@@ -0,0 +1,2 @@
+
+192.168.1.0/24
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.json
new file mode 100644
index 000000000..166984b24
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.json
@@ -0,0 +1,3 @@
+{
+ "floating_ips_bulk_delete": "192.168.1.0/24"
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.xml
new file mode 100644
index 000000000..3d77af334
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.xml
@@ -0,0 +1,2 @@
+
+192.168.1.0/24
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.json
new file mode 100644
index 000000000..0eaaf75ae
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.json
@@ -0,0 +1,11 @@
+{
+ "floating_ip_info": [
+ {
+ "address": "10.10.10.3",
+ "instance_uuid": null,
+ "interface": "eth0",
+ "pool": "nova",
+ "project_id": null
+ }
+ ]
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.xml
new file mode 100644
index 000000000..4c3c8cd9c
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.xml
@@ -0,0 +1,10 @@
+
+
+ -
+ eth0
+ None
+ None
+ nova
+ 10.10.10.3
+
+
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.json b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.json
new file mode 100644
index 000000000..de1e622bb
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.json
@@ -0,0 +1,25 @@
+{
+ "floating_ip_info": [
+ {
+ "address": "10.10.10.1",
+ "instance_uuid": null,
+ "interface": "eth0",
+ "pool": "nova",
+ "project_id": null
+ },
+ {
+ "address": "10.10.10.2",
+ "instance_uuid": null,
+ "interface": "eth0",
+ "pool": "nova",
+ "project_id": null
+ },
+ {
+ "address": "10.10.10.3",
+ "instance_uuid": null,
+ "interface": "eth0",
+ "pool": "nova",
+ "project_id": null
+ }
+ ]
+}
\ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.xml b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.xml
new file mode 100644
index 000000000..6ef85bd87
--- /dev/null
+++ b/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.xml
@@ -0,0 +1,24 @@
+
+
+ -
+ eth0
+ None
+ None
+ nova
+ 10.10.10.1
+
+ -
+ eth0
+ None
+ None
+ nova
+ 10.10.10.2
+
+ -
+ eth0
+ None
+ None
+ nova
+ 10.10.10.3
+
+
\ No newline at end of file
diff --git a/nova/tests/policy.json b/nova/tests/policy.json
index b08e89baa..33c5c96f2 100644
--- a/nova/tests/policy.json
+++ b/nova/tests/policy.json
@@ -105,6 +105,7 @@
"compute_extension:floating_ip_dns": "",
"compute_extension:floating_ip_pools": "",
"compute_extension:floating_ips": "",
+ "compute_extension:floating_ips_bulk": "",
"compute_extension:fping": "",
"compute_extension:fping:all_tenants": "is_admin:True",
"compute_extension:hosts": "",