// silence the protobuf compiler warning by setting the default

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.12.4
// source: internal/migration/migrate.proto

package migration

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type MigrationFSType int32

const (
	MigrationFSType_RSYNC           MigrationFSType = 0
	MigrationFSType_BTRFS           MigrationFSType = 1
	MigrationFSType_ZFS             MigrationFSType = 2
	MigrationFSType_RBD             MigrationFSType = 3
	MigrationFSType_BLOCK_AND_RSYNC MigrationFSType = 4
	MigrationFSType_LINSTOR         MigrationFSType = 5
)

// Enum value maps for MigrationFSType.
var (
	MigrationFSType_name = map[int32]string{
		0: "RSYNC",
		1: "BTRFS",
		2: "ZFS",
		3: "RBD",
		4: "BLOCK_AND_RSYNC",
		5: "LINSTOR",
	}
	MigrationFSType_value = map[string]int32{
		"RSYNC":           0,
		"BTRFS":           1,
		"ZFS":             2,
		"RBD":             3,
		"BLOCK_AND_RSYNC": 4,
		"LINSTOR":         5,
	}
)

func (x MigrationFSType) Enum() *MigrationFSType {
	p := new(MigrationFSType)
	*p = x
	return p
}

func (x MigrationFSType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (MigrationFSType) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_migration_migrate_proto_enumTypes[0].Descriptor()
}

func (MigrationFSType) Type() protoreflect.EnumType {
	return &file_internal_migration_migrate_proto_enumTypes[0]
}

func (x MigrationFSType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *MigrationFSType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = MigrationFSType(num)
	return nil
}

// Deprecated: Use MigrationFSType.Descriptor instead.
func (MigrationFSType) EnumDescriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{0}
}

type CRIUType int32

const (
	CRIUType_CRIU_RSYNC CRIUType = 0
	CRIUType_PHAUL      CRIUType = 1
	CRIUType_NONE       CRIUType = 2
	CRIUType_VM_QEMU    CRIUType = 3
)

// Enum value maps for CRIUType.
var (
	CRIUType_name = map[int32]string{
		0: "CRIU_RSYNC",
		1: "PHAUL",
		2: "NONE",
		3: "VM_QEMU",
	}
	CRIUType_value = map[string]int32{
		"CRIU_RSYNC": 0,
		"PHAUL":      1,
		"NONE":       2,
		"VM_QEMU":    3,
	}
)

func (x CRIUType) Enum() *CRIUType {
	p := new(CRIUType)
	*p = x
	return p
}

func (x CRIUType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CRIUType) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_migration_migrate_proto_enumTypes[1].Descriptor()
}

func (CRIUType) Type() protoreflect.EnumType {
	return &file_internal_migration_migrate_proto_enumTypes[1]
}

func (x CRIUType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *CRIUType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = CRIUType(num)
	return nil
}

// Deprecated: Use CRIUType.Descriptor instead.
func (CRIUType) EnumDescriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{1}
}

