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  }