// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.31.1
// source: bonanza.build/pkg/proto/configuration/storage/object/local/local.proto

package local

import (
	blockdevice "github.com/buildbarn/bb-storage/pkg/proto/configuration/blockdevice"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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)
)

type StoreConfiguration struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to ReferenceLocationMapBackend:
	//
	//	*StoreConfiguration_ReferenceLocationMapInMemory_
	//	*StoreConfiguration_ReferenceLocationMapOnBlockDevice
	ReferenceLocationMapBackend            isStoreConfiguration_ReferenceLocationMapBackend `protobuf_oneof:"reference_location_map_backend"`
	ReferenceLocationMapMaximumGetAttempts uint32                                           `protobuf:"varint,3,opt,name=reference_location_map_maximum_get_attempts,json=referenceLocationMapMaximumGetAttempts,proto3" json:"reference_location_map_maximum_get_attempts,omitempty"`
	ReferenceLocationMapMaximumPutAttempts int64                                            `protobuf:"varint,4,opt,name=reference_location_map_maximum_put_attempts,json=referenceLocationMapMaximumPutAttempts,proto3" json:"reference_location_map_maximum_put_attempts,omitempty"`
	// Types that are valid to be assigned to LocationBlobMapBackend:
	//
	//	*StoreConfiguration_LocationBlobMapInMemory_
	//	*StoreConfiguration_LocationBlobMapOnBlockDevice
	LocationBlobMapBackend isStoreConfiguration_LocationBlobMapBackend `protobuf_oneof:"location_blob_map_backend"`
	OldRegionSizeRatio     uint32                                      `protobuf:"varint,7,opt,name=old_region_size_ratio,json=oldRegionSizeRatio,proto3" json:"old_region_size_ratio,omitempty"`
	CurrentRegionSizeRatio uint32                                      `protobuf:"varint,8,opt,name=current_region_size_ratio,json=currentRegionSizeRatio,proto3" json:"current_region_size_ratio,omitempty"`
	NewRegionSizeRatio     uint32                                      `protobuf:"varint,9,opt,name=new_region_size_ratio,json=newRegionSizeRatio,proto3" json:"new_region_size_ratio,omitempty"`
	Persistent             *StoreConfiguration_Persistent              `protobuf:"bytes,10,opt,name=persistent,proto3" json:"persistent,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*StoreConfiguration) ProtoMessage() {}

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

func (x *StoreConfiguration) GetReferenceLocationMapBackend() isStoreConfiguration_ReferenceLocationMapBackend {
	if x != nil {
		return x.ReferenceLocationMapBackend
	}
	return nil
}

func (x *StoreConfiguration) GetReferenceLocationMapInMemory() *StoreConfiguration_ReferenceLocationMapInMemory {
	if x != nil {
		if x, ok := x.ReferenceLocationMapBackend.(*StoreConfiguration_ReferenceLocationMapInMemory_); ok {
			return x.ReferenceLocationMapInMemory
		}
	}
	return nil
}

func (x *StoreConfiguration) GetReferenceLocationMapOnBlockDevice() *blockdevice.Configuration {
	if x != nil {
		if x, ok := x.ReferenceLocationMapBackend.(*StoreConfiguration_ReferenceLocationMapOnBlockDevice); ok {
			return x.ReferenceLocationMapOnBlockDevice
		}
	}
	return nil
}

func (x *StoreConfiguration) GetReferenceLocationMapMaximumGetAttempts() uint32 {
	if x != nil {
		return x.ReferenceLocationMapMaximumGetAttempts
	}
	return 0
}

func (x *StoreConfiguration) GetReferenceLocationMapMaximumPutAttempts() int64 {
	if x != nil {
		return x.ReferenceLocationMapMaximumPutAttempts
	}
	return 0
}

func (x *StoreConfiguration) GetLocationBlobMapBackend() isStoreConfiguration_LocationBlobMapBackend {
	if x != nil {
		return x.LocationBlobMapBackend
	}
	return nil
}

func (x *StoreConfiguration) GetLocationBlobMapInMemory() *StoreConfiguration_LocationBlobMapInMemory {
	if x != nil {
		if x, ok := x.LocationBlobMapBackend.(*StoreConfiguration_LocationBlobMapInMemory_); ok {
			return x.LocationBlobMapInMemory
		}
	}
	return nil
}

func (x *StoreConfiguration) GetLocationBlobMapOnBlockDevice() *blockdevice.Configuration {
	if x != nil {
		if x, ok := x.LocationBlobMapBackend.(*StoreConfiguration_LocationBlobMapOnBlockDevice); ok {
			return x.LocationBlobMapOnBlockDevice
		}
	}
	return nil
}

func (x *StoreConfiguration) GetOldRegionSizeRatio() uint32 {
	if x != nil {
		return x.OldRegionSizeRatio
	}
	return 0
}

func (x *StoreConfiguration) GetCurrentRegionSizeRatio() uint32 {
	if x != nil {
		return x.CurrentRegionSizeRatio
	}
	return 0
}

func (x *StoreConfiguration) GetNewRegionSizeRatio() uint32 {
	if x != nil {
		return x.NewRegionSizeRatio
	}
	return 0
}

func (x *StoreConfiguration) GetPersistent() *StoreConfiguration_Persistent {
	if x != nil {
		return x.Persistent
	}
	return nil
}

type isStoreConfiguration_ReferenceLocationMapBackend interface {
	isStoreConfiguration_ReferenceLocationMapBackend()
}

type StoreConfiguration_ReferenceLocationMapInMemory_ struct {
	ReferenceLocationMapInMemory *StoreConfiguration_ReferenceLocationMapInMemory `protobuf:"bytes,1,opt,name=reference_location_map_in_memory,json=referenceLocationMapInMemory,proto3,oneof"`
}

type StoreConfiguration_ReferenceLocationMapOnBlockDevice struct {
	ReferenceLocationMapOnBlockDevice *blockdevice.Configuration `protobuf:"bytes,2,opt,name=reference_location_map_on_block_device,json=referenceLocationMapOnBlockDevice,proto3,oneof"`
}

func (*StoreConfiguration_ReferenceLocationMapInMemory_) isStoreConfiguration_ReferenceLocationMapBackend() {
}

func (*StoreConfiguration_ReferenceLocationMapOnBlockDevice) isStoreConfiguration_ReferenceLocationMapBackend() {
}

type isStoreConfiguration_LocationBlobMapBackend interface {
	isStoreConfiguration_LocationBlobMapBackend()
}

type StoreConfiguration_LocationBlobMapInMemory_ struct {
	LocationBlobMapInMemory *StoreConfiguration_LocationBlobMapInMemory `protobuf:"bytes,5,opt,name=location_blob_map_in_memory,json=locationBlobMapInMemory,proto3,oneof"`
}

type StoreConfiguration_LocationBlobMapOnBlockDevice struct {
	LocationBlobMapOnBlockDevice *blockdevice.Configuration `protobuf:"bytes,6,opt,name=location_blob_map_on_block_device,json=locationBlobMapOnBlockDevice,proto3,oneof"`
}

func (*StoreConfiguration_LocationBlobMapInMemory_) isStoreConfiguration_LocationBlobMapBackend() {}

func (*StoreConfiguration_LocationBlobMapOnBlockDevice) isStoreConfiguration_LocationBlobMapBackend() {
}

type StoreConfiguration_ReferenceLocationMapInMemory struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Entries       uint64                 `protobuf:"varint,1,opt,name=entries,proto3" json:"entries,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StoreConfiguration_ReferenceLocationMapInMemory) ProtoMessage() {}

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