type IDMapType struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Isuid         *bool                  `protobuf:"varint,1,req,name=isuid" json:"isuid,omitempty"`
	Isgid         *bool                  `protobuf:"varint,2,req,name=isgid" json:"isgid,omitempty"`
	Hostid        *int32                 `protobuf:"varint,3,req,name=hostid" json:"hostid,omitempty"`
	Nsid          *int32                 `protobuf:"varint,4,req,name=nsid" json:"nsid,omitempty"`
	Maprange      *int32                 `protobuf:"varint,5,req,name=maprange" json:"maprange,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IDMapType) Reset() {
	*x = IDMapType{}
	mi := &file_internal_migration_migrate_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDMapType) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IDMapType) ProtoMessage() {}

func (x *IDMapType) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IDMapType.ProtoReflect.Descriptor instead.
func (*IDMapType) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{0}
}

func (x *IDMapType) GetIsuid() bool {
	if x != nil && x.Isuid != nil {
		return *x.Isuid
	}
	return false
}

func (x *IDMapType) GetIsgid() bool {
	if x != nil && x.Isgid != nil {
		return *x.Isgid
	}
	return false
}

func (x *IDMapType) GetHostid() int32 {
	if x != nil && x.Hostid != nil {
		return *x.Hostid
	}
	return 0
}

func (x *IDMapType) GetNsid() int32 {
	if x != nil && x.Nsid != nil {
		return *x.Nsid
	}
	return 0
}

func (x *IDMapType) GetMaprange() int32 {
	if x != nil && x.Maprange != nil {
		return *x.Maprange
	}
	return 0
}

type Config struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           *string                `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
	Value         *string                `protobuf:"bytes,2,req,name=value" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Config) Reset() {
	*x = Config{}
	mi := &file_internal_migration_migrate_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Config) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Config) ProtoMessage() {}

func (x *Config) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{1}
}

func (x *Config) GetKey() string {
	if x != nil && x.Key != nil {
		return *x.Key
	}
	return ""
}

func (x *Config) GetValue() string {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return ""
}

type Device struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          *string                `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	Config        []*Config              `protobuf:"bytes,2,rep,name=config" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Device) Reset() {
	*x = Device{}
	mi := &file_internal_migration_migrate_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Device) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Device) ProtoMessage() {}

func (x *Device) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Device.ProtoReflect.Descriptor instead.
func (*Device) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{2}
}

func (x *Device) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *Device) GetConfig() []*Config {
	if x != nil {
		return x.Config
	}
	return nil
}

type Snapshot struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          *string                `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	LocalConfig   []*Config              `protobuf:"bytes,2,rep,name=localConfig" json:"localConfig,omitempty"`
	Profiles      []string               `protobuf:"bytes,3,rep,name=profiles" json:"profiles,omitempty"`
	Ephemeral     *bool                  `protobuf:"varint,4,req,name=ephemeral" json:"ephemeral,omitempty"`
	LocalDevices  []*Device              `protobuf:"bytes,5,rep,name=localDevices" json:"localDevices,omitempty"`
	Architecture  *int32                 `protobuf:"varint,6,req,name=architecture" json:"architecture,omitempty"`
	Stateful      *bool                  `protobuf:"varint,7,req,name=stateful" json:"stateful,omitempty"`
	CreationDate  *int64                 `protobuf:"varint,8,opt,name=creation_date,json=creationDate" json:"creation_date,omitempty"`
	LastUsedDate  *int64                 `protobuf:"varint,9,opt,name=last_used_date,json=lastUsedDate" json:"last_used_date,omitempty"`
	ExpiryDate    *int64                 `protobuf:"varint,10,opt,name=expiry_date,json=expiryDate" json:"expiry_date,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Snapshot) Reset() {
	*x = Snapshot{}
	mi := &file_internal_migration_migrate_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Snapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Snapshot) ProtoMessage() {}

func (x *Snapshot) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Snapshot.ProtoReflect.Descriptor instead.
func (*Snapshot) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{3}
}

func (x *Snapshot) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *Snapshot) GetLocalConfig() []*Config {
	if x != nil {
		return x.LocalConfig
	}
	return nil
}

func (x *Snapshot) GetProfiles() []string {
	if x != nil {
		return x.Profiles
	}
	return nil
}

func (x *Snapshot) GetEphemeral() bool {
	if x != nil && x.Ephemeral != nil {
		return *x.Ephemeral
	}
	return false
}

func (x *Snapshot) GetLocalDevices() []*Device {
	if x != nil {
		return x.LocalDevices
	}
	return nil
}

func (x *Snapshot) GetArchitecture() int32 {
	if x != nil && x.Architecture != nil {
		return *x.Architecture
	}
	return 0
}

func (x *Snapshot) GetStateful() bool {
	if x != nil && x.Stateful != nil {
		return *x.Stateful
	}
	return false
}

func (x *Snapshot) GetCreationDate() int64 {
	if x != nil && x.CreationDate != nil {
		return *x.CreationDate
	}
	return 0
}

func (x *Snapshot) GetLastUsedDate() int64 {
	if x != nil && x.LastUsedDate != nil {
		return *x.LastUsedDate
	}
	return 0
}

func (x *Snapshot) GetExpiryDate() int64 {
	if x != nil && x.ExpiryDate != nil {
		return *x.ExpiryDate
	}
	return 0
}

type RsyncFeatures struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Xattrs        *bool                  `protobuf:"varint,1,opt,name=xattrs" json:"xattrs,omitempty"`
	Delete        *bool                  `protobuf:"varint,2,opt,name=delete" json:"delete,omitempty"`
	Compress      *bool                  `protobuf:"varint,3,opt,name=compress" json:"compress,omitempty"`
	Bidirectional *bool                  `protobuf:"varint,4,opt,name=bidirectional" json:"bidirectional,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RsyncFeatures) Reset() {
	*x = RsyncFeatures{}
	mi := &file_internal_migration_migrate_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RsyncFeatures) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RsyncFeatures) ProtoMessage() {}

