Bulk delete network items from access list
diff --git a/rackspace/lb/v1/acl/results.go b/rackspace/lb/v1/acl/results.go
index e564307..ed87be7 100644
--- a/rackspace/lb/v1/acl/results.go
+++ b/rackspace/lb/v1/acl/results.go
@@ -1 +1,59 @@
package acl
+
+import (
+ "github.com/mitchellh/mapstructure"
+
+ "github.com/rackspace/gophercloud"
+ "github.com/rackspace/gophercloud/pagination"
+)
+
+type AccessList []NetworkItem
+
+type NetworkItem struct {
+ Address string
+ ID int
+ Type Type
+}
+
+type Type string
+
+const (
+ ALLOW Type = "ALLOW"
+ DENY Type = "DENY"
+)
+
+// AccessListPage is the page returned by a pager when traversing over a collection of
+// network items in an access list.
+type AccessListPage struct {
+ pagination.SinglePageBase
+}
+
+// IsEmpty checks whether an AccessListPage struct is empty.
+func (p AccessListPage) IsEmpty() (bool, error) {
+ is, err := ExtractAccessList(p)
+ if err != nil {
+ return true, nil
+ }
+ return len(is) == 0, nil
+}
+
+// ExtractAccessList accepts a Page struct, specifically an AccessListPage
+// struct, and extracts the elements into a slice of NetworkItem structs. In
+// other words, a generic collection is mapped into a relevant slice.
+func ExtractAccessList(page pagination.Page) (AccessList, error) {
+ var resp struct {
+ List AccessList `mapstructure:"accessList" json:"accessList"`
+ }
+
+ err := mapstructure.Decode(page.(AccessListPage).Body, &resp)
+
+ return resp.List, err
+}
+
+type CreateResult struct {
+ gophercloud.ErrResult
+}
+
+type DeleteResult struct {
+ gophercloud.ErrResult
+}