// Provides all configuration necessary 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/proto/targets.proto

package proto

import (
	proto "github.com/cloudprober/cloudprober/internal/rds/client/proto"
	proto1 "github.com/cloudprober/cloudprober/internal/rds/proto"
	proto2 "github.com/cloudprober/cloudprober/targets/endpoint/proto"
	proto4 "github.com/cloudprober/cloudprober/targets/file/proto"
	proto3 "github.com/cloudprober/cloudprober/targets/gce/proto"
	proto5 "github.com/cloudprober/cloudprober/targets/lameduck/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 RDSTargets struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// RDS server options, for example:
	//
	//	rds_server_options {
	//	  server_address: "rds-server.xyz:9314"
	//	  oauth_config: {
	//	    ...
	//	  }
	//	}
	RdsServerOptions *proto.ClientConf_ServerOptions `protobuf:"bytes,1,opt,name=rds_server_options,json=rdsServerOptions" json:"rds_server_options,omitempty"`
	// Resource path specifies the resources to return. Resources paths have the
	// following format:
	// <resource_provider>://<resource_type>/<additional_params>
	//
	// Examples:
	// For GCE instances in projectA: "gcp://gce_instances/<projectA>"
	// Kubernetes Pods : "k8s://pods"
	ResourcePath *string `protobuf:"bytes,2,opt,name=resource_path,json=resourcePath" json:"resource_path,omitempty"`
	// Filters to filter resources by.
	Filter []*proto1.Filter `protobuf:"bytes,3,rep,name=filter" json:"filter,omitempty"`
	// IP config to specify the IP address to pick for a resource.
	IpConfig      *proto1.IPConfig `protobuf:"bytes,4,opt,name=ip_config,json=ipConfig" json:"ip_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RDSTargets) ProtoMessage() {}

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

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

func (x *RDSTargets) GetResourcePath() string {
	if x != nil && x.ResourcePath != nil {
		return *x.ResourcePath
	}
	return ""
}

func (x *RDSTargets) GetFilter() []*proto1.Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *RDSTargets) GetIpConfig() *proto1.IPConfig {
	if x != nil {
		return x.IpConfig
	}
	return nil
}

type K8STargets struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Targets namespace. If this field is unset, we select resources from all
	// namespaces.
	Namespace *string `protobuf:"bytes,1,opt,name=namespace" json:"namespace,omitempty"`
	// labelSelector uses the same format as kubernetes API calls.
	// Example:
	//
	//	labelSelector: "k8s-app"       # label k8s-app exists
	//	labelSelector: "role=frontend" # label role=frontend
	//	labelSelector: "!canary"       # canary label doesn't exist
	LabelSelector []string `protobuf:"bytes,2,rep,name=labelSelector" json:"labelSelector,omitempty"`
	// Which resources to target. If value is not empty (""), we use it as a
	// regex for resource names.
	// Example:
	//
	//	services: ""             // All services.
	//	endpoints: ".*-service"  // Endpoints ending with "service".
	//
	// Types that are valid to be assigned to Resources:
	//
	//	*K8STargets_Services
	//	*K8STargets_Endpoints
	//	*K8STargets_Ingresses
	//	*K8STargets_Pods
	Resources isK8STargets_Resources `protobuf_oneof:"resources"`
	// portFilter can be used to filter resources by port name. This is useful
	// for resources like endpoints and services, where each resource may have
	// multiple ports, and we may hit just a subset of those ports. portFilter
	// takes a regex -- we apply it on port names if port name is available,
	// otherwise we apply it port numbers.
	// Example: ".*-dns", "metrics", ".*-service", etc.
	PortFilter *string `protobuf:"bytes,10,opt,name=portFilter" json:"portFilter,omitempty"`
	// How often to re-check k8s API servers. Note this field will be irrelevant
	// when (and if) we move to the watch API. Default is 30s.
	ReEvalSec        *int32                          `protobuf:"varint,19,opt,name=re_eval_sec,json=reEvalSec" json:"re_eval_sec,omitempty"`
	RdsServerOptions *proto.ClientConf_ServerOptions `protobuf:"bytes,20,opt,name=rds_server_options,json=rdsServerOptions" json:"rds_server_options,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*K8STargets) ProtoMessage() {}

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

func (x *K8STargets) GetNamespace() string {
	if x != nil && x.Namespace != nil {
		return *x.Namespace
	}
	return ""
}

func (x *K8STargets) GetLabelSelector() []string {
	if x != nil {
		return x.LabelSelector
	}
	return nil
}

func (x *K8STargets) GetResources() isK8STargets_Resources {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *K8STargets) GetServices() string {
	if x != nil {
		if x, ok := x.Resources.(*K8STargets_Services); ok {
			return x.Services
		}
	}
	return ""
}

func (x *K8STargets) GetEndpoints() string {
	if x != nil {
		if x, ok := x.Resources.(*K8STargets_Endpoints); ok {
			return x.Endpoints
		}
	}
	return ""
}

func (x *K8STargets) GetIngresses() string {
	if x != nil {
		if x, ok := x.Resources.(*K8STargets_Ingresses); ok {
			return x.Ingresses
		}
	}
	return ""
}

func (x *K8STargets) GetPods() string {
	if x != nil {
		if x, ok := x.Resources.(*K8STargets_Pods); ok {
			return x.Pods
		}
	}
	return ""
}

func (x *K8STargets) GetPortFilter() string {
	if x != nil && x.PortFilter != nil {
		return *x.PortFilter
	}
	return ""
}

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

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

type isK8STargets_Resources interface {
	isK8STargets_Resources()
}

type K8STargets_Services struct {
	Services string `protobuf:"bytes,3,opt,name=services,oneof"`
}

type K8STargets_Endpoints struct {
	Endpoints string `protobuf:"bytes,4,opt,name=endpoints,oneof"`
}

type K8STargets_Ingresses struct {
	Ingresses string `protobuf:"bytes,5,opt,name=ingresses,oneof"`
}

type K8STargets_Pods struct {
	Pods string `protobuf:"bytes,6,opt,name=pods,oneof"`
}

func (*K8STargets_Services) isK8STargets_Resources() {}

func (*K8STargets_Endpoints) isK8STargets_Resources() {}

func (*K8STargets_Ingresses) isK8STargets_Resources() {}

func (*K8STargets_Pods) isK8STargets_Resources() {}

type DNSOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// DNS server to use for DNS resolution, instead of system's default. Server
	// can be specified in the following format: [network://]ip[:port]
	// where network is one of udp, tcp, tcp4, tcp6, udp4, udp6, tls.
	// Example:
	//   - "1.1.1.1"           // Use default network and port (53)
	//
	// - "tcp://1.1.1.1"      // Use tcp network and default port (53)
	// - "tcp://1.1.1.1:513   // Use tcp network and port 513
	// - "tls://8.8.8.8"     // Use tls network and default dot port (853)
	// - "tls://8.8.8.8:8443" // Use tls network and port 8443
	Server *string `protobuf:"bytes,1,opt,name=server" json:"server,omitempty"`
	// DNS TTL (time to live). This controls how often backend DNS server will be
	// queried.
	TtlSec *int32 `protobuf:"varint,2,opt,name=ttl_sec,json=ttlSec,def=300" json:"ttl_sec,omitempty"`
	// This option controls for how long cached IP can be used in case of resolve
	// errors. Default value for this is set to ttl_sec. It should never be
	// lower than dns_ttl_sec.
	MaxCacheAgeSec *int32 `protobuf:"varint,3,opt,name=max_cache_age_sec,json=maxCacheAgeSec" json:"max_cache_age_sec,omitempty"`
	// Backend timeout in milliseconds. This option controls how long we'll wait
	// for the backend DNS server to respond. Note that DNS resolution happens
	// asynchronously, so DNS resolve time should never really affect the probe.
	// This timeout affects how soon DNS resolution is retried, if it's hanging.
	BackendTimeoutMsec *int32 `protobuf:"varint,4,opt,name=backend_timeout_msec,json=backendTimeoutMsec,def=5000" json:"backend_timeout_msec,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

// Default values for DNSOptions fields.
const (
	Default_DNSOptions_TtlSec             = int32(300)
	Default_DNSOptions_BackendTimeoutMsec = int32(5000)
)

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

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

func (*DNSOptions) ProtoMessage() {}

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

func (x *DNSOptions) GetServer() string {
	if x != nil && x.Server != nil {
		return *x.Server
	}
	return ""
}

func (x *DNSOptions) GetTtlSec() int32 {
	if x != nil && x.TtlSec != nil {
		return *x.TtlSec
	}
	return Default_DNSOptions_TtlSec
}

func (x *DNSOptions) GetMaxCacheAgeSec() int32 {
	if x != nil && x.MaxCacheAgeSec != nil {
		return *x.MaxCacheAgeSec
	}
	return 0
}

func (x *DNSOptions) GetBackendTimeoutMsec() int32 {
	if x != nil && x.BackendTimeoutMsec != nil {
		return *x.BackendTimeoutMsec
	}
	return Default_DNSOptions_BackendTimeoutMsec
}

type TargetsDef struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Type:
	//
	//	*TargetsDef_HostNames
	//	*TargetsDef_SharedTargets
	//	*TargetsDef_GceTargets
	//	*TargetsDef_RdsTargets
	//	*TargetsDef_FileTargets
	//	*TargetsDef_K8S
	//	*TargetsDef_DummyTargets
	Type isTargetsDef_Type `protobuf_oneof:"type"`
	// Static endpoints. These endpoints are merged with the resources returned
	// by the targets type above.
	// Example:
	//
	//	endpoint {
	//	  name: "service-gtwy-1"
	//	  ip: "10.1.18.121"
	//	  port: 8080
	//	  labels {
	//	    key: "service"
	//	    value: "products-service"
	//	  }
	//	}
	//	endpoint {
	//	  name: "frontend-url1"
	//	  url: "https://frontend.example.com/url1"
	//	}
	Endpoint []*proto2.Endpoint `protobuf:"bytes,23,rep,name=endpoint" json:"endpoint,omitempty"`
	// Regex to apply on the targets.
	Regex *string `protobuf:"bytes,21,opt,name=regex" json:"regex,omitempty"`
	// Exclude lameducks. Lameduck targets can be set through RTC (realtime
	// configurator) service. This functionality works only if lame_duck_options
	// are specified.
	ExcludeLameducks *bool `protobuf:"varint,22,opt,name=exclude_lameducks,json=excludeLameducks,def=1" json:"exclude_lameducks,omitempty"`
	// Options to control DNS resolution behavior if using Cloudprober's DNS
	// resolver, which get triggered only if you're setting `resolve_first` probe
	// setting to true.
	DnsOptions *DNSOptions `protobuf:"bytes,30,opt,name=dns_options,json=dnsOptions" json:"dns_options,omitempty"`
	// Provide a dns resolver override instead of using the default dns resolver.
	// Deprecated: This option is now deprecated, please use dns_options instead.
	DnsServer       *string `protobuf:"bytes,31,opt,name=dns_server,json=dnsServer" json:"dns_server,omitempty"`
	extensionFields protoimpl.ExtensionFields
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

// Default values for TargetsDef fields.
const (
	Default_TargetsDef_ExcludeLameducks = bool(true)
)

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

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

func (*TargetsDef) ProtoMessage() {}

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

func (x *TargetsDef) GetType() isTargetsDef_Type {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *TargetsDef) GetHostNames() string {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_HostNames); ok {
			return x.HostNames
		}
	}
	return ""
}

func (x *TargetsDef) GetSharedTargets() string {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_SharedTargets); ok {
			return x.SharedTargets
		}
	}
	return ""
}

func (x *TargetsDef) GetGceTargets() *proto3.TargetsConf {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_GceTargets); ok {
			return x.GceTargets
		}
	}
	return nil
}

func (x *TargetsDef) GetRdsTargets() *RDSTargets {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_RdsTargets); ok {
			return x.RdsTargets
		}
	}
	return nil
}

func (x *TargetsDef) GetFileTargets() *proto4.TargetsConf {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_FileTargets); ok {
			return x.FileTargets
		}
	}
	return nil
}

func (x *TargetsDef) GetK8S() *K8STargets {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_K8S); ok {
			return x.K8S
		}
	}
	return nil
}

func (x *TargetsDef) GetDummyTargets() *DummyTargets {
	if x != nil {
		if x, ok := x.Type.(*TargetsDef_DummyTargets); ok {
			return x.DummyTargets
		}
	}
	return nil
}

func (x *TargetsDef) GetEndpoint() []*proto2.Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *TargetsDef) GetRegex() string {
	if x != nil && x.Regex != nil {
		return *x.Regex
	}
	return ""
}

func (x *TargetsDef) GetExcludeLameducks() bool {
	if x != nil && x.ExcludeLameducks != nil {
		return *x.ExcludeLameducks
	}
	return Default_TargetsDef_ExcludeLameducks
}

func (x *TargetsDef) GetDnsOptions() *DNSOptions {
	if x != nil {
		return x.DnsOptions
	}
	return nil
}

func (x *TargetsDef) GetDnsServer() string {
	if x != nil && x.DnsServer != nil {
		return *x.DnsServer
	}
	return ""
}

type isTargetsDef_Type interface {
	isTargetsDef_Type()
}

type TargetsDef_HostNames struct {
	// Static host names, for example:
	// host_name: "www.google.com,8.8.8.8,en.wikipedia.org"
	HostNames string `protobuf:"bytes,1,opt,name=host_names,json=hostNames,oneof"`
}

type TargetsDef_SharedTargets struct {
	// Shared targets are accessed through their names.
	// Example:
	//
	//	shared_targets {
	//	  name:"backend-vms"
	//	  targets {
	//	    rds_targets {
	//	      ..
	//	    }
	//	  }
	//	}
	//
	//	probe {
	//	  targets {
	//	    shared_targets: "backend-vms"
	//	  }
	//	}
	SharedTargets string `protobuf:"bytes,5,opt,name=shared_targets,json=sharedTargets,oneof"`
}

type TargetsDef_GceTargets struct {
	// GCE targets: instances and forwarding_rules, for example:
	//
	//	gce_targets {
	//	  instances {}
	//	}
	GceTargets *proto3.TargetsConf `protobuf:"bytes,2,opt,name=gce_targets,json=gceTargets,oneof"`
}

type TargetsDef_RdsTargets struct {
	// ResourceDiscovery service based targets.
	// Example:
	//
	//	rds_targets {
	//	  resource_path: "gcp://gce_instances/{{.project}}"
	//	  filter {
	//	    key: "name"
	//	    value: ".*backend.*"
	//	  }
	//	}
	RdsTargets *RDSTargets `protobuf:"bytes,3,opt,name=rds_targets,json=rdsTargets,oneof"`
}

type TargetsDef_FileTargets struct {
	// File based targets.
	// Example:
	//
	//	file_targets {
	//	  file_path: "/var/run/cloudprober/vips.textpb"
	//	}
	FileTargets *proto4.TargetsConf `protobuf:"bytes,4,opt,name=file_targets,json=fileTargets,oneof"`
}

type TargetsDef_K8S struct {
	// K8s targets.
	// Note: k8s targets are still in the experimental phase. Their config API
	// may change in the future.
	// Example:
	//
	//	k8s {
	//	  namespace: "qa"
	//	  labelSelector: "k8s-app"
	//	  services: ""
	//	}
	K8S *K8STargets `protobuf:"bytes,6,opt,name=k8s,oneof"`
}

type TargetsDef_DummyTargets struct {
	// Empty targets to meet the probe definition requirement where there are
	// actually no targets, for example in case of some external probes.
	DummyTargets *DummyTargets `protobuf:"bytes,20,opt,name=dummy_targets,json=dummyTargets,oneof"`
}

func (*TargetsDef_HostNames) isTargetsDef_Type() {}

func (*TargetsDef_SharedTargets) isTargetsDef_Type() {}

func (*TargetsDef_GceTargets) isTargetsDef_Type() {}

func (*TargetsDef_RdsTargets) isTargetsDef_Type() {}

func (*TargetsDef_FileTargets) isTargetsDef_Type() {}

func (*TargetsDef_K8S) isTargetsDef_Type() {}

func (*TargetsDef_DummyTargets) isTargetsDef_Type() {}

// DummyTargets represent empty targets, which are useful for external
// probes that do not have any "proper" targets.  Such as ilbprober.
type DummyTargets struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DummyTargets) ProtoMessage() {}

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

// Global targets options. These options are independent of the per-probe
// targets which are defined by the "Targets" type above.
//
// Currently these options are used only for GCE targets to control things like
// how often to re-evaluate the targets and whether to check for lame ducks or
// not.
type GlobalTargetsOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// RDS server address
	// Deprecated: This option is now deprecated, please use rds_server_options
	// instead.
	//
	// Deprecated: Marked as deprecated in github.com/cloudprober/cloudprober/targets/proto/targets.proto.
	RdsServerAddress *string `protobuf:"bytes,3,opt,name=rds_server_address,json=rdsServerAddress" json:"rds_server_address,omitempty"`
	// RDS server options, for example:
	//
	//	rds_server_options {
	//	  server_address: "rds-server.xyz:9314"
	//	  oauth_config: {
	//	    ...
	//	  }
	//	}
	RdsServerOptions *proto.ClientConf_ServerOptions `protobuf:"bytes,4,opt,name=rds_server_options,json=rdsServerOptions" json:"rds_server_options,omitempty"`
	// GCE targets options.
	GlobalGceTargetsOptions *proto3.GlobalOptions `protobuf:"bytes,1,opt,name=global_gce_targets_options,json=globalGceTargetsOptions" json:"global_gce_targets_options,omitempty"`
	// Lame duck options. If provided, targets module checks for the lame duck
	// targets and removes them from the targets list.
	LameDuckOptions *proto5.Options `protobuf:"bytes,2,opt,name=lame_duck_options,json=lameDuckOptions" json:"lame_duck_options,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*GlobalTargetsOptions) ProtoMessage() {}

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

// Deprecated: Marked as deprecated in github.com/cloudprober/cloudprober/targets/proto/targets.proto.
func (x *GlobalTargetsOptions) GetRdsServerAddress() string {
	if x != nil && x.RdsServerAddress != nil {
		return *x.RdsServerAddress
	}
	return ""
}

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

func (x *GlobalTargetsOptions) GetGlobalGceTargetsOptions() *proto3.GlobalOptions {
	if x != nil {
		return x.GlobalGceTargetsOptions
	}
	return nil
}

func (x *GlobalTargetsOptions) GetLameDuckOptions() *proto5.Options {
	if x != nil {
		return x.LameDuckOptions
	}
	return nil
}

var File_github_com_cloudprober_cloudprober_targets_proto_targets_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDesc = "" +
	"\n" +
	">github.com/cloudprober/cloudprober/targets/proto/targets.proto\x12\x13cloudprober.targets\x1aIgithub.com/cloudprober/cloudprober/internal/rds/client/proto/config.proto\x1a?github.com/cloudprober/cloudprober/internal/rds/proto/rds.proto\x1aBgithub.com/cloudprober/cloudprober/targets/file/proto/config.proto\x1aAgithub.com/cloudprober/cloudprober/targets/gce/proto/config.proto\x1aFgithub.com/cloudprober/cloudprober/targets/lameduck/proto/config.proto\x1aHgithub.com/cloudprober/cloudprober/targets/endpoint/proto/endpoint.proto\"\xf3\x01\n" +
	"\n" +
	"RDSTargets\x12W\n" +
	"\x12rds_server_options\x18\x01 \x01(\v2).cloudprober.rds.ClientConf.ServerOptionsR\x10rdsServerOptions\x12#\n" +
	"\rresource_path\x18\x02 \x01(\tR\fresourcePath\x12/\n" +
	"\x06filter\x18\x03 \x03(\v2\x17.cloudprober.rds.FilterR\x06filter\x126\n" +
	"\tip_config\x18\x04 \x01(\v2\x19.cloudprober.rds.IPConfigR\bipConfig\"\xea\x02\n" +
	"\n" +
	"K8sTargets\x12\x1c\n" +
	"\tnamespace\x18\x01 \x01(\tR\tnamespace\x12$\n" +
	"\rlabelSelector\x18\x02 \x03(\tR\rlabelSelector\x12\x1c\n" +
	"\bservices\x18\x03 \x01(\tH\x00R\bservices\x12\x1e\n" +
	"\tendpoints\x18\x04 \x01(\tH\x00R\tendpoints\x12\x1e\n" +
	"\tingresses\x18\x05 \x01(\tH\x00R\tingresses\x12\x14\n" +
	"\x04pods\x18\x06 \x01(\tH\x00R\x04pods\x12\x1e\n" +
	"\n" +
	"portFilter\x18\n" +
	" \x01(\tR\n" +
	"portFilter\x12\x1e\n" +
	"\vre_eval_sec\x18\x13 \x01(\x05R\treEvalSec\x12W\n" +
	"\x12rds_server_options\x18\x14 \x01(\v2).cloudprober.rds.ClientConf.ServerOptionsR\x10rdsServerOptionsB\v\n" +
	"\tresources\"\xa5\x01\n" +
	"\n" +
	"DNSOptions\x12\x16\n" +
	"\x06server\x18\x01 \x01(\tR\x06server\x12\x1c\n" +
	"\attl_sec\x18\x02 \x01(\x05:\x03300R\x06ttlSec\x12)\n" +
	"\x11max_cache_age_sec\x18\x03 \x01(\x05R\x0emaxCacheAgeSec\x126\n" +
	"\x14backend_timeout_msec\x18\x04 \x01(\x05:\x045000R\x12backendTimeoutMsec\"\xa6\x05\n" +
	"\n" +
	"TargetsDef\x12\x1f\n" +
	"\n" +
	"host_names\x18\x01 \x01(\tH\x00R\thostNames\x12'\n" +
	"\x0eshared_targets\x18\x05 \x01(\tH\x00R\rsharedTargets\x12G\n" +
	"\vgce_targets\x18\x02 \x01(\v2$.cloudprober.targets.gce.TargetsConfH\x00R\n" +
	"gceTargets\x12B\n" +
	"\vrds_targets\x18\x03 \x01(\v2\x1f.cloudprober.targets.RDSTargetsH\x00R\n" +
	"rdsTargets\x12J\n" +
	"\ffile_targets\x18\x04 \x01(\v2%.cloudprober.targets.file.TargetsConfH\x00R\vfileTargets\x123\n" +
	"\x03k8s\x18\x06 \x01(\v2\x1f.cloudprober.targets.K8sTargetsH\x00R\x03k8s\x12H\n" +
	"\rdummy_targets\x18\x14 \x01(\v2!.cloudprober.targets.DummyTargetsH\x00R\fdummyTargets\x129\n" +
	"\bendpoint\x18\x17 \x03(\v2\x1d.cloudprober.targets.EndpointR\bendpoint\x12\x14\n" +
	"\x05regex\x18\x15 \x01(\tR\x05regex\x121\n" +
	"\x11exclude_lameducks\x18\x16 \x01(\b:\x04trueR\x10excludeLameducks\x12@\n" +
	"\vdns_options\x18\x1e \x01(\v2\x1f.cloudprober.targets.DNSOptionsR\n" +
	"dnsOptions\x12\x1d\n" +
	"\n" +
	"dns_server\x18\x1f \x01(\tR\tdnsServer*\t\b\xc8\x01\x10\x80\x80\x80\x80\x02B\x06\n" +
	"\x04type\"\x0e\n" +
	"\fDummyTargets\"\xd9\x02\n" +
	"\x14GlobalTargetsOptions\x120\n" +
	"\x12rds_server_address\x18\x03 \x01(\tB\x02\x18\x01R\x10rdsServerAddress\x12W\n" +
	"\x12rds_server_options\x18\x04 \x01(\v2).cloudprober.rds.ClientConf.ServerOptionsR\x10rdsServerOptions\x12c\n" +
	"\x1aglobal_gce_targets_options\x18\x01 \x01(\v2&.cloudprober.targets.gce.GlobalOptionsR\x17globalGceTargetsOptions\x12Q\n" +
	"\x11lame_duck_options\x18\x02 \x01(\v2%.cloudprober.targets.lameduck.OptionsR\x0flameDuckOptionsB2Z0github.com/cloudprober/cloudprober/targets/proto"

var (
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_goTypes = []any{
	(*RDSTargets)(nil),                     // 0: cloudprober.targets.RDSTargets
	(*K8STargets)(nil),                     // 1: cloudprober.targets.K8sTargets
	(*DNSOptions)(nil),                     // 2: cloudprober.targets.DNSOptions
	(*TargetsDef)(nil),                     // 3: cloudprober.targets.TargetsDef
	(*DummyTargets)(nil),                   // 4: cloudprober.targets.DummyTargets
	(*GlobalTargetsOptions)(nil),           // 5: cloudprober.targets.GlobalTargetsOptions
	(*proto.ClientConf_ServerOptions)(nil), // 6: cloudprober.rds.ClientConf.ServerOptions
	(*proto1.Filter)(nil),                  // 7: cloudprober.rds.Filter
	(*proto1.IPConfig)(nil),                // 8: cloudprober.rds.IPConfig
	(*proto3.TargetsConf)(nil),             // 9: cloudprober.targets.gce.TargetsConf
	(*proto4.TargetsConf)(nil),             // 10: cloudprober.targets.file.TargetsConf
	(*proto2.Endpoint)(nil),                // 11: cloudprober.targets.Endpoint
	(*proto3.GlobalOptions)(nil),           // 12: cloudprober.targets.gce.GlobalOptions
	(*proto5.Options)(nil),                 // 13: cloudprober.targets.lameduck.Options
}
var file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_depIdxs = []int32{
	6,  // 0: cloudprober.targets.RDSTargets.rds_server_options:type_name -> cloudprober.rds.ClientConf.ServerOptions
	7,  // 1: cloudprober.targets.RDSTargets.filter:type_name -> cloudprober.rds.Filter
	8,  // 2: cloudprober.targets.RDSTargets.ip_config:type_name -> cloudprober.rds.IPConfig
	6,  // 3: cloudprober.targets.K8sTargets.rds_server_options:type_name -> cloudprober.rds.ClientConf.ServerOptions
	9,  // 4: cloudprober.targets.TargetsDef.gce_targets:type_name -> cloudprober.targets.gce.TargetsConf
	0,  // 5: cloudprober.targets.TargetsDef.rds_targets:type_name -> cloudprober.targets.RDSTargets
	10, // 6: cloudprober.targets.TargetsDef.file_targets:type_name -> cloudprober.targets.file.TargetsConf
	1,  // 7: cloudprober.targets.TargetsDef.k8s:type_name -> cloudprober.targets.K8sTargets
	4,  // 8: cloudprober.targets.TargetsDef.dummy_targets:type_name -> cloudprober.targets.DummyTargets
	11, // 9: cloudprober.targets.TargetsDef.endpoint:type_name -> cloudprober.targets.Endpoint
	2,  // 10: cloudprober.targets.TargetsDef.dns_options:type_name -> cloudprober.targets.DNSOptions
	6,  // 11: cloudprober.targets.GlobalTargetsOptions.rds_server_options:type_name -> cloudprober.rds.ClientConf.ServerOptions
	12, // 12: cloudprober.targets.GlobalTargetsOptions.global_gce_targets_options:type_name -> cloudprober.targets.gce.GlobalOptions
	13, // 13: cloudprober.targets.GlobalTargetsOptions.lame_duck_options:type_name -> cloudprober.targets.lameduck.Options
	14, // [14:14] is the sub-list for method output_type
	14, // [14:14] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_init() }
func file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_init() {
	if File_github_com_cloudprober_cloudprober_targets_proto_targets_proto != nil {
		return
	}
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_msgTypes[1].OneofWrappers = []any{
		(*K8STargets_Services)(nil),
		(*K8STargets_Endpoints)(nil),
		(*K8STargets_Ingresses)(nil),
		(*K8STargets_Pods)(nil),
	}
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_msgTypes[3].OneofWrappers = []any{
		(*TargetsDef_HostNames)(nil),
		(*TargetsDef_SharedTargets)(nil),
		(*TargetsDef_GceTargets)(nil),
		(*TargetsDef_RdsTargets)(nil),
		(*TargetsDef_FileTargets)(nil),
		(*TargetsDef_K8S)(nil),
		(*TargetsDef_DummyTargets)(nil),
	}
	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_proto_targets_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_depIdxs,
		MessageInfos:      file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_targets_proto_targets_proto = out.File
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_targets_proto_targets_proto_depIdxs = nil
}
