// 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/http/client/client.proto

package client

import (
	tls "github.com/buildbarn/bb-storage/pkg/proto/configuration/tls"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	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 Configuration struct {
	state         protoimpl.MessageState        `protogen:"open.v1"`
	Tls           *tls.ClientConfiguration      `protobuf:"bytes,1,opt,name=tls,proto3" json:"tls,omitempty"`
	ProxyUrl      string                        `protobuf:"bytes,2,opt,name=proxy_url,json=proxyUrl,proto3" json:"proxy_url,omitempty"`
	AddHeaders    []*Configuration_HeaderValues `protobuf:"bytes,5,rep,name=add_headers,json=addHeaders,proto3" json:"add_headers,omitempty"`
	DisableHttp2  bool                          `protobuf:"varint,6,opt,name=disable_http2,json=disableHttp2,proto3" json:"disable_http2,omitempty"`
	Oauth2        *OAuth2Configuration          `protobuf:"bytes,7,opt,name=oauth2,proto3" json:"oauth2,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Configuration) ProtoMessage() {}

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

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

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

func (x *Configuration) GetAddHeaders() []*Configuration_HeaderValues {
	if x != nil {
		return x.AddHeaders
	}
	return nil
}

func (x *Configuration) GetDisableHttp2() bool {
	if x != nil {
		return x.DisableHttp2
	}
	return false
}

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

type OAuth2Configuration struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Credentials:
	//
	//	*OAuth2Configuration_GoogleDefaultCredentials
	//	*OAuth2Configuration_ServiceAccountKey
	//	*OAuth2Configuration_ClientCredentials
	Credentials   isOAuth2Configuration_Credentials `protobuf_oneof:"credentials"`
	Scopes        []string                          `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*OAuth2Configuration) ProtoMessage() {}

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

func (x *OAuth2Configuration) GetCredentials() isOAuth2Configuration_Credentials {
	if x != nil {
		return x.Credentials
	}
	return nil
}

func (x *OAuth2Configuration) GetGoogleDefaultCredentials() *emptypb.Empty {
	if x != nil {
		if x, ok := x.Credentials.(*OAuth2Configuration_GoogleDefaultCredentials); ok {
			return x.GoogleDefaultCredentials
		}
	}
	return nil
}

func (x *OAuth2Configuration) GetServiceAccountKey() string {
	if x != nil {
		if x, ok := x.Credentials.(*OAuth2Configuration_ServiceAccountKey); ok {
			return x.ServiceAccountKey
		}
	}
	return ""
}

func (x *OAuth2Configuration) GetClientCredentials() *OAuth2ClientCredentials {
	if x != nil {
		if x, ok := x.Credentials.(*OAuth2Configuration_ClientCredentials); ok {
			return x.ClientCredentials
		}
	}
	return nil
}

func (x *OAuth2Configuration) GetScopes() []string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

type isOAuth2Configuration_Credentials interface {
	isOAuth2Configuration_Credentials()
}

type OAuth2Configuration_GoogleDefaultCredentials struct {
	GoogleDefaultCredentials *emptypb.Empty `protobuf:"bytes,1,opt,name=google_default_credentials,json=googleDefaultCredentials,proto3,oneof"`
}

type OAuth2Configuration_ServiceAccountKey struct {
	ServiceAccountKey string `protobuf:"bytes,2,opt,name=service_account_key,json=serviceAccountKey,proto3,oneof"`
}

type OAuth2Configuration_ClientCredentials struct {
	ClientCredentials *OAuth2ClientCredentials `protobuf:"bytes,4,opt,name=client_credentials,json=clientCredentials,proto3,oneof"`
}

func (*OAuth2Configuration_GoogleDefaultCredentials) isOAuth2Configuration_Credentials() {}

func (*OAuth2Configuration_ServiceAccountKey) isOAuth2Configuration_Credentials() {}

func (*OAuth2Configuration_ClientCredentials) isOAuth2Configuration_Credentials() {}

type OAuth2ClientCredentials struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	ClientId         string                 `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	ClientSecret     string                 `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"`
	TokenEndpointUrl string                 `protobuf:"bytes,3,opt,name=token_endpoint_url,json=tokenEndpointUrl,proto3" json:"token_endpoint_url,omitempty"`
	HttpClient       *Configuration         `protobuf:"bytes,4,opt,name=http_client,json=httpClient,proto3" json:"http_client,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*OAuth2ClientCredentials) ProtoMessage() {}

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

func (x *OAuth2ClientCredentials) GetClientId() string {
	if x != nil {
		return x.ClientId
	}
	return ""
}

func (x *OAuth2ClientCredentials) GetClientSecret() string {
	if x != nil {
		return x.ClientSecret
	}
	return ""
}

func (x *OAuth2ClientCredentials) GetTokenEndpointUrl() string {
	if x != nil {
		return x.TokenEndpointUrl
	}
	return ""
}

func (x *OAuth2ClientCredentials) GetHttpClient() *Configuration {
	if x != nil {
		return x.HttpClient
	}
	return nil
}

type Configuration_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 *Configuration_HeaderValues) Reset() {
	*x = Configuration_HeaderValues{}
	mi := &file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Configuration_HeaderValues) ProtoMessage() {}

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

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

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

var File_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto protoreflect.FileDescriptor

const file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDesc = "" +
	"\n" +
	"Pgithub.com/buildbarn/bb-storage/pkg/proto/configuration/http/client/client.proto\x12#buildbarn.configuration.http.client\x1aEgithub.com/buildbarn/bb-storage/pkg/proto/configuration/tls/tls.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x89\x03\n" +
	"\rConfiguration\x12B\n" +
	"\x03tls\x18\x01 \x01(\v20.buildbarn.configuration.tls.ClientConfigurationR\x03tls\x12\x1b\n" +
	"\tproxy_url\x18\x02 \x01(\tR\bproxyUrl\x12`\n" +
	"\vadd_headers\x18\x05 \x03(\v2?.buildbarn.configuration.http.client.Configuration.HeaderValuesR\n" +
	"addHeaders\x12#\n" +
	"\rdisable_http2\x18\x06 \x01(\bR\fdisableHttp2\x12P\n" +
	"\x06oauth2\x18\a \x01(\v28.buildbarn.configuration.http.client.OAuth2ConfigurationR\x06oauth2\x1a>\n" +
	"\fHeaderValues\x12\x16\n" +
	"\x06header\x18\x01 \x01(\tR\x06header\x12\x16\n" +
	"\x06values\x18\x02 \x03(\tR\x06values\"\xb5\x02\n" +
	"\x13OAuth2Configuration\x12V\n" +
	"\x1agoogle_default_credentials\x18\x01 \x01(\v2\x16.google.protobuf.EmptyH\x00R\x18googleDefaultCredentials\x120\n" +
	"\x13service_account_key\x18\x02 \x01(\tH\x00R\x11serviceAccountKey\x12m\n" +
	"\x12client_credentials\x18\x04 \x01(\v2<.buildbarn.configuration.http.client.OAuth2ClientCredentialsH\x00R\x11clientCredentials\x12\x16\n" +
	"\x06scopes\x18\x03 \x03(\tR\x06scopesB\r\n" +
	"\vcredentials\"\xde\x01\n" +
	"\x17OAuth2ClientCredentials\x12\x1b\n" +
	"\tclient_id\x18\x01 \x01(\tR\bclientId\x12#\n" +
	"\rclient_secret\x18\x02 \x01(\tR\fclientSecret\x12,\n" +
	"\x12token_endpoint_url\x18\x03 \x01(\tR\x10tokenEndpointUrl\x12S\n" +
	"\vhttp_client\x18\x04 \x01(\v22.buildbarn.configuration.http.client.ConfigurationR\n" +
	"httpClientBEZCgithub.com/buildbarn/bb-storage/pkg/proto/configuration/http/clientb\x06proto3"

var (
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescOnce sync.Once
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescData []byte
)

func file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescGZIP() []byte {
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescOnce.Do(func() {
		file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDesc), len(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDesc)))
	})
	return file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDescData
}

