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

package proto

import (
	proto3 "github.com/cloudprober/cloudprober/internal/alerting/proto"
	proto2 "github.com/cloudprober/cloudprober/internal/validators/proto"
	proto1 "github.com/cloudprober/cloudprober/metrics/proto"
	proto12 "github.com/cloudprober/cloudprober/probes/browser/proto"
	proto6 "github.com/cloudprober/cloudprober/probes/dns/proto"
	proto7 "github.com/cloudprober/cloudprober/probes/external/proto"
	proto10 "github.com/cloudprober/cloudprober/probes/grpc/proto"
	proto5 "github.com/cloudprober/cloudprober/probes/http/proto"
	proto4 "github.com/cloudprober/cloudprober/probes/ping/proto"
	proto11 "github.com/cloudprober/cloudprober/probes/tcp/proto"
	proto8 "github.com/cloudprober/cloudprober/probes/udp/proto"
	proto9 "github.com/cloudprober/cloudprober/probes/udplistener/proto"
	proto "github.com/cloudprober/cloudprober/targets/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 ProbeDef_Type int32

const (
	ProbeDef_PING         ProbeDef_Type = 0
	ProbeDef_HTTP         ProbeDef_Type = 1
	ProbeDef_DNS          ProbeDef_Type = 2
	ProbeDef_EXTERNAL     ProbeDef_Type = 3
	ProbeDef_UDP          ProbeDef_Type = 4
	ProbeDef_UDP_LISTENER ProbeDef_Type = 5
	ProbeDef_GRPC         ProbeDef_Type = 6
	ProbeDef_TCP          ProbeDef_Type = 7
	ProbeDef_BROWSER      ProbeDef_Type = 8
	// One of the extension probe types. See "extensions" below for more
	// details.
	ProbeDef_EXTENSION ProbeDef_Type = 98
	// USER_DEFINED probe type is for a one off probe that you want to compile
	// into cloudprober, but you don't expect it to be reused. If you expect
	// it to be reused, you should consider adding it using the extensions
	// mechanism.
	ProbeDef_USER_DEFINED ProbeDef_Type = 99
)

// Enum value maps for ProbeDef_Type.
var (
	ProbeDef_Type_name = map[int32]string{
		0:  "PING",
		1:  "HTTP",
		2:  "DNS",
		3:  "EXTERNAL",
		4:  "UDP",
		5:  "UDP_LISTENER",
		6:  "GRPC",
		7:  "TCP",
		8:  "BROWSER",
		98: "EXTENSION",
		99: "USER_DEFINED",
	}
	ProbeDef_Type_value = map[string]int32{
		"PING":         0,
		"HTTP":         1,
		"DNS":          2,
		"EXTERNAL":     3,
		"UDP":          4,
		"UDP_LISTENER": 5,
		"GRPC":         6,
		"TCP":          7,
		"BROWSER":      8,
		"EXTENSION":    98,
		"USER_DEFINED": 99,
	}
)

func (x ProbeDef_Type) Enum() *ProbeDef_Type {
	p := new(ProbeDef_Type)
	*p = x
	return p
}

func (x ProbeDef_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ProbeDef_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[0].Descriptor()
}

func (ProbeDef_Type) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[0]
}

func (x ProbeDef_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *ProbeDef_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ProbeDef_Type(num)
	return nil
}

// Deprecated: Use ProbeDef_Type.Descriptor instead.
func (ProbeDef_Type) EnumDescriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescGZIP(), []int{0, 0}
}

// IP version to use for networking probes. If specified, this is used while
// 1) resolving a target, 2) picking the correct IP for the source IP if
// source_interface option is provided, and 3) to craft the packet correctly
// for PING probes.
//
// If ip_version is not configured but source_ip is provided, we get
// ip_version from it. If both are  confgiured, an error is returned if there
// is a conflict between the two.
//
// If left unspecified and both addresses are available in resolve call or on
// source interface, IPv4 is preferred.
// Future work: provide an option to prefer IPv4 and IPv6 explicitly.
type ProbeDef_IPVersion int32

const (
	ProbeDef_IP_VERSION_UNSPECIFIED ProbeDef_IPVersion = 0
	ProbeDef_IPV4                   ProbeDef_IPVersion = 1
	ProbeDef_IPV6                   ProbeDef_IPVersion = 2
)

// Enum value maps for ProbeDef_IPVersion.
var (
	ProbeDef_IPVersion_name = map[int32]string{
		0: "IP_VERSION_UNSPECIFIED",
		1: "IPV4",
		2: "IPV6",
	}
	ProbeDef_IPVersion_value = map[string]int32{
		"IP_VERSION_UNSPECIFIED": 0,
		"IPV4":                   1,
		"IPV6":                   2,
	}
)

func (x ProbeDef_IPVersion) Enum() *ProbeDef_IPVersion {
	p := new(ProbeDef_IPVersion)
	*p = x
	return p
}

func (x ProbeDef_IPVersion) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ProbeDef_IPVersion) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[1].Descriptor()
}

func (ProbeDef_IPVersion) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[1]
}

func (x ProbeDef_IPVersion) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *ProbeDef_IPVersion) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ProbeDef_IPVersion(num)
	return nil
}

// Deprecated: Use ProbeDef_IPVersion.Descriptor instead.
func (ProbeDef_IPVersion) EnumDescriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescGZIP(), []int{0, 1}
}

type Schedule_Weekday int32

