func (opts CreateOpts) ToLBPoolCreateMap() (map[string]interface{}, error) {
	return gophercloud.BuildRequestBody(opts, "pool")
}
ToLBPoolCreateMap allows CreateOpts to satisfy the CreateOptsBuilder interface
package pools
import (
	"github.com/gophercloud/gophercloud"
	"github.com/gophercloud/gophercloud/pagination"
)
type ListOpts struct {
	Status       string `q:"status"`
	LBMethod     string `q:"lb_method"`
	Protocol     string `q:"protocol"`
	SubnetID     string `q:"subnet_id"`
	TenantID     string `q:"tenant_id"`
	AdminStateUp *bool  `q:"admin_state_up"`
	Name         string `q:"name"`
	ID           string `q:"id"`
	VIPID        string `q:"vip_id"`
	Limit        int    `q:"limit"`
	Marker       string `q:"marker"`
	SortKey      string `q:"sort_key"`
	SortDir      string `q:"sort_dir"`
}
func List(c *gophercloud.ServiceClient, opts ListOpts) pagination.Pager {
	q, err := gophercloud.BuildQueryString(&opts)
	if err != nil {
		return pagination.Pager{Err: err}
	}
	u := rootURL(c) + q.String()
	return pagination.NewPager(c, u, func(r pagination.PageResult) pagination.Page {
		return PoolPage{pagination.LinkedPageBase{PageResult: r}}
	})
}
type LBMethod string
type LBProtocol string
const (
	LBMethodRoundRobin       LBMethod = "ROUND_ROBIN"
	LBMethodLeastConnections LBMethod = "LEAST_CONNECTIONS"
	ProtocolTCP   LBProtocol = "TCP"
	ProtocolHTTP  LBProtocol = "HTTP"
	ProtocolHTTPS LBProtocol = "HTTPS"
)
type CreateOptsBuilder interface {
	ToLBPoolCreateMap() (map[string]interface{}, error)
}
type CreateOpts struct {
	Name string `json:"name" required:"true"`
	Protocol LBProtocol `json:"protocol" required:"true"`
	TenantID string `json:"tenant_id,omitempty"`
	SubnetID string `json:"subnet_id,omitempty"`
	LBMethod LBMethod `json:"lb_method" required:"true"`
	Provider string `json:"provider,omitempty"`
}