func (x *RsyncFeatures) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RsyncFeatures.ProtoReflect.Descriptor instead.
func (*RsyncFeatures) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{4}
}

func (x *RsyncFeatures) GetXattrs() bool {
	if x != nil && x.Xattrs != nil {
		return *x.Xattrs
	}
	return false
}

func (x *RsyncFeatures) GetDelete() bool {
	if x != nil && x.Delete != nil {
		return *x.Delete
	}
	return false
}

func (x *RsyncFeatures) GetCompress() bool {
	if x != nil && x.Compress != nil {
		return *x.Compress
	}
	return false
}

func (x *RsyncFeatures) GetBidirectional() bool {
	if x != nil && x.Bidirectional != nil {
		return *x.Bidirectional
	}
	return false
}

type ZfsFeatures struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Compress        *bool                  `protobuf:"varint,1,opt,name=compress" json:"compress,omitempty"`
	MigrationHeader *bool                  `protobuf:"varint,2,opt,name=migration_header,json=migrationHeader" json:"migration_header,omitempty"`
	HeaderZvols     *bool                  `protobuf:"varint,3,opt,name=header_zvols,json=headerZvols" json:"header_zvols,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *ZfsFeatures) Reset() {
	*x = ZfsFeatures{}
	mi := &file_internal_migration_migrate_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ZfsFeatures) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ZfsFeatures) ProtoMessage() {}

func (x *ZfsFeatures) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ZfsFeatures.ProtoReflect.Descriptor instead.
func (*ZfsFeatures) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{5}
}

func (x *ZfsFeatures) GetCompress() bool {
	if x != nil && x.Compress != nil {
		return *x.Compress
	}
	return false
}

func (x *ZfsFeatures) GetMigrationHeader() bool {
	if x != nil && x.MigrationHeader != nil {
		return *x.MigrationHeader
	}
	return false
}

func (x *ZfsFeatures) GetHeaderZvols() bool {
	if x != nil && x.HeaderZvols != nil {
		return *x.HeaderZvols
	}
	return false
}

type BtrfsFeatures struct {
	state                protoimpl.MessageState `protogen:"open.v1"`
	MigrationHeader      *bool                  `protobuf:"varint,1,opt,name=migration_header,json=migrationHeader" json:"migration_header,omitempty"`
	HeaderSubvolumes     *bool                  `protobuf:"varint,2,opt,name=header_subvolumes,json=headerSubvolumes" json:"header_subvolumes,omitempty"`
	HeaderSubvolumeUuids *bool                  `protobuf:"varint,3,opt,name=header_subvolume_uuids,json=headerSubvolumeUuids" json:"header_subvolume_uuids,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *BtrfsFeatures) Reset() {
	*x = BtrfsFeatures{}
	mi := &file_internal_migration_migrate_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BtrfsFeatures) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BtrfsFeatures) ProtoMessage() {}

func (x *BtrfsFeatures) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BtrfsFeatures.ProtoReflect.Descriptor instead.
func (*BtrfsFeatures) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{6}
}

func (x *BtrfsFeatures) GetMigrationHeader() bool {
	if x != nil && x.MigrationHeader != nil {
		return *x.MigrationHeader
	}
	return false
}

func (x *BtrfsFeatures) GetHeaderSubvolumes() bool {
	if x != nil && x.HeaderSubvolumes != nil {
		return *x.HeaderSubvolumes
	}
	return false
}