const (
	Schedule_EVERYDAY  Schedule_Weekday = 0
	Schedule_SUNDAY    Schedule_Weekday = 1
	Schedule_MONDAY    Schedule_Weekday = 2
	Schedule_TUESDAY   Schedule_Weekday = 3
	Schedule_WEDNESDAY Schedule_Weekday = 4
	Schedule_THURSDAY  Schedule_Weekday = 5
	Schedule_FRIDAY    Schedule_Weekday = 6
	Schedule_SATURDAY  Schedule_Weekday = 7
)

// Enum value maps for Schedule_Weekday.
var (
	Schedule_Weekday_name = map[int32]string{
		0: "EVERYDAY",
		1: "SUNDAY",
		2: "MONDAY",
		3: "TUESDAY",
		4: "WEDNESDAY",
		5: "THURSDAY",
		6: "FRIDAY",
		7: "SATURDAY",
	}
	Schedule_Weekday_value = map[string]int32{
		"EVERYDAY":  0,
		"SUNDAY":    1,
		"MONDAY":    2,
		"TUESDAY":   3,
		"WEDNESDAY": 4,
		"THURSDAY":  5,
		"FRIDAY":    6,
		"SATURDAY":  7,
	}
)

func (x Schedule_Weekday) Enum() *Schedule_Weekday {
	p := new(Schedule_Weekday)
	*p = x
	return p
}

func (x Schedule_Weekday) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Schedule_Weekday) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[2].Descriptor()
}

func (Schedule_Weekday) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[2]
}

func (x Schedule_Weekday) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *Schedule_Weekday) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Schedule_Weekday(num)
	return nil
}

// Deprecated: Use Schedule_Weekday.Descriptor instead.
func (Schedule_Weekday) EnumDescriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescGZIP(), []int{2, 0}
}

type Schedule_ScheduleType int32

const (
	Schedule_ScheduleType_UNSPECIFIED Schedule_ScheduleType = 0
	Schedule_ENABLE                   Schedule_ScheduleType = 1
	Schedule_DISABLE                  Schedule_ScheduleType = 2
)

// Enum value maps for Schedule_ScheduleType.
var (
	Schedule_ScheduleType_name = map[int32]string{
		0: "ScheduleType_UNSPECIFIED",
		1: "ENABLE",
		2: "DISABLE",
	}
	Schedule_ScheduleType_value = map[string]int32{
		"ScheduleType_UNSPECIFIED": 0,
		"ENABLE":                   1,
		"DISABLE":                  2,
	}
)

func (x Schedule_ScheduleType) Enum() *Schedule_ScheduleType {
	p := new(Schedule_ScheduleType)
	*p = x
	return p
}

func (x Schedule_ScheduleType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Schedule_ScheduleType) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[3].Descriptor()
}

func (Schedule_ScheduleType) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes[3]
}

func (x Schedule_ScheduleType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *Schedule_ScheduleType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Schedule_ScheduleType(num)
	return nil
}

// Deprecated: Use Schedule_ScheduleType.Descriptor instead.
func (Schedule_ScheduleType) EnumDescriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescGZIP(), []int{2, 1}
}

