// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.12
// 	protoc        v5.26.0
// source: github.com/Microsoft/hcsshim/internal/controller/vm/save/payload.proto

package save

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	anypb "google.golang.org/protobuf/types/known/anypb"
	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)
)

// Payload is the migration payload owned by the VM controller. It is the
// top-level message wrapped in an [anypb.Any] when handed off between source
// and destination shims. The SCSI sub-controller is carried as an opaque
// [anypb.Any] so it fully owns its own schema and versioning.
type Payload struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// schema_version is bumped whenever a field's semantics change. The
	// destination MUST reject states whose version it does not recognise.
	SchemaVersion uint32 `protobuf:"varint,1,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
	// vm_id is the HCS identifier of the running VM.
	VmID string `protobuf:"bytes,2,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
	// sandbox_options is the original set of options the VM was built from,
	// so the destination can recreate an equivalent VM.
	SandboxOptions *SandboxOptions `protobuf:"bytes,3,opt,name=sandbox_options,json=sandboxOptions,proto3" json:"sandbox_options,omitempty"`
	// scsi is the SCSI sub-controller's [anypb.Any] envelope (attached
	// disks, mounts and outstanding reservations).
	Scsi *anypb.Any `protobuf:"bytes,4,opt,name=scsi,proto3" json:"scsi,omitempty"`
	// gcs_next_port is the next free vsock port in the GCS port allocator.
	// The destination seeds its allocator with this value so newly opened
	// IO channels do not collide with per-process ports restored elsewhere.
	GcsNextPort uint32 `protobuf:"varint,5,opt,name=gcs_next_port,json=gcsNextPort,proto3" json:"gcs_next_port,omitempty"`
	// compat_info is the opaque, host-emitted compatibility blob describing
	// the source VM's compatibility surface. The destination passes it back
	// to HCS when starting the target VM so the platform can verify that the
	// two VMs can interchange live-migration state.
	CompatInfo []byte `protobuf:"bytes,6,opt,name=compat_info,json=compatInfo,proto3" json:"compat_info,omitempty"`
	// hcs_document is the JSON-encoded HCS [hcsschema.ComputeSystem] document
	// that was used to create the source VM. The destination reuses this
	// document verbatim (with [hcsschema.VirtualMachine.MigrationOptions]
	// set) when creating the destination VM, ensuring the two VMs have
	// identical hardware topology required for live-migration compatibility.
	HcsDocument []byte `protobuf:"bytes,7,opt,name=hcs_document,json=hcsDocument,proto3" json:"hcs_document,omitempty"`
	// bridge_next_id is the source bridge's next request-id. The destination
	// seeds its bridge above this so newly issued ids cannot collide with
	// requests the guest still has outstanding from the source.
	BridgeNextID  int64 `protobuf:"varint,8,opt,name=bridge_next_id,json=bridgeNextId,proto3" json:"bridge_next_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Payload) ProtoMessage() {}

func (x *Payload) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_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 Payload.ProtoReflect.Descriptor instead.
func (*Payload) Descriptor() ([]byte, []int) {
	return file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescGZIP(), []int{0}
}

func (x *Payload) GetSchemaVersion() uint32 {
	if x != nil {
		return x.SchemaVersion
	}
	return 0
}

func (x *Payload) GetVmID() string {
	if x != nil {
		return x.VmID
	}
	return ""
}

func (x *Payload) GetSandboxOptions() *SandboxOptions {
	if x != nil {
		return x.SandboxOptions
	}
	return nil
}

func (x *Payload) GetScsi() *anypb.Any {
	if x != nil {
		return x.Scsi
	}
	return nil
}

func (x *Payload) GetGcsNextPort() uint32 {
	if x != nil {
		return x.GcsNextPort
	}
	return 0
}

func (x *Payload) GetCompatInfo() []byte {
	if x != nil {
		return x.CompatInfo
	}
	return nil
}

func (x *Payload) GetHcsDocument() []byte {
	if x != nil {
		return x.HcsDocument
	}
	return nil
}

func (x *Payload) GetBridgeNextID() int64 {
	if x != nil {
		return x.BridgeNextID
	}
	return 0
}

// SandboxOptions is the set of VM-creation options preserved verbatim so the
// destination can build an equivalent VM.
type SandboxOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// no_writable_file_shares disallows read/write file shares into the guest.
	NoWritableFileShares bool `protobuf:"varint,1,opt,name=no_writable_file_shares,json=noWritableFileShares,proto3" json:"no_writable_file_shares,omitempty"`
	// enable_scratch_encryption enables dm-crypt on the scratch disk.
	EnableScratchEncryption bool `protobuf:"varint,2,opt,name=enable_scratch_encryption,json=enableScratchEncryption,proto3" json:"enable_scratch_encryption,omitempty"`
	// policy_based_routing enables policy-based routing in the guest network
	// stack.
	PolicyBasedRouting bool `protobuf:"varint,3,opt,name=policy_based_routing,json=policyBasedRouting,proto3" json:"policy_based_routing,omitempty"`
	// architecture is the guest CPU architecture (e.g. "amd64", "arm64").
	Architecture string `protobuf:"bytes,4,opt,name=architecture,proto3" json:"architecture,omitempty"`
	// fully_physically_backed forces all guest memory to be backed by physical
	// memory (disables hot-add) and, as a side effect, disables VPMEM.
	FullyPhysicallyBacked bool `protobuf:"varint,5,opt,name=fully_physically_backed,json=fullyPhysicallyBacked,proto3" json:"fully_physically_backed,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*SandboxOptions) ProtoMessage() {}