var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_goTypes = []any{
	(*Configuration)(nil),              // 0: buildbarn.configuration.http.client.Configuration
	(*OAuth2Configuration)(nil),        // 1: buildbarn.configuration.http.client.OAuth2Configuration
	(*OAuth2ClientCredentials)(nil),    // 2: buildbarn.configuration.http.client.OAuth2ClientCredentials
	(*Configuration_HeaderValues)(nil), // 3: buildbarn.configuration.http.client.Configuration.HeaderValues
	(*tls.ClientConfiguration)(nil),    // 4: buildbarn.configuration.tls.ClientConfiguration
	(*emptypb.Empty)(nil),              // 5: google.protobuf.Empty
}
var file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_depIdxs = []int32{
	4, // 0: buildbarn.configuration.http.client.Configuration.tls:type_name -> buildbarn.configuration.tls.ClientConfiguration
	3, // 1: buildbarn.configuration.http.client.Configuration.add_headers:type_name -> buildbarn.configuration.http.client.Configuration.HeaderValues
	1, // 2: buildbarn.configuration.http.client.Configuration.oauth2:type_name -> buildbarn.configuration.http.client.OAuth2Configuration
	5, // 3: buildbarn.configuration.http.client.OAuth2Configuration.google_default_credentials:type_name -> google.protobuf.Empty
	2, // 4: buildbarn.configuration.http.client.OAuth2Configuration.client_credentials:type_name -> buildbarn.configuration.http.client.OAuth2ClientCredentials
	0, // 5: buildbarn.configuration.http.client.OAuth2ClientCredentials.http_client:type_name -> buildbarn.configuration.http.client.Configuration
	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_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_init()
}
func file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_init() {
	if File_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto != nil {
		return
	}
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_msgTypes[1].OneofWrappers = []any{
		(*OAuth2Configuration_GoogleDefaultCredentials)(nil),
		(*OAuth2Configuration_ServiceAccountKey)(nil),
		(*OAuth2Configuration_ClientCredentials)(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_http_client_client_proto_rawDesc), len(file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_goTypes,
		DependencyIndexes: file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_depIdxs,
		MessageInfos:      file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_msgTypes,
	}.Build()
	File_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto = out.File
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_goTypes = nil
	file_github_com_buildbarn_bb_storage_pkg_proto_configuration_http_client_client_proto_depIdxs = nil
}
