github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dns/v2/nameservers/requests.go (about) 1 package nameservers 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 ) 6 7 type ListOpts struct { 8 // Type of the name server. Value options: 9 // public: indicates a public name server. 10 // private: indicates a private name server. 11 // It is left blank by default. 12 Type string `q:"type"` 13 // Region ID. When you query a public name server, leave this parameter blank. 14 // Exact matching will work. It is left blank by default. 15 Region string `q:"region"` 16 } 17 18 // ToNameServersQuery formats a ListOpts into a query string. 19 func (opts ListOpts) ToNameServersQuery() (string, error) { 20 q, err := golangsdk.BuildQueryString(opts) 21 return q.String(), err 22 } 23 24 // List implements a nameserver List request. 25 func List(client *golangsdk.ServiceClient, opts *ListOpts) ([]NameServer, error) { 26 url := baseURL(client) 27 if opts != nil { 28 query, err := opts.ToNameServersQuery() 29 if err != nil { 30 return nil, err 31 } 32 url += query 33 } 34 35 var s struct { 36 NameServers []NameServer `json:"nameservers"` 37 } 38 _, err := client.Get(url, &s, nil) 39 return s.NameServers, err 40 }