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 }