// Next tag: 101
type ProbeDef struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Probe name. It should be unique across all probes.
	Name *string        `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	Type *ProbeDef_Type `protobuf:"varint,2,req,name=type,enum=cloudprober.probes.ProbeDef_Type" json:"type,omitempty"`
	// Interval between two probe runs in milliseconds.
	// Only one of "interval" and "inteval_msec" should be defined.
	// Default interval is 2s.
	IntervalMsec *int32 `protobuf:"varint,4,opt,name=interval_msec,json=intervalMsec" json:"interval_msec,omitempty"`
	// Interval between two probe runs in string format, e.g. 10s.
	// Only one of "interval" and "inteval_msec" should be defined.
	// Default interval is 2s.
	Interval *string `protobuf:"bytes,16,opt,name=interval" json:"interval,omitempty"`
	// Timeout for each probe in milliseconds
	// Only one of "timeout" and "timeout_msec" should be defined.
	// Default timeout is 1s.
	TimeoutMsec *int32 `protobuf:"varint,5,opt,name=timeout_msec,json=timeoutMsec" json:"timeout_msec,omitempty"`
	// Timeout for each probe in string format, e.g. 10s.
	// Only one of "timeout" and "timeout_msec" should be defined.
	// Default timeout is 1s.
	Timeout *string `protobuf:"bytes,17,opt,name=timeout" json:"timeout,omitempty"`
	// Targets for the probe. Targets are required for all probes except
	// for external, user_defined, and extension probe types.
	Targets *proto.TargetsDef `protobuf:"bytes,6,opt,name=targets" json:"targets,omitempty"`
	// Latency distribution. If specified, latency is stored as a distribution.
	LatencyDistribution *proto1.Dist `protobuf:"bytes,7,opt,name=latency_distribution,json=latencyDistribution" json:"latency_distribution,omitempty"`
	// Latency unit. Any string that's parseable by time.ParseDuration.
	// Valid values: "ns", "us" (or "µs"), "ms", "s", "m", "h".
	LatencyUnit *string `protobuf:"bytes,8,opt,name=latency_unit,json=latencyUnit,def=us" json:"latency_unit,omitempty"`
	// Latency metric name. You may want to change the latency metric name, if:
	// you're using latency_distribution for some probes, and regular metric for
	// other probes, and you want to differentiate between the two.
	// For example:
	//
	//	probe {
	//	  name: "web1_latency"
	//	  latency_distribution: {...}
	//	  latency_metric_name: "latency_dist"
	//	  ...
	//	}
	//	probe {
	//	  name: "app1"
	//	  ...
	//	}
	LatencyMetricName *string `protobuf:"bytes,15,opt,name=latency_metric_name,json=latencyMetricName,def=latency" json:"latency_metric_name,omitempty"`
	// Validators for this probe. Validators are run on the data returned by the
	// probe. See https://cloudprober.org/docs/how-to/validators/ for more info.
	Validator []*proto2.Validator `protobuf:"bytes,9,rep,name=validator" json:"validator,omitempty"`
	// Set the source IP to send packets from, either by providing an IP address
	// directly, or a network interface.
	//
	// Types that are valid to be assigned to SourceIpConfig:
	//
	//	*ProbeDef_SourceIp
	//	*ProbeDef_SourceInterface
	SourceIpConfig isProbeDef_SourceIpConfig `protobuf_oneof:"source_ip_config"`
	IpVersion      *ProbeDef_IPVersion       `protobuf:"varint,12,opt,name=ip_version,json=ipVersion,enum=cloudprober.probes.ProbeDef_IPVersion" json:"ip_version,omitempty"`
	// How often to export stats. Probes usually run at a higher frequency (e.g.
	// every second); stats from individual probes are aggregated within
	// cloudprober until exported. In most cases, users don't need to change the
	// default.
	//
	// By default this field is set in the following way:
	// For all probes except UDP:
	//
	//	stats_export_interval=max(interval, 10s)
	//
	// For UDP:
	//
	//	stats_export_interval=max(2*max(interval, timeout), 10s)
	StatsExportIntervalMsec *int32 `protobuf:"varint,13,opt,name=stats_export_interval_msec,json=statsExportIntervalMsec" json:"stats_export_interval_msec,omitempty"`
	// Additional labels to add to the probe results. Label's value can either be
	// static or can be derived from target's labels.
	//
	// Example:
	//
	//	additional_label {
	//	  key: "app"
	//	  value: "@target.label.app@"
	//	}
	//
	// (More detailed example at: examples/additional_label/cloudprober.cfg)
	AdditionalLabel []*AdditionalLabel `protobuf:"bytes,14,rep,name=additional_label,json=additionalLabel" json:"additional_label,omitempty"`
	// (Experimental) If set, test is inversed, i.e. we count it as success if
	// target doesn't respond. This is useful, for example, that your firewall is
	// working as expected.
	//
	// This is currently implemented only by PING and TCP probes.
	// Note: This field is currently experimental, and may change in future.
	NegativeTest *bool `protobuf:"varint,18,opt,name=negative_test,json=negativeTest" json:"negative_test,omitempty"`
	// Alerts configuration. If specified, cloudprober will generate alerts on
	// probe failures. You can specify multiple alerts.
	// Example:
	//
	//	alert {
	//	  name: "alert1"
	//	  condition {...}
	//	  notify {
	//	    pagerduty { ...}
	//	  }
	//	}
	//	alert {
	//	  name: "alert2"
	//	  notify { ... }
	//	}
	Alert []*proto3.AlertConf `protobuf:"bytes,19,rep,name=alert" json:"alert,omitempty"`
	// Types that are valid to be assigned to Probe:
	//
	//	*ProbeDef_PingProbe
	//	*ProbeDef_HttpProbe
	//	*ProbeDef_DnsProbe
	//	*ProbeDef_ExternalProbe
	//	*ProbeDef_UdpProbe
	//	*ProbeDef_UdpListenerProbe
	//	*ProbeDef_GrpcProbe
	//	*ProbeDef_TcpProbe
	//	*ProbeDef_BrowserProbe
	//	*ProbeDef_UserDefinedProbe
	Probe isProbeDef_Probe `protobuf_oneof:"probe"`
	// Which machines this probe should run on. If defined, cloudprober will run
	// this probe only if machine's hostname matches this value. This is useful
	// for large deployments, where you may want to use the same prober config
	// everywhere but run this probe only on a subset of machines.
	RunOn *string `protobuf:"bytes,3,opt,name=run_on,json=runOn" json:"run_on,omitempty"`
	// Schedule for the probe. You can use a schedule to specify when a probe
	// should or should not run. This is useful for running probes only during
	// business hours.
	//
	// You can specify multiple schedules. Probe will not run if any of the
	// "DISABLE" schedules are active. If both "ENABLE" and "DISABLE" schedules
	// overlap, "DISABLE" takes precedence.
	//
	// For example, to disable a probe during weekends and on Tuesday between 7pm
	// and 8pm, e.g. for rollouts:
	//
	//	schdule {
	//	  type: DISABLE
	//	  start_weekday: FRIDAY
	//	  start_time: "20:00"
	//	  end_weekday: SUNDAY
	//	  end_time: "17:00"
	//	  timezone: "America/New_York"
	//	}
	//	schdule {
	//	  type: DISABLE
	//	  start_weekday: TUESDAY
	//	  start_time: "19:00"
	//	  end_weekday: TUESDAY
	//	  end_time: "20:00"
	//	  timezone: "America/New_York"
	//	}
	Schedule []*Schedule `protobuf:"bytes,101,rep,name=schedule" json:"schedule,omitempty"`
	// Debug options. Currently only used to enable logging metrics.
	DebugOptions    *DebugOptions `protobuf:"bytes,100,opt,name=debug_options,json=debugOptions" json:"debug_options,omitempty"`
	extensionFields protoimpl.ExtensionFields
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

// Default values for ProbeDef fields.
const (
	Default_ProbeDef_LatencyUnit       = string("us")
	Default_ProbeDef_LatencyMetricName = string("latency")
)

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

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

func (*ProbeDef) ProtoMessage() {}

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

func (x *ProbeDef) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *ProbeDef) GetType() ProbeDef_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return ProbeDef_PING
}

func (x *ProbeDef) GetIntervalMsec() int32 {
	if x != nil && x.IntervalMsec != nil {
		return *x.IntervalMsec
	}
	return 0
}

func (x *ProbeDef) GetInterval() string {
	if x != nil && x.Interval != nil {
		return *x.Interval
	}
	return ""
}

func (x *ProbeDef) GetTimeoutMsec() int32 {
	if x != nil && x.TimeoutMsec != nil {
		return *x.TimeoutMsec
	}
	return 0
}

func (x *ProbeDef) GetTimeout() string {
	if x != nil && x.Timeout != nil {
		return *x.Timeout
	}
	return ""
}

func (x *ProbeDef) GetTargets() *proto.TargetsDef {
	if x != nil {
		return x.Targets
	}
	return nil
}

func (x *ProbeDef) GetLatencyDistribution() *proto1.Dist {
	if x != nil {
		return x.LatencyDistribution
	}
	return nil
}

func (x *ProbeDef) GetLatencyUnit() string {
	if x != nil && x.LatencyUnit != nil {
		return *x.LatencyUnit
	}
	return Default_ProbeDef_LatencyUnit
}

func (x *ProbeDef) GetLatencyMetricName() string {
	if x != nil && x.LatencyMetricName != nil {
		return *x.LatencyMetricName
	}
	return Default_ProbeDef_LatencyMetricName
}

func (x *ProbeDef) GetValidator() []*proto2.Validator {
	if x != nil {
		return x.Validator
	}
	return nil
}

func (x *ProbeDef) GetSourceIpConfig() isProbeDef_SourceIpConfig {
	if x != nil {
		return x.SourceIpConfig
	}
	return nil
}

func (x *ProbeDef) GetSourceIp() string {
	if x != nil {
		if x, ok := x.SourceIpConfig.(*ProbeDef_SourceIp); ok {
			return x.SourceIp
		}
	}
	return ""
}

func (x *ProbeDef) GetSourceInterface() string {
	if x != nil {
		if x, ok := x.SourceIpConfig.(*ProbeDef_SourceInterface); ok {
			return x.SourceInterface
		}
	}
	return ""
}

func (x *ProbeDef) GetIpVersion() ProbeDef_IPVersion {
	if x != nil && x.IpVersion != nil {
		return *x.IpVersion
	}
	return ProbeDef_IP_VERSION_UNSPECIFIED
}

func (x *ProbeDef) GetStatsExportIntervalMsec() int32 {
	if x != nil && x.StatsExportIntervalMsec != nil {
		return *x.StatsExportIntervalMsec
	}
	return 0
}

func (x *ProbeDef) GetAdditionalLabel() []*AdditionalLabel {
	if x != nil {
		return x.AdditionalLabel
	}
	return nil
}

func (x *ProbeDef) GetNegativeTest() bool {
	if x != nil && x.NegativeTest != nil {
		return *x.NegativeTest
	}
	return false
}

func (x *ProbeDef) GetAlert() []*proto3.AlertConf {
	if x != nil {
		return x.Alert
	}
	return nil
}

func (x *ProbeDef) GetProbe() isProbeDef_Probe {
	if x != nil {
		return x.Probe
	}
	return nil
}

func (x *ProbeDef) GetPingProbe() *proto4.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_PingProbe); ok {
			return x.PingProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetHttpProbe() *proto5.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_HttpProbe); ok {
			return x.HttpProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetDnsProbe() *proto6.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_DnsProbe); ok {
			return x.DnsProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetExternalProbe() *proto7.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_ExternalProbe); ok {
			return x.ExternalProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetUdpProbe() *proto8.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_UdpProbe); ok {
			return x.UdpProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetUdpListenerProbe() *proto9.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_UdpListenerProbe); ok {
			return x.UdpListenerProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetGrpcProbe() *proto10.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_GrpcProbe); ok {
			return x.GrpcProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetTcpProbe() *proto11.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_TcpProbe); ok {
			return x.TcpProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetBrowserProbe() *proto12.ProbeConf {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_BrowserProbe); ok {
			return x.BrowserProbe
		}
	}
	return nil
}

func (x *ProbeDef) GetUserDefinedProbe() string {
	if x != nil {
		if x, ok := x.Probe.(*ProbeDef_UserDefinedProbe); ok {
			return x.UserDefinedProbe
		}
	}
	return ""
}

func (x *ProbeDef) GetRunOn() string {
	if x != nil && x.RunOn != nil {
		return *x.RunOn
	}
	return ""
}

func (x *ProbeDef) GetSchedule() []*Schedule {
	if x != nil {
		return x.Schedule
	}
	return nil
}

func (x *ProbeDef) GetDebugOptions() *DebugOptions {
	if x != nil {
		return x.DebugOptions
	}
	return nil
}

type isProbeDef_SourceIpConfig interface {
	isProbeDef_SourceIpConfig()
}

type ProbeDef_SourceIp struct {
	SourceIp string `protobuf:"bytes,10,opt,name=source_ip,json=sourceIp,oneof"`
}

type ProbeDef_SourceInterface struct {
	SourceInterface string `protobuf:"bytes,11,opt,name=source_interface,json=sourceInterface,oneof"`
}

func (*ProbeDef_SourceIp) isProbeDef_SourceIpConfig() {}

func (*ProbeDef_SourceInterface) isProbeDef_SourceIpConfig() {}

type isProbeDef_Probe interface {
	isProbeDef_Probe()
}

type ProbeDef_PingProbe struct {
	PingProbe *proto4.ProbeConf `protobuf:"bytes,20,opt,name=ping_probe,json=pingProbe,oneof"`
}

type ProbeDef_HttpProbe struct {
	HttpProbe *proto5.ProbeConf `protobuf:"bytes,21,opt,name=http_probe,json=httpProbe,oneof"`
}

type ProbeDef_DnsProbe struct {
	DnsProbe *proto6.ProbeConf `protobuf:"bytes,22,opt,name=dns_probe,json=dnsProbe,oneof"`
}

type ProbeDef_ExternalProbe struct {
	ExternalProbe *proto7.ProbeConf `protobuf:"bytes,23,opt,name=external_probe,json=externalProbe,oneof"`
}

type ProbeDef_UdpProbe struct {
	UdpProbe *proto8.ProbeConf `protobuf:"bytes,24,opt,name=udp_probe,json=udpProbe,oneof"`
}

type ProbeDef_UdpListenerProbe struct {
	UdpListenerProbe *proto9.ProbeConf `protobuf:"bytes,25,opt,name=udp_listener_probe,json=udpListenerProbe,oneof"`
}

type ProbeDef_GrpcProbe struct {
	GrpcProbe *proto10.ProbeConf `protobuf:"bytes,26,opt,name=grpc_probe,json=grpcProbe,oneof"`
}

type ProbeDef_TcpProbe struct {
	TcpProbe *proto11.ProbeConf `protobuf:"bytes,27,opt,name=tcp_probe,json=tcpProbe,oneof"`
}

type ProbeDef_BrowserProbe struct {
	BrowserProbe *proto12.ProbeConf `protobuf:"bytes,28,opt,name=browser_probe,json=browserProbe,oneof"`
}

type ProbeDef_UserDefinedProbe struct {
	// This field's contents are passed on to the user defined probe,
	// registered for this probe's name through probes.RegisterUserDefined().
	UserDefinedProbe string `protobuf:"bytes,99,opt,name=user_defined_probe,json=userDefinedProbe,oneof"`
}

func (*ProbeDef_PingProbe) isProbeDef_Probe() {}

func (*ProbeDef_HttpProbe) isProbeDef_Probe() {}

func (*ProbeDef_DnsProbe) isProbeDef_Probe() {}

func (*ProbeDef_ExternalProbe) isProbeDef_Probe() {}

func (*ProbeDef_UdpProbe) isProbeDef_Probe() {}

func (*ProbeDef_UdpListenerProbe) isProbeDef_Probe() {}

func (*ProbeDef_GrpcProbe) isProbeDef_Probe() {}

func (*ProbeDef_TcpProbe) isProbeDef_Probe() {}

func (*ProbeDef_BrowserProbe) isProbeDef_Probe() {}

func (*ProbeDef_UserDefinedProbe) isProbeDef_Probe() {}

type AdditionalLabel struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Key   *string                `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
	// Value can either be a static value or can be derived from target's labels.
	// To get value from target's labels, use target.labels.<target's label key>
	// as value.
	Value         *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AdditionalLabel) ProtoMessage() {}

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

