// Code generated by interfacer; DO NOT EDIT

package hcapi2

import (
	"context"
	"github.com/hetznercloud/hcloud-go/v2/hcloud"
)

// VolumeClientBase is an interface generated for "github.com/hetznercloud/hcloud-go/v2/hcloud.VolumeClient".
type VolumeClientBase interface {
	All(context.Context) ([]*hcloud.Volume, error)
	AllWithOpts(context.Context, hcloud.VolumeListOpts) ([]*hcloud.Volume, error)
	Attach(context.Context, *hcloud.Volume, *hcloud.Server) (*hcloud.Action, *hcloud.Response, error)
	AttachWithOpts(context.Context, *hcloud.Volume, hcloud.VolumeAttachOpts) (*hcloud.Action, *hcloud.Response, error)
	ChangeProtection(context.Context, *hcloud.Volume, hcloud.VolumeChangeProtectionOpts) (*hcloud.Action, *hcloud.Response, error)
	Create(context.Context, hcloud.VolumeCreateOpts) (hcloud.VolumeCreateResult, *hcloud.Response, error)
	Delete(context.Context, *hcloud.Volume) (*hcloud.Response, error)
	Detach(context.Context, *hcloud.Volume) (*hcloud.Action, *hcloud.Response, error)
	Get(context.Context, string) (*hcloud.Volume, *hcloud.Response, error)
	GetByID(context.Context, int64) (*hcloud.Volume, *hcloud.Response, error)
	GetByName(context.Context, string) (*hcloud.Volume, *hcloud.Response, error)
	List(context.Context, hcloud.VolumeListOpts) ([]*hcloud.Volume, *hcloud.Response, error)
	Resize(context.Context, *hcloud.Volume, int) (*hcloud.Action, *hcloud.Response, error)
	Update(context.Context, *hcloud.Volume, hcloud.VolumeUpdateOpts) (*hcloud.Volume, *hcloud.Response, error)
}