func (x *SandboxOptions) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_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 SandboxOptions.ProtoReflect.Descriptor instead.
func (*SandboxOptions) Descriptor() ([]byte, []int) {
	return file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescGZIP(), []int{1}
}

func (x *SandboxOptions) GetNoWritableFileShares() bool {
	if x != nil {
		return x.NoWritableFileShares
	}
	return false
}

func (x *SandboxOptions) GetEnableScratchEncryption() bool {
	if x != nil {
		return x.EnableScratchEncryption
	}
	return false
}

func (x *SandboxOptions) GetPolicyBasedRouting() bool {
	if x != nil {
		return x.PolicyBasedRouting
	}
	return false
}

func (x *SandboxOptions) GetArchitecture() string {
	if x != nil {
		return x.Architecture
	}
	return ""
}

func (x *SandboxOptions) GetFullyPhysicallyBacked() bool {
	if x != nil {
		return x.FullyPhysicallyBacked
	}
	return false
}

var File_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto protoreflect.FileDescriptor

const file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDesc = "" +
	"\n" +
	"Fgithub.com/Microsoft/hcsshim/internal/controller/vm/save/payload.proto\x12\x1dhcsshim.controller.vm.save.v1\x1a\x19google/protobuf/any.proto\"\xd5\x02\n" +
	"\aPayload\x12%\n" +
	"\x0eschema_version\x18\x01 \x01(\rR\rschemaVersion\x12\x13\n" +
	"\x05vm_id\x18\x02 \x01(\tR\x04vmId\x12V\n" +
	"\x0fsandbox_options\x18\x03 \x01(\v2-.hcsshim.controller.vm.save.v1.SandboxOptionsR\x0esandboxOptions\x12(\n" +
	"\x04scsi\x18\x04 \x01(\v2\x14.google.protobuf.AnyR\x04scsi\x12\"\n" +
	"\rgcs_next_port\x18\x05 \x01(\rR\vgcsNextPort\x12\x1f\n" +
	"\vcompat_info\x18\x06 \x01(\fR\n" +
	"compatInfo\x12!\n" +
	"\fhcs_document\x18\a \x01(\fR\vhcsDocument\x12$\n" +
	"\x0ebridge_next_id\x18\b \x01(\x03R\fbridgeNextId\"\x91\x02\n" +
	"\x0eSandboxOptions\x125\n" +
	"\x17no_writable_file_shares\x18\x01 \x01(\bR\x14noWritableFileShares\x12:\n" +
	"\x19enable_scratch_encryption\x18\x02 \x01(\bR\x17enableScratchEncryption\x120\n" +
	"\x14policy_based_routing\x18\x03 \x01(\bR\x12policyBasedRouting\x12\"\n" +
	"\farchitecture\x18\x04 \x01(\tR\farchitecture\x126\n" +
	"\x17fully_physically_backed\x18\x05 \x01(\bR\x15fullyPhysicallyBackedB?Z=github.com/Microsoft/hcsshim/internal/controller/vm/save;saveb\x06proto3"

var (
	file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescOnce sync.Once
	file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescData []byte
)

func file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescGZIP() []byte {
	file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescOnce.Do(func() {
		file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDesc), len(file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDesc)))
	})
	return file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDescData
}

var file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_goTypes = []any{
	(*Payload)(nil),        // 0: hcsshim.controller.vm.save.v1.Payload
	(*SandboxOptions)(nil), // 1: hcsshim.controller.vm.save.v1.SandboxOptions
	(*anypb.Any)(nil),      // 2: google.protobuf.Any
}
var file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_depIdxs = []int32{
	1, // 0: hcsshim.controller.vm.save.v1.Payload.sandbox_options:type_name -> hcsshim.controller.vm.save.v1.SandboxOptions
	2, // 1: hcsshim.controller.vm.save.v1.Payload.scsi:type_name -> google.protobuf.Any
	2, // [2:2] is the sub-list for method output_type
	2, // [2:2] is the sub-list for method input_type
	2, // [2:2] is the sub-list for extension type_name
	2, // [2:2] is the sub-list for extension extendee
	0, // [0:2] is the sub-list for field type_name
}

func init() { file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_init() }
func file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_init() {
	if File_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDesc), len(file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_goTypes,
		DependencyIndexes: file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_depIdxs,
		MessageInfos:      file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_msgTypes,
	}.Build()
	File_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto = out.File
	file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_goTypes = nil
	file_github_com_Microsoft_hcsshim_internal_controller_vm_save_payload_proto_depIdxs = nil
}