func (x *AdditionalLabel) GetKey() string {
	if x != nil && x.Key != nil {
		return *x.Key
	}
	return ""
}

func (x *AdditionalLabel) GetValue() string {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return ""
}

type Schedule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Type  *Schedule_ScheduleType `protobuf:"varint,1,req,name=type,enum=cloudprober.probes.Schedule_ScheduleType" json:"type,omitempty"`
	// Period start weekday. If not specified, it defaults to EVERYDAY.
	StartWeekday *Schedule_Weekday `protobuf:"varint,2,opt,name=start_weekday,json=startWeekday,enum=cloudprober.probes.Schedule_Weekday,def=0" json:"start_weekday,omitempty"`
	// Start time in 24 hour HH:MM format.
	StartTime *string `protobuf:"bytes,3,opt,name=start_time,json=startTime,def=00:00" json:"start_time,omitempty"`
	// Period end weekday. If not specified, it defaults to EVERYDAY.
	EndWeekday *Schedule_Weekday `protobuf:"varint,4,opt,name=end_weekday,json=endWeekday,enum=cloudprober.probes.Schedule_Weekday,def=0" json:"end_weekday,omitempty"`
	// End time in 24 hour HH:MM format.
	EndTime *string `protobuf:"bytes,5,opt,name=end_time,json=endTime,def=23:59" json:"end_time,omitempty"`
	// Timezone in which the probe should run. If not specified, it defaults to
	// UTC. Example: "America/New_York"
	Timezone      *string `protobuf:"bytes,6,opt,name=timezone,def=UTC" json:"timezone,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for Schedule fields.
const (
	Default_Schedule_StartWeekday = Schedule_EVERYDAY
	Default_Schedule_StartTime    = string("00:00")
	Default_Schedule_EndWeekday   = Schedule_EVERYDAY
	Default_Schedule_EndTime      = string("23:59")
	Default_Schedule_Timezone     = string("UTC")
)

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

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

func (*Schedule) ProtoMessage() {}

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

func (x *Schedule) GetType() Schedule_ScheduleType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Schedule_ScheduleType_UNSPECIFIED
}

func (x *Schedule) GetStartWeekday() Schedule_Weekday {
	if x != nil && x.StartWeekday != nil {
		return *x.StartWeekday
	}
	return Default_Schedule_StartWeekday
}

func (x *Schedule) GetStartTime() string {
	if x != nil && x.StartTime != nil {
		return *x.StartTime
	}
	return Default_Schedule_StartTime
}

func (x *Schedule) GetEndWeekday() Schedule_Weekday {
	if x != nil && x.EndWeekday != nil {
		return *x.EndWeekday
	}
	return Default_Schedule_EndWeekday
}

func (x *Schedule) GetEndTime() string {
	if x != nil && x.EndTime != nil {
		return *x.EndTime
	}
	return Default_Schedule_EndTime
}

func (x *Schedule) GetTimezone() string {
	if x != nil && x.Timezone != nil {
		return *x.Timezone
	}
	return Default_Schedule_Timezone
}

type DebugOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether to log metrics or not.
	LogMetrics    *bool `protobuf:"varint,1,opt,name=log_metrics,json=logMetrics" json:"log_metrics,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DebugOptions) ProtoMessage() {}

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

