package client import ( "context" "net/url" "github.com/moby/moby/api/types/swarm" "github.com/moby/moby/api/types/volume" ) // VolumeUpdateOptions holds options for [Client.VolumeUpdate]. type VolumeUpdateOptions struct { Version swarm.Version // Spec is the ClusterVolumeSpec to update the volume to. Spec *volume.ClusterVolumeSpec `json:"Spec,omitempty"` } // VolumeUpdateResult holds the result of [Client.VolumeUpdate], type VolumeUpdateResult struct { // Add future fields here. } // VolumeUpdate updates a volume. This only works for Cluster Volumes, and // only some fields can be updated. func (cli *Client) VolumeUpdate(ctx context.Context, volumeID string, options VolumeUpdateOptions) (VolumeUpdateResult, error) { volumeID, err := trimID("volume", volumeID) if err != nil { return VolumeUpdateResult{}, err } query := url.Values{} query.Set("version", options.Version.String()) resp, err := cli.put(ctx, "/volumes/"+volumeID, query, options, nil) defer ensureReaderClosed(resp) if err != nil { return VolumeUpdateResult{}, err } return VolumeUpdateResult{}, nil }