Adding Fields to ListOptions in networking

Change-Id: I688e8993a9d8a853ee6bd040f6d704391447f9d5
diff --git a/openstack/networking/v2/extensions/layer3/floatingips/requests.go b/openstack/networking/v2/extensions/layer3/floatingips/requests.go
index c7ea8a6..bb12289 100644
--- a/openstack/networking/v2/extensions/layer3/floatingips/requests.go
+++ b/openstack/networking/v2/extensions/layer3/floatingips/requests.go
@@ -11,17 +11,18 @@
 // sort by a particular network attribute. SortDir sets the direction, and is
 // either `asc' or `desc'. Marker and Limit are used for pagination.
 type ListOpts struct {
-	ID                string `q:"id"`
-	FloatingNetworkID string `q:"floating_network_id"`
-	PortID            string `q:"port_id"`
-	FixedIP           string `q:"fixed_ip_address"`
-	FloatingIP        string `q:"floating_ip_address"`
-	TenantID          string `q:"tenant_id"`
-	Limit             int    `q:"limit"`
-	Marker            string `q:"marker"`
-	SortKey           string `q:"sort_key"`
-	SortDir           string `q:"sort_dir"`
-	RouterID          string `q:"router_id"`
+	ID                string   `q:"id"`
+	FloatingNetworkID string   `q:"floating_network_id"`
+	PortID            string   `q:"port_id"`
+	FixedIP           string   `q:"fixed_ip_address"`
+	FloatingIP        string   `q:"floating_ip_address"`
+	TenantID          string   `q:"tenant_id"`
+	Limit             int      `q:"limit"`
+	Marker            string   `q:"marker"`
+	SortKey           string   `q:"sort_key"`
+	SortDir           string   `q:"sort_dir"`
+	RouterID          string   `q:"router_id"`
+	Fields            []string `q:"fields"`
 }
 
 // List returns a Pager which allows you to iterate over a collection of
diff --git a/openstack/networking/v2/extensions/layer3/routers/requests.go b/openstack/networking/v2/extensions/layer3/routers/requests.go
index b602084..51fb374 100644
--- a/openstack/networking/v2/extensions/layer3/routers/requests.go
+++ b/openstack/networking/v2/extensions/layer3/routers/requests.go
@@ -11,16 +11,17 @@
 // sort by a particular network attribute. SortDir sets the direction, and is
 // either `asc' or `desc'. Marker and Limit are used for pagination.
 type ListOpts struct {
-	ID           string `q:"id"`
-	Name         string `q:"name"`
-	AdminStateUp *bool  `q:"admin_state_up"`
-	Distributed  *bool  `q:"distributed"`
-	Status       string `q:"status"`
-	TenantID     string `q:"tenant_id"`
-	Limit        int    `q:"limit"`
-	Marker       string `q:"marker"`
-	SortKey      string `q:"sort_key"`
-	SortDir      string `q:"sort_dir"`
+	ID           string   `q:"id"`
+	Name         string   `q:"name"`
+	AdminStateUp *bool    `q:"admin_state_up"`
+	Distributed  *bool    `q:"distributed"`
+	Status       string   `q:"status"`
+	TenantID     string   `q:"tenant_id"`
+	Limit        int      `q:"limit"`
+	Marker       string   `q:"marker"`
+	SortKey      string   `q:"sort_key"`
+	SortDir      string   `q:"sort_dir"`
+	Fields       []string `q:"fields"`
 }
 
 // List returns a Pager which allows you to iterate over a collection of
diff --git a/openstack/networking/v2/networks/requests.go b/openstack/networking/v2/networks/requests.go
index 7d4f1cb..a666eff 100644
--- a/openstack/networking/v2/networks/requests.go
+++ b/openstack/networking/v2/networks/requests.go
@@ -17,16 +17,17 @@
 // by a particular network attribute. SortDir sets the direction, and is either
 // `asc' or `desc'. Marker and Limit are used for pagination.
 type ListOpts struct {
-	Status       string `q:"status"`
-	Name         string `q:"name"`
-	AdminStateUp *bool  `q:"admin_state_up"`
-	TenantID     string `q:"tenant_id"`
-	Shared       *bool  `q:"shared"`
-	ID           string `q:"id"`
-	Marker       string `q:"marker"`
-	Limit        int    `q:"limit"`
-	SortKey      string `q:"sort_key"`
-	SortDir      string `q:"sort_dir"`
+	Status       string   `q:"status"`
+	Name         string   `q:"name"`
+	AdminStateUp *bool    `q:"admin_state_up"`
+	TenantID     string   `q:"tenant_id"`
+	Shared       *bool    `q:"shared"`
+	ID           string   `q:"id"`
+	Marker       string   `q:"marker"`
+	Limit        int      `q:"limit"`
+	SortKey      string   `q:"sort_key"`
+	SortDir      string   `q:"sort_dir"`
+	Fields       []string `q:"fields"`
 }
 
 // ToNetworkListQuery formats a ListOpts into a query string.