func (x *BtrfsFeatures) GetHeaderSubvolumeUuids() bool {
	if x != nil && x.HeaderSubvolumeUuids != nil {
		return *x.HeaderSubvolumeUuids
	}
	return false
}

type DependentVolume struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          *string                `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	Pool          *string                `protobuf:"bytes,2,req,name=pool" json:"pool,omitempty"`
	ContentType   *string                `protobuf:"bytes,3,req,name=contentType" json:"contentType,omitempty"`
	Fs            *MigrationFSType       `protobuf:"varint,4,req,name=fs,enum=migration.MigrationFSType" json:"fs,omitempty"`
	RsyncFeatures *RsyncFeatures         `protobuf:"bytes,5,opt,name=rsyncFeatures" json:"rsyncFeatures,omitempty"`
	ZfsFeatures   *ZfsFeatures           `protobuf:"bytes,6,opt,name=zfsFeatures" json:"zfsFeatures,omitempty"`
	BtrfsFeatures *BtrfsFeatures         `protobuf:"bytes,7,opt,name=btrfsFeatures" json:"btrfsFeatures,omitempty"`
	VolumeSize    *int64                 `protobuf:"varint,8,opt,name=volumeSize" json:"volumeSize,omitempty"`
	Snapshots     []*Snapshot            `protobuf:"bytes,9,rep,name=snapshots" json:"snapshots,omitempty"`
	DeviceName    *string                `protobuf:"bytes,10,opt,name=deviceName" json:"deviceName,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DependentVolume) Reset() {
	*x = DependentVolume{}
	mi := &file_internal_migration_migrate_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DependentVolume) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DependentVolume) ProtoMessage() {}

func (x *DependentVolume) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DependentVolume.ProtoReflect.Descriptor instead.
func (*DependentVolume) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{7}
}

func (x *DependentVolume) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *DependentVolume) GetPool() string {
	if x != nil && x.Pool != nil {
		return *x.Pool
	}
	return ""
}

func (x *DependentVolume) GetContentType() string {
	if x != nil && x.ContentType != nil {
		return *x.ContentType
	}
	return ""
}

func (x *DependentVolume) GetFs() MigrationFSType {
	if x != nil && x.Fs != nil {
		return *x.Fs
	}
	return MigrationFSType_RSYNC
}

func (x *DependentVolume) GetRsyncFeatures() *RsyncFeatures {
	if x != nil {
		return x.RsyncFeatures
	}
	return nil
}

func (x *DependentVolume) GetZfsFeatures() *ZfsFeatures {
	if x != nil {
		return x.ZfsFeatures
	}
	return nil
}

func (x *DependentVolume) GetBtrfsFeatures() *BtrfsFeatures {
	if x != nil {
		return x.BtrfsFeatures
	}
	return nil
}

func (x *DependentVolume) GetVolumeSize() int64 {
	if x != nil && x.VolumeSize != nil {
		return *x.VolumeSize
	}
	return 0
}

func (x *DependentVolume) GetSnapshots() []*Snapshot {
	if x != nil {
		return x.Snapshots
	}
	return nil
}

func (x *DependentVolume) GetDeviceName() string {
	if x != nil && x.DeviceName != nil {
		return *x.DeviceName
	}
	return ""
}

