// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.9
// 	protoc        v6.31.1
// source: github.com/buildbarn/bb-storage/pkg/proto/configuration/grpc/grpc.proto

package grpc

import (
	auth "github.com/buildbarn/bb-storage/pkg/proto/auth"
	eviction "github.com/buildbarn/bb-storage/pkg/proto/configuration/eviction"
	client "github.com/buildbarn/bb-storage/pkg/proto/configuration/http/client"
	jmespath "github.com/buildbarn/bb-storage/pkg/proto/configuration/jmespath"
	jwt "github.com/buildbarn/bb-storage/pkg/proto/configuration/jwt"
	tls "github.com/buildbarn/bb-storage/pkg/proto/configuration/tls"
	x509 "github.com/buildbarn/bb-storage/pkg/proto/configuration/x509"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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 ClientConfiguration struct {
	state                         protoimpl.MessageState                 `protogen:"open.v1"`
	Address                       string                                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Tls                           *tls.ClientConfiguration               `protobuf:"bytes,2,opt,name=tls,proto3" json:"tls,omitempty"`
	Keepalive                     *ClientKeepaliveConfiguration          `protobuf:"bytes,3,opt,name=keepalive,proto3" json:"keepalive,omitempty"`
	AddMetadata                   []*ClientConfiguration_HeaderValues    `protobuf:"bytes,5,rep,name=add_metadata,json=addMetadata,proto3" json:"add_metadata,omitempty"`
	AddMetadataJmespathExpression *jmespath.Expression                   `protobuf:"bytes,12,opt,name=add_metadata_jmespath_expression,json=addMetadataJmespathExpression,proto3" json:"add_metadata_jmespath_expression,omitempty"`
	Oauth2                        *client.OAuth2Configuration            `protobuf:"bytes,6,opt,name=oauth2,proto3" json:"oauth2,omitempty"`
	InitialWindowSizeBytes        int32                                  `protobuf:"varint,8,opt,name=initial_window_size_bytes,json=initialWindowSizeBytes,proto3" json:"initial_window_size_bytes,omitempty"`
	InitialConnWindowSizeBytes    int32                                  `protobuf:"varint,9,opt,name=initial_conn_window_size_bytes,json=initialConnWindowSizeBytes,proto3" json:"initial_conn_window_size_bytes,omitempty"`
	ProxyUrl                      string                                 `protobuf:"bytes,10,opt,name=proxy_url,json=proxyUrl,proto3" json:"proxy_url,omitempty"`
	Tracing                       map[string]*TracingMethodConfiguration `protobuf:"bytes,11,rep,name=tracing,proto3" json:"tracing,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	DefaultServiceConfig          *structpb.Struct                       `protobuf:"bytes,13,opt,name=default_service_config,json=defaultServiceConfig,proto3" json:"default_service_config,omitempty"`
	unknownFields                 protoimpl.UnknownFields
	sizeCache                     protoimpl.SizeCache
}

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

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

func (*ClientConfiguration) ProtoMessage() {}

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

func (x *ClientConfiguration) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *ClientConfiguration) GetTls() *tls.ClientConfiguration {
	if x != nil {
		return x.Tls
	}
	return nil
}

func (x *ClientConfiguration) GetKeepalive() *ClientKeepaliveConfiguration {
	if x != nil {
		return x.Keepalive
	}
	return nil
}

func (x *ClientConfiguration) GetAddMetadata() []*ClientConfiguration_HeaderValues {
	if x != nil {
		return x.AddMetadata
	}
	return nil
}

func (x *ClientConfiguration) GetAddMetadataJmespathExpression() *jmespath.Expression {
	if x != nil {
		return x.AddMetadataJmespathExpression
	}
	return nil
}

func (x *ClientConfiguration) GetOauth2() *client.OAuth2Configuration {
	if x != nil {
		return x.Oauth2
	}
	return nil
}

func (x *ClientConfiguration) GetInitialWindowSizeBytes() int32 {
	if x != nil {
		return x.InitialWindowSizeBytes
	}
	return 0
}

func (x *ClientConfiguration) GetInitialConnWindowSizeBytes() int32 {
	if x != nil {
		return x.InitialConnWindowSizeBytes
	}
	return 0
}

func (x *ClientConfiguration) GetProxyUrl() string {
	if x != nil {
		return x.ProxyUrl
	}
	return ""
}

func (x *ClientConfiguration) GetTracing() map[string]*TracingMethodConfiguration {
	if x != nil {
		return x.Tracing
	}
	return nil
}

func (x *ClientConfiguration) GetDefaultServiceConfig() *structpb.Struct {
	if x != nil {
		return x.DefaultServiceConfig
	}
	return nil
}

type ClientKeepaliveConfiguration struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	Time                *durationpb.Duration   `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
	Timeout             *durationpb.Duration   `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
	PermitWithoutStream bool                   `protobuf:"varint,3,opt,name=permit_without_stream,json=permitWithoutStream,proto3" json:"permit_without_stream,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*ClientKeepaliveConfiguration) ProtoMessage() {}

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

func (x *ClientKeepaliveConfiguration) GetTime() *durationpb.Duration {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *ClientKeepaliveConfiguration) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *ClientKeepaliveConfiguration) GetPermitWithoutStream() bool {
	if x != nil {
		return x.PermitWithoutStream
	}
	return false
}

type ServerConfiguration struct {
	state                           protoimpl.MessageState                 `protogen:"open.v1"`
	ListenAddresses                 []string                               `protobuf:"bytes,1,rep,name=listen_addresses,json=listenAddresses,proto3" json:"listen_addresses,omitempty"`
	ListenPaths                     []string                               `protobuf:"bytes,2,rep,name=listen_paths,json=listenPaths,proto3" json:"listen_paths,omitempty"`
	Tls                             *tls.ServerConfiguration               `protobuf:"bytes,3,opt,name=tls,proto3" json:"tls,omitempty"`
	AuthenticationPolicy            *AuthenticationPolicy                  `protobuf:"bytes,4,opt,name=authentication_policy,json=authenticationPolicy,proto3" json:"authentication_policy,omitempty"`
	MaximumReceivedMessageSizeBytes int64                                  `protobuf:"varint,5,opt,name=maximum_received_message_size_bytes,json=maximumReceivedMessageSizeBytes,proto3" json:"maximum_received_message_size_bytes,omitempty"`
	KeepaliveEnforcementPolicy      *ServerKeepaliveEnforcementPolicy      `protobuf:"bytes,6,opt,name=keepalive_enforcement_policy,json=keepaliveEnforcementPolicy,proto3" json:"keepalive_enforcement_policy,omitempty"`
	HealthCheckService              string                                 `protobuf:"bytes,7,opt,name=health_check_service,json=healthCheckService,proto3" json:"health_check_service,omitempty"`
	InitialWindowSizeBytes          int32                                  `protobuf:"varint,8,opt,name=initial_window_size_bytes,json=initialWindowSizeBytes,proto3" json:"initial_window_size_bytes,omitempty"`
	InitialConnWindowSizeBytes      int32                                  `protobuf:"varint,9,opt,name=initial_conn_window_size_bytes,json=initialConnWindowSizeBytes,proto3" json:"initial_conn_window_size_bytes,omitempty"`
	Tracing                         map[string]*TracingMethodConfiguration `protobuf:"bytes,10,rep,name=tracing,proto3" json:"tracing,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	KeepaliveParameters             *ServerKeepaliveParameters             `protobuf:"bytes,11,opt,name=keepalive_parameters,json=keepaliveParameters,proto3" json:"keepalive_parameters,omitempty"`
	StopGracefully                  bool                                   `protobuf:"varint,12,opt,name=stop_gracefully,json=stopGracefully,proto3" json:"stop_gracefully,omitempty"`
	unknownFields                   protoimpl.UnknownFields
	sizeCache                       protoimpl.SizeCache
}

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

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

func (*ServerConfiguration) ProtoMessage() {}

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

func (x *ServerConfiguration) GetListenAddresses() []string {
	if x != nil {
		return x.ListenAddresses
	}
	return nil
}

func (x *ServerConfiguration) GetListenPaths() []string {
	if x != nil {
		return x.ListenPaths
	}
	return nil
}

func (x *ServerConfiguration) GetTls() *tls.ServerConfiguration {
	if x != nil {
		return x.Tls
	}
	return nil
}

func (x *ServerConfiguration) GetAuthenticationPolicy() *AuthenticationPolicy {
	if x != nil {
		return x.AuthenticationPolicy
	}
	return nil
}

func (x *ServerConfiguration) GetMaximumReceivedMessageSizeBytes() int64 {
	if x != nil {
		return x.MaximumReceivedMessageSizeBytes
	}
	return 0
}

func (x *ServerConfiguration) GetKeepaliveEnforcementPolicy() *ServerKeepaliveEnforcementPolicy {
	if x != nil {
		return x.KeepaliveEnforcementPolicy
	}
	return nil
}

func (x *ServerConfiguration) GetHealthCheckService() string {
	if x != nil {
		return x.HealthCheckService
	}
	return ""
}

func (x *ServerConfiguration) GetInitialWindowSizeBytes() int32 {
	if x != nil {
		return x.InitialWindowSizeBytes
	}
	return 0
}

func (x *ServerConfiguration) GetInitialConnWindowSizeBytes() int32 {
	if x != nil {
		return x.InitialConnWindowSizeBytes
	}
	return 0
}

func (x *ServerConfiguration) GetTracing() map[string]*TracingMethodConfiguration {
	if x != nil {
		return x.Tracing
	}
	return nil
}

func (x *ServerConfiguration) GetKeepaliveParameters() *ServerKeepaliveParameters {
	if x != nil {
		return x.KeepaliveParameters
	}
	return nil
}

func (x *ServerConfiguration) GetStopGracefully() bool {
	if x != nil {
		return x.StopGracefully
	}
	return false
}

type ServerKeepaliveEnforcementPolicy struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	MinTime             *durationpb.Duration   `protobuf:"bytes,1,opt,name=min_time,json=minTime,proto3" json:"min_time,omitempty"`
	PermitWithoutStream bool                   `protobuf:"varint,2,opt,name=permit_without_stream,json=permitWithoutStream,proto3" json:"permit_without_stream,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*ServerKeepaliveEnforcementPolicy) ProtoMessage() {}

func (x *ServerKeepaliveEnforcementPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 ServerKeepaliveEnforcementPolicy.ProtoReflect.Descriptor instead.
func (*ServerKeepaliveEnforcementPolicy) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{3}
}

func (x *ServerKeepaliveEnforcementPolicy) GetMinTime() *durationpb.Duration {
	if x != nil {
		return x.MinTime
	}
	return nil
}

func (x *ServerKeepaliveEnforcementPolicy) GetPermitWithoutStream() bool {
	if x != nil {
		return x.PermitWithoutStream
	}
	return false
}

type ServerKeepaliveParameters struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	MaxConnectionIdle     *durationpb.Duration   `protobuf:"bytes,1,opt,name=max_connection_idle,json=maxConnectionIdle,proto3" json:"max_connection_idle,omitempty"`
	MaxConnectionAge      *durationpb.Duration   `protobuf:"bytes,2,opt,name=max_connection_age,json=maxConnectionAge,proto3" json:"max_connection_age,omitempty"`
	MaxConnectionAgeGrace *durationpb.Duration   `protobuf:"bytes,3,opt,name=max_connection_age_grace,json=maxConnectionAgeGrace,proto3" json:"max_connection_age_grace,omitempty"`
	Time                  *durationpb.Duration   `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	Timeout               *durationpb.Duration   `protobuf:"bytes,5,opt,name=timeout,proto3" json:"timeout,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*ServerKeepaliveParameters) ProtoMessage() {}

func (x *ServerKeepaliveParameters) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 ServerKeepaliveParameters.ProtoReflect.Descriptor instead.
func (*ServerKeepaliveParameters) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{4}
}

func (x *ServerKeepaliveParameters) GetMaxConnectionIdle() *durationpb.Duration {
	if x != nil {
		return x.MaxConnectionIdle
	}
	return nil
}

func (x *ServerKeepaliveParameters) GetMaxConnectionAge() *durationpb.Duration {
	if x != nil {
		return x.MaxConnectionAge
	}
	return nil
}

func (x *ServerKeepaliveParameters) GetMaxConnectionAgeGrace() *durationpb.Duration {
	if x != nil {
		return x.MaxConnectionAgeGrace
	}
	return nil
}

func (x *ServerKeepaliveParameters) GetTime() *durationpb.Duration {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *ServerKeepaliveParameters) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

type AuthenticationPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Policy:
	//
	//	*AuthenticationPolicy_Allow
	//	*AuthenticationPolicy_Any
	//	*AuthenticationPolicy_All
	//	*AuthenticationPolicy_Deny
	//	*AuthenticationPolicy_TlsClientCertificate
	//	*AuthenticationPolicy_Jwt
	//	*AuthenticationPolicy_PeerCredentialsJmespathExpression
	//	*AuthenticationPolicy_Remote
	Policy        isAuthenticationPolicy_Policy `protobuf_oneof:"policy"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthenticationPolicy) ProtoMessage() {}

func (x *AuthenticationPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 AuthenticationPolicy.ProtoReflect.Descriptor instead.
func (*AuthenticationPolicy) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{5}
}

func (x *AuthenticationPolicy) GetPolicy() isAuthenticationPolicy_Policy {
	if x != nil {
		return x.Policy
	}
	return nil
}

func (x *AuthenticationPolicy) GetAllow() *auth.AuthenticationMetadata {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_Allow); ok {
			return x.Allow
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetAny() *AnyAuthenticationPolicy {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_Any); ok {
			return x.Any
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetAll() *AllAuthenticationPolicy {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_All); ok {
			return x.All
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetDeny() string {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_Deny); ok {
			return x.Deny
		}
	}
	return ""
}

func (x *AuthenticationPolicy) GetTlsClientCertificate() *x509.ClientCertificateVerifierConfiguration {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_TlsClientCertificate); ok {
			return x.TlsClientCertificate
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetJwt() *jwt.AuthorizationHeaderParserConfiguration {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_Jwt); ok {
			return x.Jwt
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetPeerCredentialsJmespathExpression() *jmespath.Expression {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_PeerCredentialsJmespathExpression); ok {
			return x.PeerCredentialsJmespathExpression
		}
	}
	return nil
}

func (x *AuthenticationPolicy) GetRemote() *RemoteAuthenticationPolicy {
	if x != nil {
		if x, ok := x.Policy.(*AuthenticationPolicy_Remote); ok {
			return x.Remote
		}
	}
	return nil
}

type isAuthenticationPolicy_Policy interface {
	isAuthenticationPolicy_Policy()
}

type AuthenticationPolicy_Allow struct {
	Allow *auth.AuthenticationMetadata `protobuf:"bytes,1,opt,name=allow,proto3,oneof"`
}

type AuthenticationPolicy_Any struct {
	Any *AnyAuthenticationPolicy `protobuf:"bytes,2,opt,name=any,proto3,oneof"`
}

type AuthenticationPolicy_All struct {
	All *AllAuthenticationPolicy `protobuf:"bytes,7,opt,name=all,proto3,oneof"`
}

type AuthenticationPolicy_Deny struct {
	Deny string `protobuf:"bytes,3,opt,name=deny,proto3,oneof"`
}

type AuthenticationPolicy_TlsClientCertificate struct {
	TlsClientCertificate *x509.ClientCertificateVerifierConfiguration `protobuf:"bytes,4,opt,name=tls_client_certificate,json=tlsClientCertificate,proto3,oneof"`
}

type AuthenticationPolicy_Jwt struct {
	Jwt *jwt.AuthorizationHeaderParserConfiguration `protobuf:"bytes,5,opt,name=jwt,proto3,oneof"`
}

type AuthenticationPolicy_PeerCredentialsJmespathExpression struct {
	PeerCredentialsJmespathExpression *jmespath.Expression `protobuf:"bytes,6,opt,name=peer_credentials_jmespath_expression,json=peerCredentialsJmespathExpression,proto3,oneof"`
}

type AuthenticationPolicy_Remote struct {
	Remote *RemoteAuthenticationPolicy `protobuf:"bytes,8,opt,name=remote,proto3,oneof"`
}

func (*AuthenticationPolicy_Allow) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_Any) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_All) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_Deny) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_TlsClientCertificate) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_Jwt) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_PeerCredentialsJmespathExpression) isAuthenticationPolicy_Policy() {}

func (*AuthenticationPolicy_Remote) isAuthenticationPolicy_Policy() {}

type AnyAuthenticationPolicy struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Policies      []*AuthenticationPolicy `protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AnyAuthenticationPolicy) ProtoMessage() {}

