// 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/linuxcontainer/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"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	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 a single linuxcontainer
// controller. It is the top-level message wrapped in an [anypb.Any] when
// handed off between source and destination shims. Embedded process states
// are carried as opaque [anypb.Any] payloads so the process controller 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"`
	// container_id is the host/shim container identifier.
	ContainerID string `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	// gcs_container_id is the container identifier as known by the GCS inside
	// the guest, which may differ from container_id.
	GcsContainerID string `protobuf:"bytes,3,opt,name=gcs_container_id,json=gcsContainerId,proto3" json:"gcs_container_id,omitempty"`
	// io_retry_timeout is how long IO relay reconnects are retried for this
	// container.
	IoRetryTimeout *durationpb.Duration `protobuf:"bytes,4,opt,name=io_retry_timeout,json=ioRetryTimeout,proto3" json:"io_retry_timeout,omitempty"`
	// layers is the container's rootfs composition.
	Layers *Layers `protobuf:"bytes,5,opt,name=layers,proto3" json:"layers,omitempty"`
	// scsi_reservation_ids are the SCSI reservation GUIDs the container owns.
	// Each value is a key into the SCSI sub-controller's reservations map.
	ScsiReservationIds []string `protobuf:"bytes,6,rep,name=scsi_reservation_ids,json=scsiReservationIds,proto3" json:"scsi_reservation_ids,omitempty"`
	// processes is keyed by exec ID and contains the init process (with an
	// empty exec ID) plus any additional exec'd processes. Each value is an
	// opaque process-controller [Payload] envelope.
	Processes     map[string]*anypb.Any `protobuf:"bytes,7,rep,name=processes,proto3" json:"processes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Payload) Reset() {
	*x = Payload{}
	mi := &file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_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_linuxcontainer_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_linuxcontainer_save_payload_proto_rawDescGZIP(), []int{0}
}

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

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

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

func (x *Payload) GetIoRetryTimeout() *durationpb.Duration {
	if x != nil {
		return x.IoRetryTimeout
	}
	return nil
}

func (x *Payload) GetLayers() *Layers {
	if x != nil {
		return x.Layers
	}
	return nil
}

func (x *Payload) GetScsiReservationIds() []string {
	if x != nil {
		return x.ScsiReservationIds
	}
	return nil
}

func (x *Payload) GetProcesses() map[string]*anypb.Any {
	if x != nil {
		return x.Processes
	}
	return nil
}

// Layers describes the container's rootfs composition.
type Layers struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ro_layers are the read-only layer reservations in stack order.
	RoLayers []*LayerReservation `protobuf:"bytes,1,rep,name=ro_layers,json=roLayers,proto3" json:"ro_layers,omitempty"`
	// scratch is the writable scratch layer reservation.
	Scratch *LayerReservation `protobuf:"bytes,2,opt,name=scratch,proto3" json:"scratch,omitempty"`
	// layers_combined is true when the layers were merged into a single
	// rootfs (e.g. overlay) rather than mounted individually.
	LayersCombined bool `protobuf:"varint,3,opt,name=layers_combined,json=layersCombined,proto3" json:"layers_combined,omitempty"`
	// rootfs_path is the final guest path of the container rootfs: the
	// merged mount when layers_combined is true, otherwise the topmost
	// layer mount.
	RootfsPath    string `protobuf:"bytes,4,opt,name=rootfs_path,json=rootfsPath,proto3" json:"rootfs_path,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Layers) ProtoMessage() {}

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

func (x *Layers) GetRoLayers() []*LayerReservation {
	if x != nil {
		return x.RoLayers
	}
	return nil
}

func (x *Layers) GetScratch() *LayerReservation {
	if x != nil {
		return x.Scratch
	}
	return nil
}

func (x *Layers) GetLayersCombined() bool {
	if x != nil {
		return x.LayersCombined
	}
	return false
}

func (x *Layers) GetRootfsPath() string {
	if x != nil {
		return x.RootfsPath
	}
	return ""
}

// LayerReservation references a single SCSI-backed layer mounted into the
// guest.
type LayerReservation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// reservation_id is a SCSI reservation GUID; layers are SCSI-backed VHDs
	// and this is a key into the SCSI sub-controller's reservations map.
	ReservationID string `protobuf:"bytes,1,opt,name=reservation_id,json=reservationId,proto3" json:"reservation_id,omitempty"`
	// guest_path is the path inside the guest where this layer is mounted.
	GuestPath     string `protobuf:"bytes,2,opt,name=guest_path,json=guestPath,proto3" json:"guest_path,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LayerReservation) ProtoMessage() {}

func (x *LayerReservation) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_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 LayerReservation.ProtoReflect.Descriptor instead.
func (*LayerReservation) Descriptor() ([]byte, []int) {
	return file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescGZIP(), []int{2}
}

func (x *LayerReservation) GetReservationID() string {
	if x != nil {
		return x.ReservationID
	}
	return ""
}

func (x *LayerReservation) GetGuestPath() string {
	if x != nil {
		return x.GuestPath
	}
	return ""
}