type MigrationHeader struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Fs                 *MigrationFSType       `protobuf:"varint,1,req,name=fs,enum=migration.MigrationFSType" json:"fs,omitempty"`
	Criu               *CRIUType              `protobuf:"varint,2,opt,name=criu,enum=migration.CRIUType" json:"criu,omitempty"`
	Idmap              []*IDMapType           `protobuf:"bytes,3,rep,name=idmap" json:"idmap,omitempty"`
	SnapshotNames      []string               `protobuf:"bytes,4,rep,name=snapshotNames" json:"snapshotNames,omitempty"`
	Snapshots          []*Snapshot            `protobuf:"bytes,5,rep,name=snapshots" json:"snapshots,omitempty"`
	Predump            *bool                  `protobuf:"varint,7,opt,name=predump" json:"predump,omitempty"`
	RsyncFeatures      *RsyncFeatures         `protobuf:"bytes,8,opt,name=rsyncFeatures" json:"rsyncFeatures,omitempty"`
	Refresh            *bool                  `protobuf:"varint,9,opt,name=refresh" json:"refresh,omitempty"`
	ZfsFeatures        *ZfsFeatures           `protobuf:"bytes,10,opt,name=zfsFeatures" json:"zfsFeatures,omitempty"`
	VolumeSize         *int64                 `protobuf:"varint,11,opt,name=volumeSize" json:"volumeSize,omitempty"`
	BtrfsFeatures      *BtrfsFeatures         `protobuf:"bytes,12,opt,name=btrfsFeatures" json:"btrfsFeatures,omitempty"`
	IndexHeaderVersion *uint32                `protobuf:"varint,13,opt,name=indexHeaderVersion" json:"indexHeaderVersion,omitempty"`
	DependentVolumes   []*DependentVolume     `protobuf:"bytes,14,rep,name=dependentVolumes" json:"dependentVolumes,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *MigrationHeader) Reset() {
	*x = MigrationHeader{}
	mi := &file_internal_migration_migrate_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MigrationHeader) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MigrationHeader) ProtoMessage() {}

func (x *MigrationHeader) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MigrationHeader.ProtoReflect.Descriptor instead.
func (*MigrationHeader) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{8}
}

func (x *MigrationHeader) GetFs() MigrationFSType {
	if x != nil && x.Fs != nil {
		return *x.Fs
	}
	return MigrationFSType_RSYNC
}

func (x *MigrationHeader) GetCriu() CRIUType {
	if x != nil && x.Criu != nil {
		return *x.Criu
	}
	return CRIUType_CRIU_RSYNC
}

func (x *MigrationHeader) GetIdmap() []*IDMapType {
	if x != nil {
		return x.Idmap
	}
	return nil
}

func (x *MigrationHeader) GetSnapshotNames() []string {
	if x != nil {
		return x.SnapshotNames
	}
	return nil
}

func (x *MigrationHeader) GetSnapshots() []*Snapshot {
	if x != nil {
		return x.Snapshots
	}
	return nil
}

func (x *MigrationHeader) GetPredump() bool {
	if x != nil && x.Predump != nil {
		return *x.Predump
	}
	return false
}

func (x *MigrationHeader) GetRsyncFeatures() *RsyncFeatures {
	if x != nil {
		return x.RsyncFeatures
	}
	return nil
}

func (x *MigrationHeader) GetRefresh() bool {
	if x != nil && x.Refresh != nil {
		return *x.Refresh
	}
	return false
}

func (x *MigrationHeader) GetZfsFeatures() *ZfsFeatures {
	if x != nil {
		return x.ZfsFeatures
	}
	return nil
}

func (x *MigrationHeader) GetVolumeSize() int64 {
	if x != nil && x.VolumeSize != nil {
		return *x.VolumeSize
	}
	return 0
}

func (x *MigrationHeader) GetBtrfsFeatures() *BtrfsFeatures {
	if x != nil {
		return x.BtrfsFeatures
	}
	return nil
}

func (x *MigrationHeader) GetIndexHeaderVersion() uint32 {
	if x != nil && x.IndexHeaderVersion != nil {
		return *x.IndexHeaderVersion
	}
	return 0
}

func (x *MigrationHeader) GetDependentVolumes() []*DependentVolume {
	if x != nil {
		return x.DependentVolumes
	}
	return nil
}

type MigrationControl struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Success *bool                  `protobuf:"varint,1,req,name=success" json:"success,omitempty"`
	// optional failure message if sending a failure
	Message       *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MigrationControl) Reset() {
	*x = MigrationControl{}
	mi := &file_internal_migration_migrate_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MigrationControl) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MigrationControl) ProtoMessage() {}

func (x *MigrationControl) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MigrationControl.ProtoReflect.Descriptor instead.
func (*MigrationControl) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{9}
}

func (x *MigrationControl) GetSuccess() bool {
	if x != nil && x.Success != nil {
		return *x.Success
	}
	return false
}

func (x *MigrationControl) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

type MigrationSync struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	FinalPreDump  *bool                  `protobuf:"varint,1,req,name=finalPreDump" json:"finalPreDump,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MigrationSync) Reset() {
	*x = MigrationSync{}
	mi := &file_internal_migration_migrate_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MigrationSync) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MigrationSync) ProtoMessage() {}

