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

package proto

import (
	proto "github.com/cloudprober/cloudprober/common/oauth/proto"
	proto1 "github.com/cloudprober/cloudprober/common/tlsconfig/proto"
	proto2 "github.com/cloudprober/cloudprober/metrics/payload/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 ProbeConf_Scheme int32

const (
	ProbeConf_HTTP  ProbeConf_Scheme = 0
	ProbeConf_HTTPS ProbeConf_Scheme = 1
)

// Enum value maps for ProbeConf_Scheme.
var (
	ProbeConf_Scheme_name = map[int32]string{
		0: "HTTP",
		1: "HTTPS",
	}
	ProbeConf_Scheme_value = map[string]int32{
		"HTTP":  0,
		"HTTPS": 1,
	}
)

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

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

func (ProbeConf_Scheme) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[0].Descriptor()
}

func (ProbeConf_Scheme) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[0]
}

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

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

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

type ProbeConf_Method int32

const (
	ProbeConf_GET     ProbeConf_Method = 0
	ProbeConf_POST    ProbeConf_Method = 1
	ProbeConf_PUT     ProbeConf_Method = 2
	ProbeConf_HEAD    ProbeConf_Method = 3
	ProbeConf_DELETE  ProbeConf_Method = 4
	ProbeConf_PATCH   ProbeConf_Method = 5
	ProbeConf_OPTIONS ProbeConf_Method = 6
)

// Enum value maps for ProbeConf_Method.
var (
	ProbeConf_Method_name = map[int32]string{
		0: "GET",
		1: "POST",
		2: "PUT",
		3: "HEAD",
		4: "DELETE",
		5: "PATCH",
		6: "OPTIONS",
	}
	ProbeConf_Method_value = map[string]int32{
		"GET":     0,
		"POST":    1,
		"PUT":     2,
		"HEAD":    3,
		"DELETE":  4,
		"PATCH":   5,
		"OPTIONS": 6,
	}
)

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

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

func (ProbeConf_Method) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[1].Descriptor()
}

func (ProbeConf_Method) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[1]
}

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

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

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

type ProbeConf_LatencyBreakdown int32

const (
	ProbeConf_NO_BREAKDOWN          ProbeConf_LatencyBreakdown = 0
	ProbeConf_ALL_STAGES            ProbeConf_LatencyBreakdown = 1
	ProbeConf_DNS_LATENCY           ProbeConf_LatencyBreakdown = 2 // Exported as dns_latency
	ProbeConf_CONNECT_LATENCY       ProbeConf_LatencyBreakdown = 3 // Exported as connect_latency
	ProbeConf_TLS_HANDSHAKE_LATENCY ProbeConf_LatencyBreakdown = 4 // Exported as tls_handshake_latency
	ProbeConf_REQ_WRITE_LATENCY     ProbeConf_LatencyBreakdown = 5 // Exported as req_write_latency
	ProbeConf_FIRST_BYTE_LATENCY    ProbeConf_LatencyBreakdown = 6 // Exported as first_byte_latency
)

// Enum value maps for ProbeConf_LatencyBreakdown.
var (
	ProbeConf_LatencyBreakdown_name = map[int32]string{
		0: "NO_BREAKDOWN",
		1: "ALL_STAGES",
		2: "DNS_LATENCY",
		3: "CONNECT_LATENCY",
		4: "TLS_HANDSHAKE_LATENCY",
		5: "REQ_WRITE_LATENCY",
		6: "FIRST_BYTE_LATENCY",
	}
	ProbeConf_LatencyBreakdown_value = map[string]int32{
		"NO_BREAKDOWN":          0,
		"ALL_STAGES":            1,
		"DNS_LATENCY":           2,
		"CONNECT_LATENCY":       3,
		"TLS_HANDSHAKE_LATENCY": 4,
		"REQ_WRITE_LATENCY":     5,
		"FIRST_BYTE_LATENCY":    6,
	}
)

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

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