diff --git a/openstack/networking/v2/ports/requests.go b/openstack/networking/v2/ports/requests.go
index 0cb899f..193901b 100644
--- a/openstack/networking/v2/ports/requests.go
+++ b/openstack/networking/v2/ports/requests.go
@@ -17,19 +17,20 @@
 // by a particular port attribute. SortDir sets the direction, and is either
 // `asc' or `desc'. Marker and Limit are used for pagination.
 type ListOpts struct {
-	Status       string `q:"status"`
-	Name         string `q:"name"`
-	AdminStateUp *bool  `q:"admin_state_up"`
-	NetworkID    string `q:"network_id"`
-	TenantID     string `q:"tenant_id"`
-	DeviceOwner  string `q:"device_owner"`
-	MACAddress   string `q:"mac_address"`
-	ID           string `q:"id"`
-	DeviceID     string `q:"device_id"`
-	Limit        int    `q:"limit"`
-	Marker       string `q:"marker"`
-	SortKey      string `q:"sort_key"`
-	SortDir      string `q:"sort_dir"`
+	Status       string   `q:"status"`
+	Name         string   `q:"name"`
+	AdminStateUp *bool    `q:"admin_state_up"`
+	NetworkID    string   `q:"network_id"`
+	TenantID     string   `q:"tenant_id"`
+	DeviceOwner  string   `q:"device_owner"`
+	MACAddress   string   `q:"mac_address"`
+	ID           string   `q:"id"`
+	DeviceID     string   `q:"device_id"`
+	Limit        int      `q:"limit"`
+	Marker       string   `q:"marker"`
+	SortKey      string   `q:"sort_key"`
+	SortDir      string   `q:"sort_dir"`
+	Fields       []string `q:"fields"`
 }
 
 // ToPortListQuery formats a ListOpts into a query string.
diff --git a/openstack/networking/v2/subnets/requests.go b/openstack/networking/v2/subnets/requests.go
index e309458..f5906fa 100644
--- a/openstack/networking/v2/subnets/requests.go
+++ b/openstack/networking/v2/subnets/requests.go
@@ -17,18 +17,19 @@
 // by a particular subnet attribute. SortDir sets the direction, and is either
 // `asc' or `desc'. Marker and Limit are used for pagination.
 type ListOpts struct {
-	Name       string `q:"name"`
-	EnableDHCP *bool  `q:"enable_dhcp"`
-	NetworkID  string `q:"network_id"`
-	TenantID   string `q:"tenant_id"`
-	IPVersion  int    `q:"ip_version"`
-	GatewayIP  string `q:"gateway_ip"`
-	CIDR       string `q:"cidr"`
-	ID         string `q:"id"`
-	Limit      int    `q:"limit"`
-	Marker     string `q:"marker"`
-	SortKey    string `q:"sort_key"`
-	SortDir    string `q:"sort_dir"`
+	Name       string   `q:"name"`
+	EnableDHCP *bool    `q:"enable_dhcp"`
+	NetworkID  string   `q:"network_id"`
+	TenantID   string   `q:"tenant_id"`
+	IPVersion  int      `q:"ip_version"`
+	GatewayIP  string   `q:"gateway_ip"`
+	CIDR       string   `q:"cidr"`
+	ID         string   `q:"id"`
+	Limit      int      `q:"limit"`
+	Marker     string   `q:"marker"`
+	SortKey    string   `q:"sort_key"`
+	SortDir    string   `q:"sort_dir"`
+	Fields     []string `q:"fields"`
 }
 
 // ToSubnetListQuery formats a ListOpts into a query string.