func (x *MigrationSync) ProtoReflect() protoreflect.Message {
	mi := &file_internal_migration_migrate_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MigrationSync.ProtoReflect.Descriptor instead.
func (*MigrationSync) Descriptor() ([]byte, []int) {
	return file_internal_migration_migrate_proto_rawDescGZIP(), []int{10}
}

func (x *MigrationSync) GetFinalPreDump() bool {
	if x != nil && x.FinalPreDump != nil {
		return *x.FinalPreDump
	}
	return false
}

var File_internal_migration_migrate_proto protoreflect.FileDescriptor

const file_internal_migration_migrate_proto_rawDesc = "" +
	"\n" +
	" internal/migration/migrate.proto\x12\tmigration\"\x7f\n" +
	"\tIDMapType\x12\x14\n" +
	"\x05isuid\x18\x01 \x02(\bR\x05isuid\x12\x14\n" +
	"\x05isgid\x18\x02 \x02(\bR\x05isgid\x12\x16\n" +
	"\x06hostid\x18\x03 \x02(\x05R\x06hostid\x12\x12\n" +
	"\x04nsid\x18\x04 \x02(\x05R\x04nsid\x12\x1a\n" +
	"\bmaprange\x18\x05 \x02(\x05R\bmaprange\"0\n" +
	"\x06Config\x12\x10\n" +
	"\x03key\x18\x01 \x02(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x02(\tR\x05value\"G\n" +
	"\x06Device\x12\x12\n" +
	"\x04name\x18\x01 \x02(\tR\x04name\x12)\n" +
	"\x06config\x18\x02 \x03(\v2\x11.migration.ConfigR\x06config\"\xf0\x02\n" +
	"\bSnapshot\x12\x12\n" +
	"\x04name\x18\x01 \x02(\tR\x04name\x123\n" +
	"\vlocalConfig\x18\x02 \x03(\v2\x11.migration.ConfigR\vlocalConfig\x12\x1a\n" +
	"\bprofiles\x18\x03 \x03(\tR\bprofiles\x12\x1c\n" +
	"\tephemeral\x18\x04 \x02(\bR\tephemeral\x125\n" +
	"\flocalDevices\x18\x05 \x03(\v2\x11.migration.DeviceR\flocalDevices\x12\"\n" +
	"\farchitecture\x18\x06 \x02(\x05R\farchitecture\x12\x1a\n" +
	"\bstateful\x18\a \x02(\bR\bstateful\x12#\n" +
	"\rcreation_date\x18\b \x01(\x03R\fcreationDate\x12$\n" +
	"\x0elast_used_date\x18\t \x01(\x03R\flastUsedDate\x12\x1f\n" +
	"\vexpiry_date\x18\n" +
	" \x01(\x03R\n" +
	"expiryDate\"\x81\x01\n" +
	"\rrsyncFeatures\x12\x16\n" +
	"\x06xattrs\x18\x01 \x01(\bR\x06xattrs\x12\x16\n" +
	"\x06delete\x18\x02 \x01(\bR\x06delete\x12\x1a\n" +
	"\bcompress\x18\x03 \x01(\bR\bcompress\x12$\n" +
	"\rbidirectional\x18\x04 \x01(\bR\rbidirectional\"w\n" +
	"\vzfsFeatures\x12\x1a\n" +
	"\bcompress\x18\x01 \x01(\bR\bcompress\x12)\n" +
	"\x10migration_header\x18\x02 \x01(\bR\x0fmigrationHeader\x12!\n" +
	"\fheader_zvols\x18\x03 \x01(\bR\vheaderZvols\"\x9d\x01\n" +
	"\rbtrfsFeatures\x12)\n" +
	"\x10migration_header\x18\x01 \x01(\bR\x0fmigrationHeader\x12+\n" +
	"\x11header_subvolumes\x18\x02 \x01(\bR\x10headerSubvolumes\x124\n" +
	"\x16header_subvolume_uuids\x18\x03 \x01(\bR\x14headerSubvolumeUuids\"\xb4\x03\n" +
	"\x0fDependentVolume\x12\x12\n" +
	"\x04name\x18\x01 \x02(\tR\x04name\x12\x12\n" +
	"\x04pool\x18\x02 \x02(\tR\x04pool\x12 \n" +
	"\vcontentType\x18\x03 \x02(\tR\vcontentType\x12*\n" +
	"\x02fs\x18\x04 \x02(\x0e2\x1a.migration.MigrationFSTypeR\x02fs\x12>\n" +
	"\rrsyncFeatures\x18\x05 \x01(\v2\x18.migration.rsyncFeaturesR\rrsyncFeatures\x128\n" +
	"\vzfsFeatures\x18\x06 \x01(\v2\x16.migration.zfsFeaturesR\vzfsFeatures\x12>\n" +
	"\rbtrfsFeatures\x18\a \x01(\v2\x18.migration.btrfsFeaturesR\rbtrfsFeatures\x12\x1e\n" +
	"\n" +
	"volumeSize\x18\b \x01(\x03R\n" +
	"volumeSize\x121\n" +
	"\tsnapshots\x18\t \x03(\v2\x13.migration.SnapshotR\tsnapshots\x12\x1e\n" +
	"\n" +
	"deviceName\x18\n" +
	" \x01(\tR\n" +
	"deviceName\"\xf1\x04\n" +
	"\x0fMigrationHeader\x12*\n" +
	"\x02fs\x18\x01 \x02(\x0e2\x1a.migration.MigrationFSTypeR\x02fs\x12'\n" +
	"\x04criu\x18\x02 \x01(\x0e2\x13.migration.CRIUTypeR\x04criu\x12*\n" +
	"\x05idmap\x18\x03 \x03(\v2\x14.migration.IDMapTypeR\x05idmap\x12$\n" +
	"\rsnapshotNames\x18\x04 \x03(\tR\rsnapshotNames\x121\n" +
	"\tsnapshots\x18\x05 \x03(\v2\x13.migration.SnapshotR\tsnapshots\x12\x18\n" +
	"\apredump\x18\a \x01(\bR\apredump\x12>\n" +
	"\rrsyncFeatures\x18\b \x01(\v2\x18.migration.rsyncFeaturesR\rrsyncFeatures\x12\x18\n" +
	"\arefresh\x18\t \x01(\bR\arefresh\x128\n" +
	"\vzfsFeatures\x18\n" +
	" \x01(\v2\x16.migration.zfsFeaturesR\vzfsFeatures\x12\x1e\n" +
	"\n" +
	"volumeSize\x18\v \x01(\x03R\n" +
	"volumeSize\x12>\n" +
	"\rbtrfsFeatures\x18\f \x01(\v2\x18.migration.btrfsFeaturesR\rbtrfsFeatures\x12.\n" +
	"\x12indexHeaderVersion\x18\r \x01(\rR\x12indexHeaderVersion\x12F\n" +
	"\x10dependentVolumes\x18\x0e \x03(\v2\x1a.migration.DependentVolumeR\x10dependentVolumes\"F\n" +
	"\x10MigrationControl\x12\x18\n" +
	"\asuccess\x18\x01 \x02(\bR\asuccess\x12\x18\n" +
	"\amessage\x18\x02 \x01(\tR\amessage\"3\n" +
	"\rMigrationSync\x12\"\n" +
	"\ffinalPreDump\x18\x01 \x02(\bR\ffinalPreDump*[\n" +
	"\x0fMigrationFSType\x12\t\n" +
	"\x05RSYNC\x10\x00\x12\t\n" +
	"\x05BTRFS\x10\x01\x12\a\n" +
	"\x03ZFS\x10\x02\x12\a\n" +
	"\x03RBD\x10\x03\x12\x13\n" +
	"\x0fBLOCK_AND_RSYNC\x10\x04\x12\v\n" +
	"\aLINSTOR\x10\x05*<\n" +
	"\bCRIUType\x12\x0e\n" +
	"\n" +
	"CRIU_RSYNC\x10\x00\x12\t\n" +
	"\x05PHAUL\x10\x01\x12\b\n" +
	"\x04NONE\x10\x02\x12\v\n" +
	"\aVM_QEMU\x10\x03B\x14Z\x12internal/migration"

var (
	file_internal_migration_migrate_proto_rawDescOnce sync.Once
	file_internal_migration_migrate_proto_rawDescData []byte
)

func file_internal_migration_migrate_proto_rawDescGZIP() []byte {
	file_internal_migration_migrate_proto_rawDescOnce.Do(func() {
		file_internal_migration_migrate_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_internal_migration_migrate_proto_rawDesc), len(file_internal_migration_migrate_proto_rawDesc)))
	})
	return file_internal_migration_migrate_proto_rawDescData
}

