// Provides all configuration necesary to list targets for a cloudprober probe.

// 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/targets/lameduck/proto/config.proto

package proto

import (
	proto "github.com/cloudprober/cloudprober/internal/rds/client/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)
)

type Options struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// How often to check for lame-ducked targets
	ReEvalSec *int32 `protobuf:"varint,1,opt,name=re_eval_sec,json=reEvalSec,def=10" json:"re_eval_sec,omitempty"`
	// Runtime config project. If running on GCE, this defaults to the project
	// containing the VM.
	RuntimeconfigProject *string `protobuf:"bytes,2,opt,name=runtimeconfig_project,json=runtimeconfigProject" json:"runtimeconfig_project,omitempty"`
	// Lame duck targets runtime config name. An operator will create a variable
	// here to mark a target as lame-ducked.
	RuntimeconfigName *string `protobuf:"bytes,3,opt,name=runtimeconfig_name,json=runtimeconfigName,def=lame-duck-targets" json:"runtimeconfig_name,omitempty"`
	// Lame duck targets pubsub topic name. An operator will create a message
	// here to mark a target as lame-ducked.
	PubsubTopic *string `protobuf:"bytes,7,opt,name=pubsub_topic,json=pubsubTopic" json:"pubsub_topic,omitempty"`
	// Lame duck expiration time. We ignore variables (targets) that have been
	// updated more than these many seconds ago. This is a safety mechanism for
	// failing to cleanup. Also, the idea is that if a target has actually
	// disappeared, automatic targets expansion will take care of that some time
	// during this expiration period.
	ExpirationSec *int32 `protobuf:"varint,4,opt,name=expiration_sec,json=expirationSec,def=300" json:"expiration_sec,omitempty"`
	// Use an RDS client to get lame-duck-targets.
	// This option is always true now and will be removed after v0.10.7.
	//
	// Deprecated: Marked as deprecated in github.com/cloudprober/cloudprober/targets/lameduck/proto/config.proto.
	UseRds *bool `protobuf:"varint,5,opt,name=use_rds,json=useRds" json:"use_rds,omitempty"`
	// RDS server options, for example:
	//
	//	rds_server_options {
	//	  server_address: "rds-server.xyz:9314"
	//	  oauth_config: {
	//	    ...
	//	  }
	RdsServerOptions *proto.ClientConf_ServerOptions `protobuf:"bytes,6,opt,name=rds_server_options,json=rdsServerOptions" json:"rds_server_options,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

// Default values for Options fields.
const (
	Default_Options_ReEvalSec         = int32(10)
	Default_Options_RuntimeconfigName = string("lame-duck-targets")
	Default_Options_ExpirationSec     = int32(300)
)

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

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

func (*Options) ProtoMessage() {}

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

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

func (x *Options) GetRuntimeconfigProject() string {
	if x != nil && x.RuntimeconfigProject != nil {
		return *x.RuntimeconfigProject
	}
	return ""
}

func (x *Options) GetRuntimeconfigName() string {
	if x != nil && x.RuntimeconfigName != nil {
		return *x.RuntimeconfigName
	}
	return Default_Options_RuntimeconfigName
}

func (x *Options) GetPubsubTopic() string {
	if x != nil && x.PubsubTopic != nil {
		return *x.PubsubTopic
	}
	return ""
}

func (x *Options) GetExpirationSec() int32 {
	if x != nil && x.ExpirationSec != nil {
		return *x.ExpirationSec
	}
	return Default_Options_ExpirationSec
}

// Deprecated: Marked as deprecated in github.com/cloudprober/cloudprober/targets/lameduck/proto/config.proto.
func (x *Options) GetUseRds() bool {
	if x != nil && x.UseRds != nil {
		return *x.UseRds
	}
	return false
}

func (x *Options) GetRdsServerOptions() *proto.ClientConf_ServerOptions {
	if x != nil {
		return x.RdsServerOptions
	}
	return nil
}

var File_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDesc = "" +
	"\n" +
	"Fgithub.com/cloudprober/cloudprober/targets/lameduck/proto/config.proto\x12\x1ccloudprober.targets.lameduck\x1aIgithub.com/cloudprober/cloudprober/internal/rds/client/proto/config.proto\"\xe9\x02\n" +
	"\aOptions\x12\"\n" +
	"\vre_eval_sec\x18\x01 \x01(\x05:\x0210R\treEvalSec\x123\n" +
	"\x15runtimeconfig_project\x18\x02 \x01(\tR\x14runtimeconfigProject\x12@\n" +
	"\x12runtimeconfig_name\x18\x03 \x01(\t:\x11lame-duck-targetsR\x11runtimeconfigName\x12!\n" +
	"\fpubsub_topic\x18\a \x01(\tR\vpubsubTopic\x12*\n" +
	"\x0eexpiration_sec\x18\x04 \x01(\x05:\x03300R\rexpirationSec\x12\x1b\n" +
	"\ause_rds\x18\x05 \x01(\bB\x02\x18\x01R\x06useRds\x12W\n" +
	"\x12rds_server_options\x18\x06 \x01(\v2).cloudprober.rds.ClientConf.ServerOptionsR\x10rdsServerOptionsB;Z9github.com/cloudprober/cloudprober/targets/lameduck/proto"

var (
	file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_goTypes = []any{
	(*Options)(nil),                        // 0: cloudprober.targets.lameduck.Options
	(*proto.ClientConf_ServerOptions)(nil), // 1: cloudprober.rds.ClientConf.ServerOptions
}
var file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_depIdxs = []int32{
	1, // 0: cloudprober.targets.lameduck.Options.rds_server_options:type_name -> cloudprober.rds.ClientConf.ServerOptions
	1, // [1:1] is the sub-list for method output_type
	1, // [1:1] is the sub-list for method input_type
	1, // [1:1] is the sub-list for extension type_name
	1, // [1:1] is the sub-list for extension extendee
	0, // [0:1] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_init() }
func file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_targets_lameduck_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_targets_lameduck_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_depIdxs,
		MessageInfos:      file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_targets_lameduck_proto_config_proto_depIdxs = nil
}
