// Configuration proto for RDS targets.
// Example:
// {
//   request {
//     resource_uri: "gcp://gce_instances/google.com:bbmc-stackdriver/*"
//   }
// }

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.7
// 	protoc        v5.27.5
// source: github.com/cloudprober/cloudprober/internal/rds/client/proto/config.proto

package proto

import (
	proto1 "github.com/cloudprober/cloudprober/common/oauth/proto"
	proto2 "github.com/cloudprober/cloudprober/common/tlsconfig/proto"
	proto "github.com/cloudprober/cloudprober/internal/rds/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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)
)

// ClientConf represents resource discovery service (RDS) based targets.
// Next tag: 6
type ClientConf struct {
	state         protoimpl.MessageState      `protogen:"open.v1"`
	ServerOptions *ClientConf_ServerOptions   `protobuf:"bytes,1,opt,name=server_options,json=serverOptions" json:"server_options,omitempty"`
	Request       *proto.ListResourcesRequest `protobuf:"bytes,2,req,name=request" json:"request,omitempty"`
	// How often targets should be evaluated. Any number less than or equal to 0
	// will result in no target caching (targets will be reevaluated on demand).
	// Note that individual target types may have their own caches implemented
	// (specifically GCE instances/forwarding rules). This does not impact those
	// caches.
	ReEvalSec     *int32 `protobuf:"varint,3,opt,name=re_eval_sec,json=reEvalSec,def=30" json:"re_eval_sec,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for ClientConf fields.
const (
	Default_ClientConf_ReEvalSec = int32(30)
)

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

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

func (*ClientConf) ProtoMessage() {}

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

func (x *ClientConf) GetServerOptions() *ClientConf_ServerOptions {
	if x != nil {
		return x.ServerOptions
	}
	return nil
}

func (x *ClientConf) GetRequest() *proto.ListResourcesRequest {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *ClientConf) GetReEvalSec() int32 {
	if x != nil && x.ReEvalSec != nil {
		return *x.ReEvalSec
	}
	return Default_ClientConf_ReEvalSec
}

type ClientConf_ServerOptions struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ServerAddress *string                `protobuf:"bytes,1,opt,name=server_address,json=serverAddress" json:"server_address,omitempty"`
	// Optional oauth config for authentication.
	OauthConfig *proto1.Config `protobuf:"bytes,2,opt,name=oauth_config,json=oauthConfig" json:"oauth_config,omitempty"`
	// TLS config, it can be used to:
	//   - Specify a CA cert for server cert verification:
	//     tls_config {
	//     ca_cert_file: "...."
	//     }
	//
	//   - Specify client's TLS cert and key:
	//     tls_config {
	//     tls_cert_file: "..."
	//     tls_key_file: "..."
	//     }
	TlsConfig     *proto2.TLSConfig `protobuf:"bytes,3,opt,name=tls_config,json=tlsConfig" json:"tls_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ClientConf_ServerOptions) ProtoMessage() {}

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

func (x *ClientConf_ServerOptions) GetServerAddress() string {
	if x != nil && x.ServerAddress != nil {
		return *x.ServerAddress
	}
	return ""
}

func (x *ClientConf_ServerOptions) GetOauthConfig() *proto1.Config {
	if x != nil {
		return x.OauthConfig
	}
	return nil
}

func (x *ClientConf_ServerOptions) GetTlsConfig() *proto2.TLSConfig {
	if x != nil {
		return x.TlsConfig
	}
	return nil
}

var File_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDesc = "" +
	"\n" +
	"Igithub.com/cloudprober/cloudprober/internal/rds/client/proto/config.proto\x12\x0fcloudprober.rds\x1aBgithub.com/cloudprober/cloudprober/common/oauth/proto/config.proto\x1aFgithub.com/cloudprober/cloudprober/common/tlsconfig/proto/config.proto\x1a?github.com/cloudprober/cloudprober/internal/rds/proto/rds.proto\"\xfb\x02\n" +
	"\n" +
	"ClientConf\x12P\n" +
	"\x0eserver_options\x18\x01 \x01(\v2).cloudprober.rds.ClientConf.ServerOptionsR\rserverOptions\x12?\n" +
	"\arequest\x18\x02 \x02(\v2%.cloudprober.rds.ListResourcesRequestR\arequest\x12\"\n" +
	"\vre_eval_sec\x18\x03 \x01(\x05:\x0230R\treEvalSec\x1a\xb5\x01\n" +
	"\rServerOptions\x12%\n" +
	"\x0eserver_address\x18\x01 \x01(\tR\rserverAddress\x12<\n" +
	"\foauth_config\x18\x02 \x01(\v2\x19.cloudprober.oauth.ConfigR\voauthConfig\x12?\n" +
	"\n" +
	"tls_config\x18\x03 \x01(\v2 .cloudprober.tlsconfig.TLSConfigR\ttlsConfigB>Z<github.com/cloudprober/cloudprober/internal/rds/client/proto"

var (
	file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_goTypes = []any{
	(*ClientConf)(nil),                 // 0: cloudprober.rds.ClientConf
	(*ClientConf_ServerOptions)(nil),   // 1: cloudprober.rds.ClientConf.ServerOptions
	(*proto.ListResourcesRequest)(nil), // 2: cloudprober.rds.ListResourcesRequest
	(*proto1.Config)(nil),              // 3: cloudprober.oauth.Config
	(*proto2.TLSConfig)(nil),           // 4: cloudprober.tlsconfig.TLSConfig
}
var file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_depIdxs = []int32{
	1, // 0: cloudprober.rds.ClientConf.server_options:type_name -> cloudprober.rds.ClientConf.ServerOptions
	2, // 1: cloudprober.rds.ClientConf.request:type_name -> cloudprober.rds.ListResourcesRequest
	3, // 2: cloudprober.rds.ClientConf.ServerOptions.oauth_config:type_name -> cloudprober.oauth.Config
	4, // 3: cloudprober.rds.ClientConf.ServerOptions.tls_config:type_name -> cloudprober.tlsconfig.TLSConfig
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_init() }
func file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_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_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_depIdxs,
		MessageInfos:      file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_internal_rds_client_proto_config_proto_depIdxs = nil
}