var file_internal_migration_migrate_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_internal_migration_migrate_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_internal_migration_migrate_proto_goTypes = []any{
	(MigrationFSType)(0),     // 0: migration.MigrationFSType
	(CRIUType)(0),            // 1: migration.CRIUType
	(*IDMapType)(nil),        // 2: migration.IDMapType
	(*Config)(nil),           // 3: migration.Config
	(*Device)(nil),           // 4: migration.Device
	(*Snapshot)(nil),         // 5: migration.Snapshot
	(*RsyncFeatures)(nil),    // 6: migration.rsyncFeatures
	(*ZfsFeatures)(nil),      // 7: migration.zfsFeatures
	(*BtrfsFeatures)(nil),    // 8: migration.btrfsFeatures
	(*DependentVolume)(nil),  // 9: migration.DependentVolume
	(*MigrationHeader)(nil),  // 10: migration.MigrationHeader
	(*MigrationControl)(nil), // 11: migration.MigrationControl
	(*MigrationSync)(nil),    // 12: migration.MigrationSync
}
var file_internal_migration_migrate_proto_depIdxs = []int32{
	3,  // 0: migration.Device.config:type_name -> migration.Config
	3,  // 1: migration.Snapshot.localConfig:type_name -> migration.Config
	4,  // 2: migration.Snapshot.localDevices:type_name -> migration.Device
	0,  // 3: migration.DependentVolume.fs:type_name -> migration.MigrationFSType
	6,  // 4: migration.DependentVolume.rsyncFeatures:type_name -> migration.rsyncFeatures
	7,  // 5: migration.DependentVolume.zfsFeatures:type_name -> migration.zfsFeatures
	8,  // 6: migration.DependentVolume.btrfsFeatures:type_name -> migration.btrfsFeatures
	5,  // 7: migration.DependentVolume.snapshots:type_name -> migration.Snapshot
	0,  // 8: migration.MigrationHeader.fs:type_name -> migration.MigrationFSType
	1,  // 9: migration.MigrationHeader.criu:type_name -> migration.CRIUType
	2,  // 10: migration.MigrationHeader.idmap:type_name -> migration.IDMapType
	5,  // 11: migration.MigrationHeader.snapshots:type_name -> migration.Snapshot
	6,  // 12: migration.MigrationHeader.rsyncFeatures:type_name -> migration.rsyncFeatures
	7,  // 13: migration.MigrationHeader.zfsFeatures:type_name -> migration.zfsFeatures
	8,  // 14: migration.MigrationHeader.btrfsFeatures:type_name -> migration.btrfsFeatures
	9,  // 15: migration.MigrationHeader.dependentVolumes:type_name -> migration.DependentVolume
	16, // [16:16] is the sub-list for method output_type
	16, // [16:16] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_internal_migration_migrate_proto_init() }
func file_internal_migration_migrate_proto_init() {
	if File_internal_migration_migrate_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_internal_migration_migrate_proto_rawDesc), len(file_internal_migration_migrate_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_internal_migration_migrate_proto_goTypes,
		DependencyIndexes: file_internal_migration_migrate_proto_depIdxs,
		EnumInfos:         file_internal_migration_migrate_proto_enumTypes,
		MessageInfos:      file_internal_migration_migrate_proto_msgTypes,
	}.Build()
	File_internal_migration_migrate_proto = out.File
	file_internal_migration_migrate_proto_goTypes = nil
	file_internal_migration_migrate_proto_depIdxs = nil
}
