github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/evs/v1/snapshots/list.go (about)

     1  package snapshots
     2  
     3  import (
     4  	"github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     6  )
     7  
     8  type ListOpts struct {
     9  	Name     string `q:"display_name"`
    10  	Status   string `q:"status"`
    11  	VolumeID string `q:"volume_id"`
    12  }
    13  
    14  func List(client *golangsdk.ServiceClient, opts ListOpts) ([]Snapshot, error) {
    15  	url, err := golangsdk.NewURLBuilder().WithEndpoints("snapshots").WithQueryParams(&opts).Build()
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	raw, err := client.Get(client.ServiceURL(url.String()), nil, nil)
    21  	if err != nil {
    22  		return nil, err
    23  	}
    24  
    25  	var res []Snapshot
    26  	err = extract.IntoSlicePtr(raw.Body, &res, "snapshots")
    27  	return res, err
    28  }