func (x *AnyAuthenticationPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 AnyAuthenticationPolicy.ProtoReflect.Descriptor instead.
func (*AnyAuthenticationPolicy) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{6}
}

func (x *AnyAuthenticationPolicy) GetPolicies() []*AuthenticationPolicy {
	if x != nil {
		return x.Policies
	}
	return nil
}

type AllAuthenticationPolicy struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Policies      []*AuthenticationPolicy `protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AllAuthenticationPolicy) ProtoMessage() {}

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

func (x *AllAuthenticationPolicy) GetPolicies() []*AuthenticationPolicy {
	if x != nil {
		return x.Policies
	}
	return nil
}

type TLSClientCertificateAuthenticationPolicy struct {
	state                                protoimpl.MessageState `protogen:"open.v1"`
	ClientCertificateAuthorities         string                 `protobuf:"bytes,1,opt,name=client_certificate_authorities,json=clientCertificateAuthorities,proto3" json:"client_certificate_authorities,omitempty"`
	ValidationJmespathExpression         *jmespath.Expression   `protobuf:"bytes,3,opt,name=validation_jmespath_expression,json=validationJmespathExpression,proto3" json:"validation_jmespath_expression,omitempty"`
	MetadataExtractionJmespathExpression *jmespath.Expression   `protobuf:"bytes,4,opt,name=metadata_extraction_jmespath_expression,json=metadataExtractionJmespathExpression,proto3" json:"metadata_extraction_jmespath_expression,omitempty"`
	unknownFields                        protoimpl.UnknownFields
	sizeCache                            protoimpl.SizeCache
}

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

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

func (*TLSClientCertificateAuthenticationPolicy) ProtoMessage() {}

func (x *TLSClientCertificateAuthenticationPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 TLSClientCertificateAuthenticationPolicy.ProtoReflect.Descriptor instead.
func (*TLSClientCertificateAuthenticationPolicy) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{8}
}

func (x *TLSClientCertificateAuthenticationPolicy) GetClientCertificateAuthorities() string {
	if x != nil {
		return x.ClientCertificateAuthorities
	}
	return ""
}

func (x *TLSClientCertificateAuthenticationPolicy) GetValidationJmespathExpression() *jmespath.Expression {
	if x != nil {
		return x.ValidationJmespathExpression
	}
	return nil
}

func (x *TLSClientCertificateAuthenticationPolicy) GetMetadataExtractionJmespathExpression() *jmespath.Expression {
	if x != nil {
		return x.MetadataExtractionJmespathExpression
	}
	return nil
}

type RemoteAuthenticationPolicy struct {
	state                  protoimpl.MessageState          `protogen:"open.v1"`
	Headers                []string                        `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
	Endpoint               *ClientConfiguration            `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	Scope                  *structpb.Value                 `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"`
	MaximumCacheSize       int32                           `protobuf:"varint,4,opt,name=maximum_cache_size,json=maximumCacheSize,proto3" json:"maximum_cache_size,omitempty"`
	CacheReplacementPolicy eviction.CacheReplacementPolicy `protobuf:"varint,5,opt,name=cache_replacement_policy,json=cacheReplacementPolicy,proto3,enum=buildbarn.configuration.eviction.CacheReplacementPolicy" json:"cache_replacement_policy,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*RemoteAuthenticationPolicy) ProtoMessage() {}

func (x *RemoteAuthenticationPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 RemoteAuthenticationPolicy.ProtoReflect.Descriptor instead.
func (*RemoteAuthenticationPolicy) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{9}
}

func (x *RemoteAuthenticationPolicy) GetHeaders() []string {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *RemoteAuthenticationPolicy) GetEndpoint() *ClientConfiguration {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *RemoteAuthenticationPolicy) GetScope() *structpb.Value {
	if x != nil {
		return x.Scope
	}
	return nil
}

func (x *RemoteAuthenticationPolicy) GetMaximumCacheSize() int32 {
	if x != nil {
		return x.MaximumCacheSize
	}
	return 0
}

func (x *RemoteAuthenticationPolicy) GetCacheReplacementPolicy() eviction.CacheReplacementPolicy {
	if x != nil {
		return x.CacheReplacementPolicy
	}
	return eviction.CacheReplacementPolicy(0)
}

type TracingMethodConfiguration struct {
	state                              protoimpl.MessageState `protogen:"open.v1"`
	AttributesFromFirstRequestMessage  []string               `protobuf:"bytes,1,rep,name=attributes_from_first_request_message,json=attributesFromFirstRequestMessage,proto3" json:"attributes_from_first_request_message,omitempty"`
	AttributesFromFirstResponseMessage []string               `protobuf:"bytes,2,rep,name=attributes_from_first_response_message,json=attributesFromFirstResponseMessage,proto3" json:"attributes_from_first_response_message,omitempty"`
	unknownFields                      protoimpl.UnknownFields
	sizeCache                          protoimpl.SizeCache
}

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

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

func (*TracingMethodConfiguration) ProtoMessage() {}

func (x *TracingMethodConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_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 TracingMethodConfiguration.ProtoReflect.Descriptor instead.
func (*TracingMethodConfiguration) Descriptor() ([]byte, []int) {
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP(), []int{10}
}

func (x *TracingMethodConfiguration) GetAttributesFromFirstRequestMessage() []string {
	if x != nil {
		return x.AttributesFromFirstRequestMessage
	}
	return nil
}

func (x *TracingMethodConfiguration) GetAttributesFromFirstResponseMessage() []string {
	if x != nil {
		return x.AttributesFromFirstResponseMessage
	}
	return nil
}

type ClientConfiguration_HeaderValues struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Header        string                 `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Values        []string               `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ClientConfiguration_HeaderValues) Reset() {
	*x = ClientConfiguration_HeaderValues{}
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ClientConfiguration_HeaderValues) ProtoMessage() {}

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

func (x *ClientConfiguration_HeaderValues) GetHeader() string {
	if x != nil {
		return x.Header
	}
	return ""
}

func (x *ClientConfiguration_HeaderValues) GetValues() []string {
	if x != nil {
		return x.Values
	}
	return nil
}

var File_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto protoreflect.FileDescriptor

const file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDesc = "" +
	"\n" +
	"Ggithub.com/buildbarn/bb-storage/pkg/proto/configuration/grpc/grpc.proto\x12\x1cbuildbarn.configuration.grpc\x1a9github.com/buildbarn/bb-storage/pkg/proto/auth/auth.proto\x1aOgithub.com/buildbarn/bb-storage/pkg/proto/configuration/eviction/eviction.proto\x1aPgithub.com/buildbarn/bb-storage/pkg/proto/configuration/http/client/client.proto\x1aOgithub.com/buildbarn/bb-storage/pkg/proto/configuration/jmespath/jmespath.proto\x1aEgithub.com/buildbarn/bb-storage/pkg/proto/configuration/jwt/jwt.proto\x1aEgithub.com/buildbarn/bb-storage/pkg/proto/configuration/tls/tls.proto\x1aGgithub.com/buildbarn/bb-storage/pkg/proto/configuration/x509/x509.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x80\b\n" +
	"\x13ClientConfiguration\x12\x18\n" +
	"\aaddress\x18\x01 \x01(\tR\aaddress\x12B\n" +
	"\x03tls\x18\x02 \x01(\v20.buildbarn.configuration.tls.ClientConfigurationR\x03tls\x12X\n" +
	"\tkeepalive\x18\x03 \x01(\v2:.buildbarn.configuration.grpc.ClientKeepaliveConfigurationR\tkeepalive\x12a\n" +
	"\fadd_metadata\x18\x05 \x03(\v2>.buildbarn.configuration.grpc.ClientConfiguration.HeaderValuesR\vaddMetadata\x12u\n" +
	" add_metadata_jmespath_expression\x18\f \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR\x1daddMetadataJmespathExpression\x12P\n" +
	"\x06oauth2\x18\x06 \x01(\v28.buildbarn.configuration.http.client.OAuth2ConfigurationR\x06oauth2\x129\n" +
	"\x19initial_window_size_bytes\x18\b \x01(\x05R\x16initialWindowSizeBytes\x12B\n" +
	"\x1einitial_conn_window_size_bytes\x18\t \x01(\x05R\x1ainitialConnWindowSizeBytes\x12\x1b\n" +
	"\tproxy_url\x18\n" +
	" \x01(\tR\bproxyUrl\x12X\n" +
	"\atracing\x18\v \x03(\v2>.buildbarn.configuration.grpc.ClientConfiguration.TracingEntryR\atracing\x12M\n" +
	"\x16default_service_config\x18\r \x01(\v2\x17.google.protobuf.StructR\x14defaultServiceConfig\x1a>\n" +
	"\fHeaderValues\x12\x16\n" +
	"\x06header\x18\x01 \x01(\tR\x06header\x12\x16\n" +
	"\x06values\x18\x02 \x03(\tR\x06values\x1at\n" +
	"\fTracingEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12N\n" +
	"\x05value\x18\x02 \x01(\v28.buildbarn.configuration.grpc.TracingMethodConfigurationR\x05value:\x028\x01J\x04\b\x04\x10\x05J\x04\b\a\x10\b\"\xb6\x01\n" +
	"\x1cClientKeepaliveConfiguration\x12-\n" +
	"\x04time\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x04time\x123\n" +
	"\atimeout\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\atimeout\x122\n" +
	"\x15permit_without_stream\x18\x03 \x01(\bR\x13permitWithoutStream\"\xf7\a\n" +
	"\x13ServerConfiguration\x12)\n" +
	"\x10listen_addresses\x18\x01 \x03(\tR\x0flistenAddresses\x12!\n" +
	"\flisten_paths\x18\x02 \x03(\tR\vlistenPaths\x12B\n" +
	"\x03tls\x18\x03 \x01(\v20.buildbarn.configuration.tls.ServerConfigurationR\x03tls\x12g\n" +
	"\x15authentication_policy\x18\x04 \x01(\v22.buildbarn.configuration.grpc.AuthenticationPolicyR\x14authenticationPolicy\x12L\n" +
	"#maximum_received_message_size_bytes\x18\x05 \x01(\x03R\x1fmaximumReceivedMessageSizeBytes\x12\x80\x01\n" +
	"\x1ckeepalive_enforcement_policy\x18\x06 \x01(\v2>.buildbarn.configuration.grpc.ServerKeepaliveEnforcementPolicyR\x1akeepaliveEnforcementPolicy\x120\n" +
	"\x14health_check_service\x18\a \x01(\tR\x12healthCheckService\x129\n" +
	"\x19initial_window_size_bytes\x18\b \x01(\x05R\x16initialWindowSizeBytes\x12B\n" +
	"\x1einitial_conn_window_size_bytes\x18\t \x01(\x05R\x1ainitialConnWindowSizeBytes\x12X\n" +
	"\atracing\x18\n" +
	" \x03(\v2>.buildbarn.configuration.grpc.ServerConfiguration.TracingEntryR\atracing\x12j\n" +
	"\x14keepalive_parameters\x18\v \x01(\v27.buildbarn.configuration.grpc.ServerKeepaliveParametersR\x13keepaliveParameters\x12'\n" +
	"\x0fstop_gracefully\x18\f \x01(\bR\x0estopGracefully\x1at\n" +
	"\fTracingEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12N\n" +
	"\x05value\x18\x02 \x01(\v28.buildbarn.configuration.grpc.TracingMethodConfigurationR\x05value:\x028\x01\"\x8c\x01\n" +
	" ServerKeepaliveEnforcementPolicy\x124\n" +
	"\bmin_time\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\aminTime\x122\n" +
	"\x15permit_without_stream\x18\x02 \x01(\bR\x13permitWithoutStream\"\xe7\x02\n" +
	"\x19ServerKeepaliveParameters\x12I\n" +
	"\x13max_connection_idle\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x11maxConnectionIdle\x12G\n" +
	"\x12max_connection_age\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x10maxConnectionAge\x12R\n" +
	"\x18max_connection_age_grace\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x15maxConnectionAgeGrace\x12-\n" +
	"\x04time\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x04time\x123\n" +
	"\atimeout\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\atimeout\"\xb8\x05\n" +
	"\x14AuthenticationPolicy\x12>\n" +
	"\x05allow\x18\x01 \x01(\v2&.buildbarn.auth.AuthenticationMetadataH\x00R\x05allow\x12I\n" +
	"\x03any\x18\x02 \x01(\v25.buildbarn.configuration.grpc.AnyAuthenticationPolicyH\x00R\x03any\x12I\n" +
	"\x03all\x18\a \x01(\v25.buildbarn.configuration.grpc.AllAuthenticationPolicyH\x00R\x03all\x12\x14\n" +
	"\x04deny\x18\x03 \x01(\tH\x00R\x04deny\x12|\n" +
	"\x16tls_client_certificate\x18\x04 \x01(\v2D.buildbarn.configuration.x509.ClientCertificateVerifierConfigurationH\x00R\x14tlsClientCertificate\x12W\n" +
	"\x03jwt\x18\x05 \x01(\v2C.buildbarn.configuration.jwt.AuthorizationHeaderParserConfigurationH\x00R\x03jwt\x12\x7f\n" +
	"$peer_credentials_jmespath_expression\x18\x06 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionH\x00R!peerCredentialsJmespathExpression\x12R\n" +
	"\x06remote\x18\b \x01(\v28.buildbarn.configuration.grpc.RemoteAuthenticationPolicyH\x00R\x06remoteB\b\n" +
	"\x06policy\"i\n" +
	"\x17AnyAuthenticationPolicy\x12N\n" +
	"\bpolicies\x18\x01 \x03(\v22.buildbarn.configuration.grpc.AuthenticationPolicyR\bpolicies\"i\n" +
	"\x17AllAuthenticationPolicy\x12N\n" +
	"\bpolicies\x18\x01 \x03(\v22.buildbarn.configuration.grpc.AuthenticationPolicyR\bpolicies\"\xf0\x02\n" +
	"(TLSClientCertificateAuthenticationPolicy\x12D\n" +
	"\x1eclient_certificate_authorities\x18\x01 \x01(\tR\x1cclientCertificateAuthorities\x12r\n" +
	"\x1evalidation_jmespath_expression\x18\x03 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR\x1cvalidationJmespathExpression\x12\x83\x01\n" +
	"'metadata_extraction_jmespath_expression\x18\x04 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR$metadataExtractionJmespathExpressionJ\x04\b\x02\x10\x03\"\xd5\x02\n" +
	"\x1aRemoteAuthenticationPolicy\x12\x18\n" +
	"\aheaders\x18\x01 \x03(\tR\aheaders\x12M\n" +
	"\bendpoint\x18\x02 \x01(\v21.buildbarn.configuration.grpc.ClientConfigurationR\bendpoint\x12,\n" +
	"\x05scope\x18\x03 \x01(\v2\x16.google.protobuf.ValueR\x05scope\x12,\n" +
	"\x12maximum_cache_size\x18\x04 \x01(\x05R\x10maximumCacheSize\x12r\n" +
	"\x18cache_replacement_policy\x18\x05 \x01(\x0e28.buildbarn.configuration.eviction.CacheReplacementPolicyR\x16cacheReplacementPolicy\"\xc2\x01\n" +
	"\x1aTracingMethodConfiguration\x12P\n" +
	"%attributes_from_first_request_message\x18\x01 \x03(\tR!attributesFromFirstRequestMessage\x12R\n" +
	"&attributes_from_first_response_message\x18\x02 \x03(\tR\"attributesFromFirstResponseMessageB>Z<github.com/buildbarn/bb-storage/pkg/proto/configuration/grpcb\x06proto3"

var (
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescOnce sync.Once
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescData []byte
)

func file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescGZIP() []byte {
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescOnce.Do(func() {
		file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDesc), len(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDesc)))
	})
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDescData
}

var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_goTypes = []any{
	(*ClientConfiguration)(nil),                         // 0: buildbarn.configuration.grpc.ClientConfiguration
	(*ClientKeepaliveConfiguration)(nil),                // 1: buildbarn.configuration.grpc.ClientKeepaliveConfiguration
	(*ServerConfiguration)(nil),                         // 2: buildbarn.configuration.grpc.ServerConfiguration
	(*ServerKeepaliveEnforcementPolicy)(nil),            // 3: buildbarn.configuration.grpc.ServerKeepaliveEnforcementPolicy
	(*ServerKeepaliveParameters)(nil),                   // 4: buildbarn.configuration.grpc.ServerKeepaliveParameters
	(*AuthenticationPolicy)(nil),                        // 5: buildbarn.configuration.grpc.AuthenticationPolicy
	(*AnyAuthenticationPolicy)(nil),                     // 6: buildbarn.configuration.grpc.AnyAuthenticationPolicy
	(*AllAuthenticationPolicy)(nil),                     // 7: buildbarn.configuration.grpc.AllAuthenticationPolicy
	(*TLSClientCertificateAuthenticationPolicy)(nil),    // 8: buildbarn.configuration.grpc.TLSClientCertificateAuthenticationPolicy
	(*RemoteAuthenticationPolicy)(nil),                  // 9: buildbarn.configuration.grpc.RemoteAuthenticationPolicy
	(*TracingMethodConfiguration)(nil),                  // 10: buildbarn.configuration.grpc.TracingMethodConfiguration
	(*ClientConfiguration_HeaderValues)(nil),            // 11: buildbarn.configuration.grpc.ClientConfiguration.HeaderValues
	nil,                                                 // 12: buildbarn.configuration.grpc.ClientConfiguration.TracingEntry
	nil,                                                 // 13: buildbarn.configuration.grpc.ServerConfiguration.TracingEntry
	(*tls.ClientConfiguration)(nil),                     // 14: buildbarn.configuration.tls.ClientConfiguration
	(*jmespath.Expression)(nil),                         // 15: buildbarn.configuration.jmespath.Expression
	(*client.OAuth2Configuration)(nil),                  // 16: buildbarn.configuration.http.client.OAuth2Configuration
	(*structpb.Struct)(nil),                             // 17: google.protobuf.Struct
	(*durationpb.Duration)(nil),                         // 18: google.protobuf.Duration
	(*tls.ServerConfiguration)(nil),                     // 19: buildbarn.configuration.tls.ServerConfiguration
	(*auth.AuthenticationMetadata)(nil),                 // 20: buildbarn.auth.AuthenticationMetadata
	(*x509.ClientCertificateVerifierConfiguration)(nil), // 21: buildbarn.configuration.x509.ClientCertificateVerifierConfiguration
	(*jwt.AuthorizationHeaderParserConfiguration)(nil),  // 22: buildbarn.configuration.jwt.AuthorizationHeaderParserConfiguration
	(*structpb.Value)(nil),                              // 23: google.protobuf.Value
	(eviction.CacheReplacementPolicy)(0),                // 24: buildbarn.configuration.eviction.CacheReplacementPolicy
}
var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_depIdxs = []int32{
	14, // 0: buildbarn.configuration.grpc.ClientConfiguration.tls:type_name -> buildbarn.configuration.tls.ClientConfiguration
	1,  // 1: buildbarn.configuration.grpc.ClientConfiguration.keepalive:type_name -> buildbarn.configuration.grpc.ClientKeepaliveConfiguration
	11, // 2: buildbarn.configuration.grpc.ClientConfiguration.add_metadata:type_name -> buildbarn.configuration.grpc.ClientConfiguration.HeaderValues
	15, // 3: buildbarn.configuration.grpc.ClientConfiguration.add_metadata_jmespath_expression:type_name -> buildbarn.configuration.jmespath.Expression
	16, // 4: buildbarn.configuration.grpc.ClientConfiguration.oauth2:type_name -> buildbarn.configuration.http.client.OAuth2Configuration
	12, // 5: buildbarn.configuration.grpc.ClientConfiguration.tracing:type_name -> buildbarn.configuration.grpc.ClientConfiguration.TracingEntry
	17, // 6: buildbarn.configuration.grpc.ClientConfiguration.default_service_config:type_name -> google.protobuf.Struct
	18, // 7: buildbarn.configuration.grpc.ClientKeepaliveConfiguration.time:type_name -> google.protobuf.Duration
	18, // 8: buildbarn.configuration.grpc.ClientKeepaliveConfiguration.timeout:type_name -> google.protobuf.Duration
	19, // 9: buildbarn.configuration.grpc.ServerConfiguration.tls:type_name -> buildbarn.configuration.tls.ServerConfiguration
	5,  // 10: buildbarn.configuration.grpc.ServerConfiguration.authentication_policy:type_name -> buildbarn.configuration.grpc.AuthenticationPolicy
	3,  // 11: buildbarn.configuration.grpc.ServerConfiguration.keepalive_enforcement_policy:type_name -> buildbarn.configuration.grpc.ServerKeepaliveEnforcementPolicy
	13, // 12: buildbarn.configuration.grpc.ServerConfiguration.tracing:type_name -> buildbarn.configuration.grpc.ServerConfiguration.TracingEntry
	4,  // 13: buildbarn.configuration.grpc.ServerConfiguration.keepalive_parameters:type_name -> buildbarn.configuration.grpc.ServerKeepaliveParameters
	18, // 14: buildbarn.configuration.grpc.ServerKeepaliveEnforcementPolicy.min_time:type_name -> google.protobuf.Duration
	18, // 15: buildbarn.configuration.grpc.ServerKeepaliveParameters.max_connection_idle:type_name -> google.protobuf.Duration
	18, // 16: buildbarn.configuration.grpc.ServerKeepaliveParameters.max_connection_age:type_name -> google.protobuf.Duration
	18, // 17: buildbarn.configuration.grpc.ServerKeepaliveParameters.max_connection_age_grace:type_name -> google.protobuf.Duration
	18, // 18: buildbarn.configuration.grpc.ServerKeepaliveParameters.time:type_name -> google.protobuf.Duration
	18, // 19: buildbarn.configuration.grpc.ServerKeepaliveParameters.timeout:type_name -> google.protobuf.Duration
	20, // 20: buildbarn.configuration.grpc.AuthenticationPolicy.allow:type_name -> buildbarn.auth.AuthenticationMetadata
	6,  // 21: buildbarn.configuration.grpc.AuthenticationPolicy.any:type_name -> buildbarn.configuration.grpc.AnyAuthenticationPolicy
	7,  // 22: buildbarn.configuration.grpc.AuthenticationPolicy.all:type_name -> buildbarn.configuration.grpc.AllAuthenticationPolicy
	21, // 23: buildbarn.configuration.grpc.AuthenticationPolicy.tls_client_certificate:type_name -> buildbarn.configuration.x509.ClientCertificateVerifierConfiguration
	22, // 24: buildbarn.configuration.grpc.AuthenticationPolicy.jwt:type_name -> buildbarn.configuration.jwt.AuthorizationHeaderParserConfiguration
	15, // 25: buildbarn.configuration.grpc.AuthenticationPolicy.peer_credentials_jmespath_expression:type_name -> buildbarn.configuration.jmespath.Expression
	9,  // 26: buildbarn.configuration.grpc.AuthenticationPolicy.remote:type_name -> buildbarn.configuration.grpc.RemoteAuthenticationPolicy
	5,  // 27: buildbarn.configuration.grpc.AnyAuthenticationPolicy.policies:type_name -> buildbarn.configuration.grpc.AuthenticationPolicy
	5,  // 28: buildbarn.configuration.grpc.AllAuthenticationPolicy.policies:type_name -> buildbarn.configuration.grpc.AuthenticationPolicy
	15, // 29: buildbarn.configuration.grpc.TLSClientCertificateAuthenticationPolicy.validation_jmespath_expression:type_name -> buildbarn.configuration.jmespath.Expression
	15, // 30: buildbarn.configuration.grpc.TLSClientCertificateAuthenticationPolicy.metadata_extraction_jmespath_expression:type_name -> buildbarn.configuration.jmespath.Expression
	0,  // 31: buildbarn.configuration.grpc.RemoteAuthenticationPolicy.endpoint:type_name -> buildbarn.configuration.grpc.ClientConfiguration
	23, // 32: buildbarn.configuration.grpc.RemoteAuthenticationPolicy.scope:type_name -> google.protobuf.Value
	24, // 33: buildbarn.configuration.grpc.RemoteAuthenticationPolicy.cache_replacement_policy:type_name -> buildbarn.configuration.eviction.CacheReplacementPolicy
	10, // 34: buildbarn.configuration.grpc.ClientConfiguration.TracingEntry.value:type_name -> buildbarn.configuration.grpc.TracingMethodConfiguration
	10, // 35: buildbarn.configuration.grpc.ServerConfiguration.TracingEntry.value:type_name -> buildbarn.configuration.grpc.TracingMethodConfiguration
	36, // [36:36] is the sub-list for method output_type
	36, // [36:36] is the sub-list for method input_type
	36, // [36:36] is the sub-list for extension type_name
	36, // [36:36] is the sub-list for extension extendee
	0,  // [0:36] is the sub-list for field type_name
}

func init() { file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_init() }
func file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_init() {
	if File_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto != nil {
		return
	}
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_msgTypes[5].OneofWrappers = []any{
		(*AuthenticationPolicy_Allow)(nil),
		(*AuthenticationPolicy_Any)(nil),
		(*AuthenticationPolicy_All)(nil),
		(*AuthenticationPolicy_Deny)(nil),
		(*AuthenticationPolicy_TlsClientCertificate)(nil),
		(*AuthenticationPolicy_Jwt)(nil),
		(*AuthenticationPolicy_PeerCredentialsJmespathExpression)(nil),
		(*AuthenticationPolicy_Remote)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDesc), len(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   14,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_goTypes,
		DependencyIndexes: file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_depIdxs,
		MessageInfos:      file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_msgTypes,
	}.Build()
	File_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto = out.File
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_goTypes = nil
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_grpc_grpc_proto_depIdxs = nil
}