func (x *DebugOptions) GetLogMetrics() bool {
	if x != nil && x.LogMetrics != nil {
		return *x.LogMetrics
	}
	return false
}

var File_github_com_cloudprober_cloudprober_probes_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDesc = "" +
	"\n" +
	"<github.com/cloudprober/cloudprober/probes/proto/config.proto\x12\x12cloudprober.probes\x1a;github.com/cloudprober/cloudprober/metrics/proto/dist.proto\x1aGgithub.com/cloudprober/cloudprober/internal/alerting/proto/config.proto\x1aDgithub.com/cloudprober/cloudprober/probes/browser/proto/config.proto\x1a@github.com/cloudprober/cloudprober/probes/dns/proto/config.proto\x1aEgithub.com/cloudprober/cloudprober/probes/external/proto/config.proto\x1aAgithub.com/cloudprober/cloudprober/probes/grpc/proto/config.proto\x1aAgithub.com/cloudprober/cloudprober/probes/http/proto/config.proto\x1aAgithub.com/cloudprober/cloudprober/probes/ping/proto/config.proto\x1a@github.com/cloudprober/cloudprober/probes/tcp/proto/config.proto\x1a@github.com/cloudprober/cloudprober/probes/udp/proto/config.proto\x1aHgithub.com/cloudprober/cloudprober/probes/udplistener/proto/config.proto\x1a>github.com/cloudprober/cloudprober/targets/proto/targets.proto\x1aIgithub.com/cloudprober/cloudprober/internal/validators/proto/config.proto\"\xc5\x0f\n" +
	"\bProbeDef\x12\x12\n" +
	"\x04name\x18\x01 \x02(\tR\x04name\x125\n" +
	"\x04type\x18\x02 \x02(\x0e2!.cloudprober.probes.ProbeDef.TypeR\x04type\x12#\n" +
	"\rinterval_msec\x18\x04 \x01(\x05R\fintervalMsec\x12\x1a\n" +
	"\binterval\x18\x10 \x01(\tR\binterval\x12!\n" +
	"\ftimeout_msec\x18\x05 \x01(\x05R\vtimeoutMsec\x12\x18\n" +
	"\atimeout\x18\x11 \x01(\tR\atimeout\x129\n" +
	"\atargets\x18\x06 \x01(\v2\x1f.cloudprober.targets.TargetsDefR\atargets\x12L\n" +
	"\x14latency_distribution\x18\a \x01(\v2\x19.cloudprober.metrics.DistR\x13latencyDistribution\x12%\n" +
	"\flatency_unit\x18\b \x01(\t:\x02usR\vlatencyUnit\x127\n" +
	"\x13latency_metric_name\x18\x0f \x01(\t:\alatencyR\x11latencyMetricName\x12?\n" +
	"\tvalidator\x18\t \x03(\v2!.cloudprober.validators.ValidatorR\tvalidator\x12\x1d\n" +
	"\tsource_ip\x18\n" +
	" \x01(\tH\x00R\bsourceIp\x12+\n" +
	"\x10source_interface\x18\v \x01(\tH\x00R\x0fsourceInterface\x12E\n" +
	"\n" +
	"ip_version\x18\f \x01(\x0e2&.cloudprober.probes.ProbeDef.IPVersionR\tipVersion\x12;\n" +
	"\x1astats_export_interval_msec\x18\r \x01(\x05R\x17statsExportIntervalMsec\x12N\n" +
	"\x10additional_label\x18\x0e \x03(\v2#.cloudprober.probes.AdditionalLabelR\x0fadditionalLabel\x12#\n" +
	"\rnegative_test\x18\x12 \x01(\bR\fnegativeTest\x125\n" +
	"\x05alert\x18\x13 \x03(\v2\x1f.cloudprober.alerting.AlertConfR\x05alert\x12C\n" +
	"\n" +
	"ping_probe\x18\x14 \x01(\v2\".cloudprober.probes.ping.ProbeConfH\x01R\tpingProbe\x12C\n" +
	"\n" +
	"http_probe\x18\x15 \x01(\v2\".cloudprober.probes.http.ProbeConfH\x01R\thttpProbe\x12@\n" +
	"\tdns_probe\x18\x16 \x01(\v2!.cloudprober.probes.dns.ProbeConfH\x01R\bdnsProbe\x12O\n" +
	"\x0eexternal_probe\x18\x17 \x01(\v2&.cloudprober.probes.external.ProbeConfH\x01R\rexternalProbe\x12@\n" +
	"\tudp_probe\x18\x18 \x01(\v2!.cloudprober.probes.udp.ProbeConfH\x01R\budpProbe\x12Y\n" +
	"\x12udp_listener_probe\x18\x19 \x01(\v2).cloudprober.probes.udplistener.ProbeConfH\x01R\x10udpListenerProbe\x12C\n" +
	"\n" +
	"grpc_probe\x18\x1a \x01(\v2\".cloudprober.probes.grpc.ProbeConfH\x01R\tgrpcProbe\x12@\n" +
	"\ttcp_probe\x18\x1b \x01(\v2!.cloudprober.probes.tcp.ProbeConfH\x01R\btcpProbe\x12L\n" +
	"\rbrowser_probe\x18\x1c \x01(\v2%.cloudprober.probes.browser.ProbeConfH\x01R\fbrowserProbe\x12.\n" +
	"\x12user_defined_probe\x18c \x01(\tH\x01R\x10userDefinedProbe\x12\x15\n" +
	"\x06run_on\x18\x03 \x01(\tR\x05runOn\x128\n" +
	"\bschedule\x18e \x03(\v2\x1c.cloudprober.probes.ScheduleR\bschedule\x12E\n" +
	"\rdebug_options\x18d \x01(\v2 .cloudprober.probes.DebugOptionsR\fdebugOptions\"\x8d\x01\n" +
	"\x04Type\x12\b\n" +
	"\x04PING\x10\x00\x12\b\n" +
	"\x04HTTP\x10\x01\x12\a\n" +
	"\x03DNS\x10\x02\x12\f\n" +
	"\bEXTERNAL\x10\x03\x12\a\n" +
	"\x03UDP\x10\x04\x12\x10\n" +
	"\fUDP_LISTENER\x10\x05\x12\b\n" +
	"\x04GRPC\x10\x06\x12\a\n" +
	"\x03TCP\x10\a\x12\v\n" +
	"\aBROWSER\x10\b\x12\r\n" +
	"\tEXTENSION\x10b\x12\x10\n" +
	"\fUSER_DEFINED\x10c\";\n" +
	"\tIPVersion\x12\x1a\n" +
	"\x16IP_VERSION_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04IPV4\x10\x01\x12\b\n" +
	"\x04IPV6\x10\x02*\t\b\xc8\x01\x10\x80\x80\x80\x80\x02B\x12\n" +
	"\x10source_ip_configB\a\n" +
	"\x05probe\"9\n" +
	"\x0fAdditionalLabel\x12\x10\n" +
	"\x03key\x18\x01 \x02(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x02(\tR\x05value\"\x94\x04\n" +
	"\bSchedule\x12=\n" +
	"\x04type\x18\x01 \x02(\x0e2).cloudprober.probes.Schedule.ScheduleTypeR\x04type\x12S\n" +
	"\rstart_weekday\x18\x02 \x01(\x0e2$.cloudprober.probes.Schedule.Weekday:\bEVERYDAYR\fstartWeekday\x12$\n" +
	"\n" +
	"start_time\x18\x03 \x01(\t:\x0500:00R\tstartTime\x12O\n" +
	"\vend_weekday\x18\x04 \x01(\x0e2$.cloudprober.probes.Schedule.Weekday:\bEVERYDAYR\n" +
	"endWeekday\x12 \n" +
	"\bend_time\x18\x05 \x01(\t:\x0523:59R\aendTime\x12\x1f\n" +
	"\btimezone\x18\x06 \x01(\t:\x03UTCR\btimezone\"s\n" +
	"\aWeekday\x12\f\n" +
	"\bEVERYDAY\x10\x00\x12\n" +
	"\n" +
	"\x06SUNDAY\x10\x01\x12\n" +
	"\n" +
	"\x06MONDAY\x10\x02\x12\v\n" +
	"\aTUESDAY\x10\x03\x12\r\n" +
	"\tWEDNESDAY\x10\x04\x12\f\n" +
	"\bTHURSDAY\x10\x05\x12\n" +
	"\n" +
	"\x06FRIDAY\x10\x06\x12\f\n" +
	"\bSATURDAY\x10\a\"E\n" +
	"\fScheduleType\x12\x1c\n" +
	"\x18ScheduleType_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06ENABLE\x10\x01\x12\v\n" +
	"\aDISABLE\x10\x02\"/\n" +
	"\fDebugOptions\x12\x1f\n" +
	"\vlog_metrics\x18\x01 \x01(\bR\n" +
	"logMetricsB1Z/github.com/cloudprober/cloudprober/probes/proto"

