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

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