github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dms/v2/products/requests.go (about) 1 package products 2 3 import ( 4 "fmt" 5 6 "github.com/chnsz/golangsdk" 7 ) 8 9 // Get products 10 // 11 // Deprecated: Please use the GetFlavor method to query product (new format) details of DMS kafka. 12 // The old format is '00300-30308-0--0', but the new that we recommanded is 'c6.2u4g.cluster'. 13 func Get(client *golangsdk.ServiceClient, engine string) (*GetResponse, error) { 14 if len(engine) == 0 { 15 return nil, fmt.Errorf("The parameter \"engine\" cannot be empty, it is required.") 16 } 17 url := getURL(client) 18 url = url + "?engine=" + engine 19 20 var rst golangsdk.Result 21 _, err := client.Get(url, &rst.Body, nil) 22 if err == nil { 23 var r GetResponse 24 err = rst.ExtractInto(&r) 25 return &r, err 26 } 27 return nil, err 28 } 29 30 type ListOpts struct { 31 // The product ID. 32 ProductId string `q:"product_id"` 33 } 34 35 // List is a method to query the list of product details using given parameters. 36 func List(c *golangsdk.ServiceClient, engineType string, opts ListOpts) (*ListResp, error) { 37 url := listURL(c, engineType) 38 query, err := golangsdk.BuildQueryString(opts) 39 if err != nil { 40 return nil, err 41 } 42 url += query.String() 43 44 var r ListResp 45 _, err = c.Get(url, &r, nil) 46 if err != nil { 47 return nil, err 48 } 49 return &r, nil 50 }