var (
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_github_com_cloudprober_cloudprober_probes_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_github_com_cloudprober_cloudprober_probes_proto_config_proto_goTypes = []any{
	(ProbeDef_Type)(0),         // 0: cloudprober.probes.ProbeDef.Type
	(ProbeDef_IPVersion)(0),    // 1: cloudprober.probes.ProbeDef.IPVersion
	(Schedule_Weekday)(0),      // 2: cloudprober.probes.Schedule.Weekday
	(Schedule_ScheduleType)(0), // 3: cloudprober.probes.Schedule.ScheduleType
	(*ProbeDef)(nil),           // 4: cloudprober.probes.ProbeDef
	(*AdditionalLabel)(nil),    // 5: cloudprober.probes.AdditionalLabel
	(*Schedule)(nil),           // 6: cloudprober.probes.Schedule
	(*DebugOptions)(nil),       // 7: cloudprober.probes.DebugOptions
	(*proto.TargetsDef)(nil),   // 8: cloudprober.targets.TargetsDef
	(*proto1.Dist)(nil),        // 9: cloudprober.metrics.Dist
	(*proto2.Validator)(nil),   // 10: cloudprober.validators.Validator
	(*proto3.AlertConf)(nil),   // 11: cloudprober.alerting.AlertConf
	(*proto4.ProbeConf)(nil),   // 12: cloudprober.probes.ping.ProbeConf
	(*proto5.ProbeConf)(nil),   // 13: cloudprober.probes.http.ProbeConf
	(*proto6.ProbeConf)(nil),   // 14: cloudprober.probes.dns.ProbeConf
	(*proto7.ProbeConf)(nil),   // 15: cloudprober.probes.external.ProbeConf
	(*proto8.ProbeConf)(nil),   // 16: cloudprober.probes.udp.ProbeConf
	(*proto9.ProbeConf)(nil),   // 17: cloudprober.probes.udplistener.ProbeConf
	(*proto10.ProbeConf)(nil),  // 18: cloudprober.probes.grpc.ProbeConf
	(*proto11.ProbeConf)(nil),  // 19: cloudprober.probes.tcp.ProbeConf
	(*proto12.ProbeConf)(nil),  // 20: cloudprober.probes.browser.ProbeConf
}
var file_github_com_cloudprober_cloudprober_probes_proto_config_proto_depIdxs = []int32{
	0,  // 0: cloudprober.probes.ProbeDef.type:type_name -> cloudprober.probes.ProbeDef.Type
	8,  // 1: cloudprober.probes.ProbeDef.targets:type_name -> cloudprober.targets.TargetsDef
	9,  // 2: cloudprober.probes.ProbeDef.latency_distribution:type_name -> cloudprober.metrics.Dist
	10, // 3: cloudprober.probes.ProbeDef.validator:type_name -> cloudprober.validators.Validator
	1,  // 4: cloudprober.probes.ProbeDef.ip_version:type_name -> cloudprober.probes.ProbeDef.IPVersion
	5,  // 5: cloudprober.probes.ProbeDef.additional_label:type_name -> cloudprober.probes.AdditionalLabel
	11, // 6: cloudprober.probes.ProbeDef.alert:type_name -> cloudprober.alerting.AlertConf
	12, // 7: cloudprober.probes.ProbeDef.ping_probe:type_name -> cloudprober.probes.ping.ProbeConf
	13, // 8: cloudprober.probes.ProbeDef.http_probe:type_name -> cloudprober.probes.http.ProbeConf
	14, // 9: cloudprober.probes.ProbeDef.dns_probe:type_name -> cloudprober.probes.dns.ProbeConf
	15, // 10: cloudprober.probes.ProbeDef.external_probe:type_name -> cloudprober.probes.external.ProbeConf
	16, // 11: cloudprober.probes.ProbeDef.udp_probe:type_name -> cloudprober.probes.udp.ProbeConf
	17, // 12: cloudprober.probes.ProbeDef.udp_listener_probe:type_name -> cloudprober.probes.udplistener.ProbeConf
	18, // 13: cloudprober.probes.ProbeDef.grpc_probe:type_name -> cloudprober.probes.grpc.ProbeConf
	19, // 14: cloudprober.probes.ProbeDef.tcp_probe:type_name -> cloudprober.probes.tcp.ProbeConf
	20, // 15: cloudprober.probes.ProbeDef.browser_probe:type_name -> cloudprober.probes.browser.ProbeConf
	6,  // 16: cloudprober.probes.ProbeDef.schedule:type_name -> cloudprober.probes.Schedule
	7,  // 17: cloudprober.probes.ProbeDef.debug_options:type_name -> cloudprober.probes.DebugOptions
	3,  // 18: cloudprober.probes.Schedule.type:type_name -> cloudprober.probes.Schedule.ScheduleType
	2,  // 19: cloudprober.probes.Schedule.start_weekday:type_name -> cloudprober.probes.Schedule.Weekday
	2,  // 20: cloudprober.probes.Schedule.end_weekday:type_name -> cloudprober.probes.Schedule.Weekday
	21, // [21:21] is the sub-list for method output_type
	21, // [21:21] is the sub-list for method input_type
	21, // [21:21] is the sub-list for extension type_name
	21, // [21:21] is the sub-list for extension extendee
	0,  // [0:21] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_probes_proto_config_proto_init() }
func file_github_com_cloudprober_cloudprober_probes_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_probes_proto_config_proto != nil {
		return
	}
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_msgTypes[0].OneofWrappers = []any{
		(*ProbeDef_SourceIp)(nil),
		(*ProbeDef_SourceInterface)(nil),
		(*ProbeDef_PingProbe)(nil),
		(*ProbeDef_HttpProbe)(nil),
		(*ProbeDef_DnsProbe)(nil),
		(*ProbeDef_ExternalProbe)(nil),
		(*ProbeDef_UdpProbe)(nil),
		(*ProbeDef_UdpListenerProbe)(nil),
		(*ProbeDef_GrpcProbe)(nil),
		(*ProbeDef_TcpProbe)(nil),
		(*ProbeDef_BrowserProbe)(nil),
		(*ProbeDef_UserDefinedProbe)(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_probes_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_proto_config_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_probes_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_probes_proto_config_proto_depIdxs,
		EnumInfos:         file_github_com_cloudprober_cloudprober_probes_proto_config_proto_enumTypes,
		MessageInfos:      file_github_com_cloudprober_cloudprober_probes_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_probes_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_probes_proto_config_proto_depIdxs = nil
}