func (ProbeConf_LatencyBreakdown) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[2].Descriptor()
}

func (ProbeConf_LatencyBreakdown) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes[2]
}

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

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

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

// Next tag: 21
type ProbeConf struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// HTTP request scheme (Corresponding target label: "scheme"). If not set, we
	// use taget's 'scheme' label if present.
	// Note: protocol is deprecated, use scheme instead.
	//
	// Types that are valid to be assigned to SchemeType:
	//
	//	*ProbeConf_Protocol
	//	*ProbeConf_Scheme_
	SchemeType isProbeConf_SchemeType `protobuf_oneof:"scheme_type"`
	// Relative URL (Corresponding target label: "path"). We construct the final
	// URL like this:
	// <scheme>://<host>:<port>/<relative_url>.
	//
	// Note that the relative_url should start with a '/'.
	RelativeUrl *string `protobuf:"bytes,2,opt,name=relative_url,json=relativeUrl" json:"relative_url,omitempty"`
	// Port for HTTP requests (Corresponding target field: port)
	// Default is to use the scheme specific port, but if this field is not
	// set and discovered target has a port (e.g., k8s services, ingresses),
	// we use target's port.
	Port *int32 `protobuf:"varint,3,opt,name=port" json:"port,omitempty"`
	// Whether to resolve the target before making the request. If set to true,
	// we resolve the target first to an IP address and make a request using
	// that while passing target name (or 'host' label if present) as Host
	// header.
	//
	// This behavior is automatic for discovered targets if they have an IP
	// address associated with them. Usually you don't need to worry about this
	// field and you can left it unspecified. We'll ty to do the right thing.
	ResolveFirst *bool `protobuf:"varint,4,opt,name=resolve_first,json=resolveFirst" json:"resolve_first,omitempty"`
	// Export response (body) count as a metric
	ExportResponseAsMetrics *bool `protobuf:"varint,5,opt,name=export_response_as_metrics,json=exportResponseAsMetrics,def=0" json:"export_response_as_metrics,omitempty"`
	// HTTP request method
	Method *ProbeConf_Method `protobuf:"varint,7,opt,name=method,enum=cloudprober.probes.http.ProbeConf_Method,def=0" json:"method,omitempty"`
	// HTTP request headers
	// It is recommended to use "header" instead of "headers" for new configs.
	//
	//	header {
	//	  key: "Authorization"
	//	  value: "Bearer {{env "AUTH_TOKEN"}}"
	//	}
	Headers []*ProbeConf_Header `protobuf:"bytes,8,rep,name=headers" json:"headers,omitempty"`
	Header  map[string]string   `protobuf:"bytes,20,rep,name=header" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Request body. This field works similar to the curl's data flag. If there
	// are multiple "body" fields, we combine their values with a '&' in between.
	//
	// Also, we try to guess the content-type header based on the data:
	//  1. If data appears to be a valid json, we automatically set the
	//     content-type header to "application/json".
	//  2. If the final data string appears to be a valid query string, we
	//     set content-type to "application/x-www-form-urlencoded". Content type
	//     header can still be overridden using the header field above.
	//
	// Example:
	//
	//	body: "grant_type=client_credentials"
	//	body: "scope=transferMoney"
	//	body: "clientId=aweseomeClient"
	//	body: "clientSecret=noSecret"
	Body []string `protobuf:"bytes,9,rep,name=body" json:"body,omitempty"`
	// Request body from file. This field is similar to the body field above, but
	// value is read from a file.
	// TODO(manugarg): We should consider providing a way to substitute environment
	// variables in the file.
	BodyFile *string `protobuf:"bytes,24,opt,name=body_file,json=bodyFile" json:"body_file,omitempty"`
	// Enable HTTP keep-alive. If set to true, underlying connection is reused
	// for further probes. Default is to close the connection after every request.
	KeepAlive *bool `protobuf:"varint,10,opt,name=keep_alive,json=keepAlive" json:"keep_alive,omitempty"`
	// OAuth Config
	OauthConfig *proto.Config `protobuf:"bytes,11,opt,name=oauth_config,json=oauthConfig" json:"oauth_config,omitempty"`
	// Disable HTTP2
	// Golang HTTP client automatically enables HTTP/2 if server supports it. This
	// option disables that behavior to enforce HTTP/1.1 for testing purpose.
	DisableHttp2 *bool `protobuf:"varint,13,opt,name=disable_http2,json=disableHttp2" json:"disable_http2,omitempty"`
	// Disable TLS certificate validation. If set to true, any certificate
	// presented by the server for any host name will be accepted
	// Deprecation: This option is now subsumed by the tls_config below. To
	// disable cert validation use:
	//
	//	tls_config {
	//	  disable_cert_validation: true
	//	}
	DisableCertValidation *bool `protobuf:"varint,14,opt,name=disable_cert_validation,json=disableCertValidation" json:"disable_cert_validation,omitempty"`
	// TLS config
	TlsConfig *proto1.TLSConfig `protobuf:"bytes,15,opt,name=tls_config,json=tlsConfig" json:"tls_config,omitempty"`
	// Proxy URL, e.g. http://myproxy:3128
	ProxyUrl *string `protobuf:"bytes,16,opt,name=proxy_url,json=proxyUrl" json:"proxy_url,omitempty"`
	// HTTP proxy connect headers. These headers are passed on to the CONNECT
	// requests to the HTTP proxies. Note that CONNECT method is used to fetch
	// HTTPS URLs via HTTP proxies.
	ProxyConnectHeader map[string]string `protobuf:"bytes,23,rep,name=proxy_connect_header,json=proxyConnectHeader" json:"proxy_connect_header,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// User agent. Default user agent is Go's default user agent.
	UserAgent *string `protobuf:"bytes,19,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"`
	// Maximum idle connections to keep alive
	MaxIdleConns *int32 `protobuf:"varint,17,opt,name=max_idle_conns,json=maxIdleConns,def=256" json:"max_idle_conns,omitempty"`
	// The maximum amount of redirects the HTTP client will follow.
	// To disable redirects, use max_redirects: 0.
	MaxRedirects *int32 `protobuf:"varint,18,opt,name=max_redirects,json=maxRedirects" json:"max_redirects,omitempty"`
	// Add latency breakdown to probe results. This will add latency breakdown
	// by various stages of the request processing, e.g., DNS resolution, TCP
	// connection, TLS handshake, etc. You can select stages individually or
	// specify "ALL_STAGES" to get breakdown for all stages.
	//
	// Example:
	//
	//	latency_breakdown: [ ALL_STAGES ]
	//	latency_breakdown: [ DNS_LATENCY, CONNECT_LATENCY, TLS_HANDSHAKE_LATENCY ]
	LatencyBreakdown []ProbeConf_LatencyBreakdown `protobuf:"varint,22,rep,name=latency_breakdown,json=latencyBreakdown,enum=cloudprober.probes.http.ProbeConf_LatencyBreakdown" json:"latency_breakdown,omitempty"`
	// Parse HTTP response as additional metrics. If configured, Cloudprober
	// will try to extract metrics from HTTP response and export them along with
	// the default success/total/latency metrics.
	ResponseMetricsOptions *proto2.OutputMetricsOptions `protobuf:"bytes,96,opt,name=response_metrics_options,json=responseMetricsOptions" json:"response_metrics_options,omitempty"`
	// Interval between targets.
	IntervalBetweenTargetsMsec *int32 `protobuf:"varint,97,opt,name=interval_between_targets_msec,json=intervalBetweenTargetsMsec,def=10" json:"interval_between_targets_msec,omitempty"`
	// Requests per probe.
	// Number of HTTP requests per probe. Requests are executed concurrently and
	// each HTTP re contributes to probe results. For example, if you run two
	// requests per probe, "total" counter will be incremented by 2.
	RequestsPerProbe *int32 `protobuf:"varint,98,opt,name=requests_per_probe,json=requestsPerProbe,def=1" json:"requests_per_probe,omitempty"`
	// How long to wait between two requests to the same target. Only relevant
	// if requests_per_probe is also configured.
	//
	// This value should be less than (interval - timeout) / requests_per_probe.
	// This is to ensure that all requests are executed within one probe interval
	// and all of them get sufficient time. For example, if probe interval is 2s,
	// timeout is 1s, and requests_per_probe is 10,  requests_interval_msec
	// should be less than 10ms.
	RequestsIntervalMsec *int32 `protobuf:"varint,99,opt,name=requests_interval_msec,json=requestsIntervalMsec,def=0" json:"requests_interval_msec,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

// Default values for ProbeConf fields.
const (
	Default_ProbeConf_Protocol                   = ProbeConf_HTTP
	Default_ProbeConf_Scheme                     = ProbeConf_HTTP
	Default_ProbeConf_ExportResponseAsMetrics    = bool(false)
	Default_ProbeConf_Method                     = ProbeConf_GET
	Default_ProbeConf_MaxIdleConns               = int32(256)
	Default_ProbeConf_IntervalBetweenTargetsMsec = int32(10)
	Default_ProbeConf_RequestsPerProbe           = int32(1)
	Default_ProbeConf_RequestsIntervalMsec       = int32(0)
)

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

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

func (*ProbeConf) ProtoMessage() {}

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

func (x *ProbeConf) GetSchemeType() isProbeConf_SchemeType {
	if x != nil {
		return x.SchemeType
	}
	return nil
}

func (x *ProbeConf) GetProtocol() ProbeConf_Scheme {
	if x != nil {
		if x, ok := x.SchemeType.(*ProbeConf_Protocol); ok {
			return x.Protocol
		}
	}
	return Default_ProbeConf_Protocol
}

func (x *ProbeConf) GetScheme() ProbeConf_Scheme {
	if x != nil {
		if x, ok := x.SchemeType.(*ProbeConf_Scheme_); ok {
			return x.Scheme
		}
	}
	return Default_ProbeConf_Scheme
}

func (x *ProbeConf) GetRelativeUrl() string {
	if x != nil && x.RelativeUrl != nil {
		return *x.RelativeUrl
	}
	return ""
}

func (x *ProbeConf) GetPort() int32 {
	if x != nil && x.Port != nil {
		return *x.Port
	}
	return 0
}

func (x *ProbeConf) GetResolveFirst() bool {
	if x != nil && x.ResolveFirst != nil {
		return *x.ResolveFirst
	}
	return false
}

func (x *ProbeConf) GetExportResponseAsMetrics() bool {
	if x != nil && x.ExportResponseAsMetrics != nil {
		return *x.ExportResponseAsMetrics
	}
	return Default_ProbeConf_ExportResponseAsMetrics
}

func (x *ProbeConf) GetMethod() ProbeConf_Method {
	if x != nil && x.Method != nil {
		return *x.Method
	}
	return Default_ProbeConf_Method
}

func (x *ProbeConf) GetHeaders() []*ProbeConf_Header {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *ProbeConf) GetHeader() map[string]string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ProbeConf) GetBody() []string {
	if x != nil {
		return x.Body
	}
	return nil
}

func (x *ProbeConf) GetBodyFile() string {
	if x != nil && x.BodyFile != nil {
		return *x.BodyFile
	}
	return ""
}

func (x *ProbeConf) GetKeepAlive() bool {
	if x != nil && x.KeepAlive != nil {
		return *x.KeepAlive
	}
	return false
}

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

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

func (x *ProbeConf) GetDisableCertValidation() bool {
	if x != nil && x.DisableCertValidation != nil {
		return *x.DisableCertValidation
	}
	return false
}

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

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

func (x *ProbeConf) GetProxyConnectHeader() map[string]string {
	if x != nil {
		return x.ProxyConnectHeader
	}
	return nil
}

func (x *ProbeConf) GetUserAgent() string {
	if x != nil && x.UserAgent != nil {
		return *x.UserAgent
	}
	return ""
}

func (x *ProbeConf) GetMaxIdleConns() int32 {
	if x != nil && x.MaxIdleConns != nil {
		return *x.MaxIdleConns
	}
	return Default_ProbeConf_MaxIdleConns
}

func (x *ProbeConf) GetMaxRedirects() int32 {
	if x != nil && x.MaxRedirects != nil {
		return *x.MaxRedirects
	}
	return 0
}

func (x *ProbeConf) GetLatencyBreakdown() []ProbeConf_LatencyBreakdown {
	if x != nil {
		return x.LatencyBreakdown
	}
	return nil
}

func (x *ProbeConf) GetResponseMetricsOptions() *proto2.OutputMetricsOptions {
	if x != nil {
		return x.ResponseMetricsOptions
	}
	return nil
}

func (x *ProbeConf) GetIntervalBetweenTargetsMsec() int32 {
	if x != nil && x.IntervalBetweenTargetsMsec != nil {
		return *x.IntervalBetweenTargetsMsec
	}
	return Default_ProbeConf_IntervalBetweenTargetsMsec
}

func (x *ProbeConf) GetRequestsPerProbe() int32 {
	if x != nil && x.RequestsPerProbe != nil {
		return *x.RequestsPerProbe
	}
	return Default_ProbeConf_RequestsPerProbe
}

func (x *ProbeConf) GetRequestsIntervalMsec() int32 {
	if x != nil && x.RequestsIntervalMsec != nil {
		return *x.RequestsIntervalMsec
	}
	return Default_ProbeConf_RequestsIntervalMsec
}

type isProbeConf_SchemeType interface {
	isProbeConf_SchemeType()
}

type ProbeConf_Protocol struct {
	Protocol ProbeConf_Scheme `protobuf:"varint,1,opt,name=protocol,enum=cloudprober.probes.http.ProbeConf_Scheme,oneof,def=0"`
}

type ProbeConf_Scheme_ struct {
	Scheme ProbeConf_Scheme `protobuf:"varint,21,opt,name=scheme,enum=cloudprober.probes.http.ProbeConf_Scheme,oneof,def=0"`
}

func (*ProbeConf_Protocol) isProbeConf_SchemeType() {}

func (*ProbeConf_Scheme_) isProbeConf_SchemeType() {}

type ProbeConf_Header struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          *string                `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value         *string                `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProbeConf_Header) ProtoMessage() {}

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

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

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

var File_github_com_cloudprober_cloudprober_probes_http_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDesc = "" +
	"\n" +
	"Agithub.com/cloudprober/cloudprober/probes/http/proto/config.proto\x12\x17cloudprober.probes.http\x1aBgithub.com/cloudprober/cloudprober/common/oauth/proto/config.proto\x1aFgithub.com/cloudprober/cloudprober/common/tlsconfig/proto/config.proto\x1aEgithub.com/cloudprober/cloudprober/metrics/payload/proto/config.proto\"\x9f\x0f\n" +
	"\tProbeConf\x12M\n" +
	"\bprotocol\x18\x01 \x01(\x0e2).cloudprober.probes.http.ProbeConf.Scheme:\x04HTTPH\x00R\bprotocol\x12I\n" +
	"\x06scheme\x18\x15 \x01(\x0e2).cloudprober.probes.http.ProbeConf.Scheme:\x04HTTPH\x00R\x06scheme\x12!\n" +
	"\frelative_url\x18\x02 \x01(\tR\vrelativeUrl\x12\x12\n" +
	"\x04port\x18\x03 \x01(\x05R\x04port\x12#\n" +
	"\rresolve_first\x18\x04 \x01(\bR\fresolveFirst\x12B\n" +
	"\x1aexport_response_as_metrics\x18\x05 \x01(\b:\x05falseR\x17exportResponseAsMetrics\x12F\n" +
	"\x06method\x18\a \x01(\x0e2).cloudprober.probes.http.ProbeConf.Method:\x03GETR\x06method\x12C\n" +
	"\aheaders\x18\b \x03(\v2).cloudprober.probes.http.ProbeConf.HeaderR\aheaders\x12F\n" +
	"\x06header\x18\x14 \x03(\v2..cloudprober.probes.http.ProbeConf.HeaderEntryR\x06header\x12\x12\n" +
	"\x04body\x18\t \x03(\tR\x04body\x12\x1b\n" +
	"\tbody_file\x18\x18 \x01(\tR\bbodyFile\x12\x1d\n" +
	"\n" +
	"keep_alive\x18\n" +
	" \x01(\bR\tkeepAlive\x12<\n" +
	"\foauth_config\x18\v \x01(\v2\x19.cloudprober.oauth.ConfigR\voauthConfig\x12#\n" +
	"\rdisable_http2\x18\r \x01(\bR\fdisableHttp2\x126\n" +
	"\x17disable_cert_validation\x18\x0e \x01(\bR\x15disableCertValidation\x12?\n" +
	"\n" +
	"tls_config\x18\x0f \x01(\v2 .cloudprober.tlsconfig.TLSConfigR\ttlsConfig\x12\x1b\n" +
	"\tproxy_url\x18\x10 \x01(\tR\bproxyUrl\x12l\n" +
	"\x14proxy_connect_header\x18\x17 \x03(\v2:.cloudprober.probes.http.ProbeConf.ProxyConnectHeaderEntryR\x12proxyConnectHeader\x12\x1d\n" +
	"\n" +
	"user_agent\x18\x13 \x01(\tR\tuserAgent\x12)\n" +
	"\x0emax_idle_conns\x18\x11 \x01(\x05:\x03256R\fmaxIdleConns\x12#\n" +
	"\rmax_redirects\x18\x12 \x01(\x05R\fmaxRedirects\x12`\n" +
	"\x11latency_breakdown\x18\x16 \x03(\x0e23.cloudprober.probes.http.ProbeConf.LatencyBreakdownR\x10latencyBreakdown\x12k\n" +
	"\x18response_metrics_options\x18` \x01(\v21.cloudprober.metrics.payload.OutputMetricsOptionsR\x16responseMetricsOptions\x12E\n" +
	"\x1dinterval_between_targets_msec\x18a \x01(\x05:\x0210R\x1aintervalBetweenTargetsMsec\x12/\n" +
	"\x12requests_per_probe\x18b \x01(\x05:\x011R\x10requestsPerProbe\x127\n" +
	"\x16requests_interval_msec\x18c \x01(\x05:\x010R\x14requestsIntervalMsec\x1a2\n" +
	"\x06Header\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value\x1a9\n" +
	"\vHeaderEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aE\n" +
	"\x17ProxyConnectHeaderEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x1d\n" +
	"\x06Scheme\x12\b\n" +
	"\x04HTTP\x10\x00\x12\t\n" +
	"\x05HTTPS\x10\x01\"R\n" +
	"\x06Method\x12\a\n" +
	"\x03GET\x10\x00\x12\b\n" +
	"\x04POST\x10\x01\x12\a\n" +
	"\x03PUT\x10\x02\x12\b\n" +
	"\x04HEAD\x10\x03\x12\n" +
	"\n" +
	"\x06DELETE\x10\x04\x12\t\n" +
	"\x05PATCH\x10\x05\x12\v\n" +
	"\aOPTIONS\x10\x06\"\xa4\x01\n" +
	"\x10LatencyBreakdown\x12\x10\n" +
	"\fNO_BREAKDOWN\x10\x00\x12\x0e\n" +
	"\n" +
	"ALL_STAGES\x10\x01\x12\x0f\n" +
	"\vDNS_LATENCY\x10\x02\x12\x13\n" +
	"\x0fCONNECT_LATENCY\x10\x03\x12\x19\n" +
	"\x15TLS_HANDSHAKE_LATENCY\x10\x04\x12\x15\n" +
	"\x11REQ_WRITE_LATENCY\x10\x05\x12\x16\n" +
	"\x12FIRST_BYTE_LATENCY\x10\x06B\r\n" +
	"\vscheme_typeB6Z4github.com/cloudprober/cloudprober/probes/http/proto"

