github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/evs/v5/cloudvolumes/requests.go (about) 1 package cloudvolumes 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 ) 6 7 type QoSModifyOpts struct { 8 IopsAndThroughputOpts IopsAndThroughputOpts `json:"qos_modify" required:"true"` 9 } 10 11 type IopsAndThroughputOpts struct { 12 Iops int `json:"iops" required:"true"` 13 Throughput int `json:"throughput,omitempty"` 14 } 15 16 func (opts QoSModifyOpts) ToVolumeUpdateQoSMap() (map[string]interface{}, error) { 17 return golangsdk.BuildRequestBody(opts, "") 18 } 19 20 type UpdateQoSOptsBuilder interface { 21 ToVolumeUpdateQoSMap() (map[string]interface{}, error) 22 } 23 24 func ModifyQoS(client *golangsdk.ServiceClient, id string, opts UpdateQoSOptsBuilder) (r JobResult) { 25 b, err := opts.ToVolumeUpdateQoSMap() 26 if err != nil { 27 r.Err = err 28 return 29 } 30 _, r.Err = client.Put(qoSURL(client, id), b, &r.Body, nil) 31 return 32 }