1package limits 2 3import ( 4 "github.com/gophercloud/gophercloud" 5) 6 7// GetOptsBuilder allows extensions to add additional parameters to the 8// Get request. 9type GetOptsBuilder interface { 10 ToLimitsQuery() (string, error) 11} 12 13// GetOpts enables retrieving limits by a specific tenant. 14type GetOpts struct { 15 // The tenant ID to retrieve limits for. 16 TenantID string `q:"tenant_id"` 17} 18 19// ToLimitsQuery formats a GetOpts into a query string. 20func (opts GetOpts) ToLimitsQuery() (string, error) { 21 q, err := gophercloud.BuildQueryString(opts) 22 return q.String(), err 23} 24 25// Get returns the limits about the currently scoped tenant. 26func Get(client *gophercloud.ServiceClient, opts GetOptsBuilder) (r GetResult) { 27 url := getURL(client) 28 if opts != nil { 29 query, err := opts.ToLimitsQuery() 30 if err != nil { 31 r.Err = err 32 return 33 } 34 url += query 35 } 36 37 _, r.Err = client.Get(url, &r.Body, nil) 38 return 39} 40