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

     1  package volumes
     2  
     3  import (
     4  	"github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     6  )
     7  
     8  type UpdateOpts struct {
     9  	Name        string            `json:"display_name,omitempty"`
    10  	Description string            `json:"display_description,omitempty"`
    11  	Metadata    map[string]string `json:"metadata,omitempty"`
    12  }
    13  
    14  func Update(client *golangsdk.ServiceClient, id string, opts UpdateOpts) (*Volume, error) {
    15  	b, err := golangsdk.BuildRequestBody(opts, "volume")
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	raw, err := client.Put(client.ServiceURL("volumes", id), b, nil, &golangsdk.RequestOpts{
    21  		OkCodes: []int{200},
    22  	})
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  
    27  	var res Volume
    28  	err = extract.IntoStructPtr(raw.Body, &res, "volume")
    29  	return &res, err
    30  }