var File_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto protoreflect.FileDescriptor

const file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDesc = "" +
	"\n" +
	"Rgithub.com/Microsoft/hcsshim/internal/controller/linuxcontainer/save/payload.proto\x12)hcsshim.controller.linuxcontainer.save.v1\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\"\xf4\x03\n" +
	"\aPayload\x12%\n" +
	"\x0eschema_version\x18\x01 \x01(\rR\rschemaVersion\x12!\n" +
	"\fcontainer_id\x18\x02 \x01(\tR\vcontainerId\x12(\n" +
	"\x10gcs_container_id\x18\x03 \x01(\tR\x0egcsContainerId\x12C\n" +
	"\x10io_retry_timeout\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x0eioRetryTimeout\x12I\n" +
	"\x06layers\x18\x05 \x01(\v21.hcsshim.controller.linuxcontainer.save.v1.LayersR\x06layers\x120\n" +
	"\x14scsi_reservation_ids\x18\x06 \x03(\tR\x12scsiReservationIds\x12_\n" +
	"\tprocesses\x18\a \x03(\v2A.hcsshim.controller.linuxcontainer.save.v1.Payload.ProcessesEntryR\tprocesses\x1aR\n" +
	"\x0eProcessesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12*\n" +
	"\x05value\x18\x02 \x01(\v2\x14.google.protobuf.AnyR\x05value:\x028\x01\"\x83\x02\n" +
	"\x06Layers\x12X\n" +
	"\tro_layers\x18\x01 \x03(\v2;.hcsshim.controller.linuxcontainer.save.v1.LayerReservationR\broLayers\x12U\n" +
	"\ascratch\x18\x02 \x01(\v2;.hcsshim.controller.linuxcontainer.save.v1.LayerReservationR\ascratch\x12'\n" +
	"\x0flayers_combined\x18\x03 \x01(\bR\x0elayersCombined\x12\x1f\n" +
	"\vrootfs_path\x18\x04 \x01(\tR\n" +
	"rootfsPath\"X\n" +
	"\x10LayerReservation\x12%\n" +
	"\x0ereservation_id\x18\x01 \x01(\tR\rreservationId\x12\x1d\n" +
	"\n" +
	"guest_path\x18\x02 \x01(\tR\tguestPathBKZIgithub.com/Microsoft/hcsshim/internal/controller/linuxcontainer/save;saveb\x06proto3"

var (
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescOnce sync.Once
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescData []byte
)

func file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescGZIP() []byte {
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescOnce.Do(func() {
		file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDesc), len(file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDesc)))
	})
	return file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDescData
}

var file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_goTypes = []any{
	(*Payload)(nil),             // 0: hcsshim.controller.linuxcontainer.save.v1.Payload
	(*Layers)(nil),              // 1: hcsshim.controller.linuxcontainer.save.v1.Layers
	(*LayerReservation)(nil),    // 2: hcsshim.controller.linuxcontainer.save.v1.LayerReservation
	nil,                         // 3: hcsshim.controller.linuxcontainer.save.v1.Payload.ProcessesEntry
	(*durationpb.Duration)(nil), // 4: google.protobuf.Duration
	(*anypb.Any)(nil),           // 5: google.protobuf.Any
}
var file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_depIdxs = []int32{
	4, // 0: hcsshim.controller.linuxcontainer.save.v1.Payload.io_retry_timeout:type_name -> google.protobuf.Duration
	1, // 1: hcsshim.controller.linuxcontainer.save.v1.Payload.layers:type_name -> hcsshim.controller.linuxcontainer.save.v1.Layers
	3, // 2: hcsshim.controller.linuxcontainer.save.v1.Payload.processes:type_name -> hcsshim.controller.linuxcontainer.save.v1.Payload.ProcessesEntry
	2, // 3: hcsshim.controller.linuxcontainer.save.v1.Layers.ro_layers:type_name -> hcsshim.controller.linuxcontainer.save.v1.LayerReservation
	2, // 4: hcsshim.controller.linuxcontainer.save.v1.Layers.scratch:type_name -> hcsshim.controller.linuxcontainer.save.v1.LayerReservation
	5, // 5: hcsshim.controller.linuxcontainer.save.v1.Payload.ProcessesEntry.value:type_name -> google.protobuf.Any
	6, // [6:6] is the sub-list for method output_type
	6, // [6:6] is the sub-list for method input_type
	6, // [6:6] is the sub-list for extension type_name
	6, // [6:6] is the sub-list for extension extendee
	0, // [0:6] is the sub-list for field type_name
}

func init() {
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_init()
}
func file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_init() {
	if File_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_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_linuxcontainer_save_payload_proto_rawDesc), len(file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_goTypes,
		DependencyIndexes: file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_depIdxs,
		MessageInfos:      file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_msgTypes,
	}.Build()
	File_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto = out.File
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_goTypes = nil
	file_github_com_Microsoft_hcsshim_internal_controller_linuxcontainer_save_payload_proto_depIdxs = nil
}