func (x *StoreConfiguration_ReferenceLocationMapInMemory) GetEntries() uint64 {
	if x != nil {
		return x.Entries
	}
	return 0
}

type StoreConfiguration_LocationBlobMapInMemory struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SizeBytes     uint64                 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StoreConfiguration_LocationBlobMapInMemory) ProtoMessage() {}

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

func (x *StoreConfiguration_LocationBlobMapInMemory) GetSizeBytes() uint64 {
	if x != nil {
		return x.SizeBytes
	}
	return 0
}

type StoreConfiguration_Persistent struct {
	state                protoimpl.MessageState `protogen:"open.v1"`
	StateDirectoryPath   string                 `protobuf:"bytes,1,opt,name=state_directory_path,json=stateDirectoryPath,proto3" json:"state_directory_path,omitempty"`
	MinimumEpochInterval *durationpb.Duration   `protobuf:"bytes,2,opt,name=minimum_epoch_interval,json=minimumEpochInterval,proto3" json:"minimum_epoch_interval,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*StoreConfiguration_Persistent) ProtoMessage() {}

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

func (x *StoreConfiguration_Persistent) GetStateDirectoryPath() string {
	if x != nil {
		return x.StateDirectoryPath
	}
	return ""
}

func (x *StoreConfiguration_Persistent) GetMinimumEpochInterval() *durationpb.Duration {
	if x != nil {
		return x.MinimumEpochInterval
	}
	return nil
}

var File_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto protoreflect.FileDescriptor

const file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDesc = "" +
	"\n" +
	"Fbonanza.build/pkg/proto/configuration/storage/object/local/local.proto\x12*bonanza.configuration.storage.object.local\x1aUgithub.com/buildbarn/bb-storage/pkg/proto/configuration/blockdevice/blockdevice.proto\x1a\x1egoogle/protobuf/duration.proto\"\xe9\n" +
	"\n" +
	"\x12StoreConfiguration\x12\xa5\x01\n" +
	" reference_location_map_in_memory\x18\x01 \x01(\v2[.bonanza.configuration.storage.object.local.StoreConfiguration.ReferenceLocationMapInMemoryH\x00R\x1creferenceLocationMapInMemory\x12\x87\x01\n" +
	"&reference_location_map_on_block_device\x18\x02 \x01(\v22.buildbarn.configuration.blockdevice.ConfigurationH\x00R!referenceLocationMapOnBlockDevice\x12[\n" +
	"+reference_location_map_maximum_get_attempts\x18\x03 \x01(\rR&referenceLocationMapMaximumGetAttempts\x12[\n" +
	"+reference_location_map_maximum_put_attempts\x18\x04 \x01(\x03R&referenceLocationMapMaximumPutAttempts\x12\x96\x01\n" +
	"\x1blocation_blob_map_in_memory\x18\x05 \x01(\v2V.bonanza.configuration.storage.object.local.StoreConfiguration.LocationBlobMapInMemoryH\x01R\x17locationBlobMapInMemory\x12}\n" +
	"!location_blob_map_on_block_device\x18\x06 \x01(\v22.buildbarn.configuration.blockdevice.ConfigurationH\x01R\x1clocationBlobMapOnBlockDevice\x121\n" +
	"\x15old_region_size_ratio\x18\a \x01(\rR\x12oldRegionSizeRatio\x129\n" +
	"\x19current_region_size_ratio\x18\b \x01(\rR\x16currentRegionSizeRatio\x121\n" +
	"\x15new_region_size_ratio\x18\t \x01(\rR\x12newRegionSizeRatio\x12i\n" +
	"\n" +
	"persistent\x18\n" +
	" \x01(\v2I.bonanza.configuration.storage.object.local.StoreConfiguration.PersistentR\n" +
	"persistent\x1a8\n" +
	"\x1cReferenceLocationMapInMemory\x12\x18\n" +
	"\aentries\x18\x01 \x01(\x04R\aentries\x1a8\n" +
	"\x17LocationBlobMapInMemory\x12\x1d\n" +
	"\n" +
	"size_bytes\x18\x01 \x01(\x04R\tsizeBytes\x1a\x8f\x01\n" +
	"\n" +
	"Persistent\x120\n" +
	"\x14state_directory_path\x18\x01 \x01(\tR\x12stateDirectoryPath\x12O\n" +
	"\x16minimum_epoch_interval\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x14minimumEpochIntervalB \n" +
	"\x1ereference_location_map_backendB\x1b\n" +
	"\x19location_blob_map_backendB<Z:bonanza.build/pkg/proto/configuration/storage/object/localb\x06proto3"

var (
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescOnce sync.Once
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescData []byte
)

func file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescGZIP() []byte {
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescOnce.Do(func() {
		file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDesc), len(file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDesc)))
	})
	return file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDescData
}

var file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_goTypes = []any{
	(*StoreConfiguration)(nil),                              // 0: bonanza.configuration.storage.object.local.StoreConfiguration
	(*StoreConfiguration_ReferenceLocationMapInMemory)(nil), // 1: bonanza.configuration.storage.object.local.StoreConfiguration.ReferenceLocationMapInMemory
	(*StoreConfiguration_LocationBlobMapInMemory)(nil),      // 2: bonanza.configuration.storage.object.local.StoreConfiguration.LocationBlobMapInMemory
	(*StoreConfiguration_Persistent)(nil),                   // 3: bonanza.configuration.storage.object.local.StoreConfiguration.Persistent
	(*blockdevice.Configuration)(nil),                       // 4: buildbarn.configuration.blockdevice.Configuration
	(*durationpb.Duration)(nil),                             // 5: google.protobuf.Duration
}
var file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_depIdxs = []int32{
	1, // 0: bonanza.configuration.storage.object.local.StoreConfiguration.reference_location_map_in_memory:type_name -> bonanza.configuration.storage.object.local.StoreConfiguration.ReferenceLocationMapInMemory
	4, // 1: bonanza.configuration.storage.object.local.StoreConfiguration.reference_location_map_on_block_device:type_name -> buildbarn.configuration.blockdevice.Configuration
	2, // 2: bonanza.configuration.storage.object.local.StoreConfiguration.location_blob_map_in_memory:type_name -> bonanza.configuration.storage.object.local.StoreConfiguration.LocationBlobMapInMemory
	4, // 3: bonanza.configuration.storage.object.local.StoreConfiguration.location_blob_map_on_block_device:type_name -> buildbarn.configuration.blockdevice.Configuration
	3, // 4: bonanza.configuration.storage.object.local.StoreConfiguration.persistent:type_name -> bonanza.configuration.storage.object.local.StoreConfiguration.Persistent
	5, // 5: bonanza.configuration.storage.object.local.StoreConfiguration.Persistent.minimum_epoch_interval:type_name -> google.protobuf.Duration
	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_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_init() }
func file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_init() {
	if File_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto != nil {
		return
	}
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_msgTypes[0].OneofWrappers = []any{
		(*StoreConfiguration_ReferenceLocationMapInMemory_)(nil),
		(*StoreConfiguration_ReferenceLocationMapOnBlockDevice)(nil),
		(*StoreConfiguration_LocationBlobMapInMemory_)(nil),
		(*StoreConfiguration_LocationBlobMapOnBlockDevice)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDesc), len(file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_goTypes,
		DependencyIndexes: file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_depIdxs,
		MessageInfos:      file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_msgTypes,
	}.Build()
	File_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto = out.File
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_goTypes = nil
	file_bonanza_build_pkg_proto_configuration_storage_object_local_local_proto_depIdxs = nil
}