var (
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_goTypes = []any{
	(ProbeConf_Scheme)(0),               // 0: cloudprober.probes.http.ProbeConf.Scheme
	(ProbeConf_Method)(0),               // 1: cloudprober.probes.http.ProbeConf.Method
	(ProbeConf_LatencyBreakdown)(0),     // 2: cloudprober.probes.http.ProbeConf.LatencyBreakdown
	(*ProbeConf)(nil),                   // 3: cloudprober.probes.http.ProbeConf
	(*ProbeConf_Header)(nil),            // 4: cloudprober.probes.http.ProbeConf.Header
	nil,                                 // 5: cloudprober.probes.http.ProbeConf.HeaderEntry
	nil,                                 // 6: cloudprober.probes.http.ProbeConf.ProxyConnectHeaderEntry
	(*proto.Config)(nil),                // 7: cloudprober.oauth.Config
	(*proto1.TLSConfig)(nil),            // 8: cloudprober.tlsconfig.TLSConfig
	(*proto2.OutputMetricsOptions)(nil), // 9: cloudprober.metrics.payload.OutputMetricsOptions
}
var file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_depIdxs = []int32{
	0,  // 0: cloudprober.probes.http.ProbeConf.protocol:type_name -> cloudprober.probes.http.ProbeConf.Scheme
	0,  // 1: cloudprober.probes.http.ProbeConf.scheme:type_name -> cloudprober.probes.http.ProbeConf.Scheme
	1,  // 2: cloudprober.probes.http.ProbeConf.method:type_name -> cloudprober.probes.http.ProbeConf.Method
	4,  // 3: cloudprober.probes.http.ProbeConf.headers:type_name -> cloudprober.probes.http.ProbeConf.Header
	5,  // 4: cloudprober.probes.http.ProbeConf.header:type_name -> cloudprober.probes.http.ProbeConf.HeaderEntry
	7,  // 5: cloudprober.probes.http.ProbeConf.oauth_config:type_name -> cloudprober.oauth.Config
	8,  // 6: cloudprober.probes.http.ProbeConf.tls_config:type_name -> cloudprober.tlsconfig.TLSConfig
	6,  // 7: cloudprober.probes.http.ProbeConf.proxy_connect_header:type_name -> cloudprober.probes.http.ProbeConf.ProxyConnectHeaderEntry
	2,  // 8: cloudprober.probes.http.ProbeConf.latency_breakdown:type_name -> cloudprober.probes.http.ProbeConf.LatencyBreakdown
	9,  // 9: cloudprober.probes.http.ProbeConf.response_metrics_options:type_name -> cloudprober.metrics.payload.OutputMetricsOptions
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_init() }
func file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_probes_http_proto_config_proto != nil {
		return
	}
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_msgTypes[0].OneofWrappers = []any{
		(*ProbeConf_Protocol)(nil),
		(*ProbeConf_Scheme_)(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_http_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_depIdxs,
		EnumInfos:         file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_enumTypes,
		MessageInfos:      file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_probes_http_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_probes_http_proto_config_proto_depIdxs = nil
}
