// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.2
// source: envoy/config/trace/v3/zipkin.proto

package tracev3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Available trace context options for handling different trace header formats.
type ZipkinConfig_TraceContextOption int32

const (
	// Use B3 headers only (default behavior).
	ZipkinConfig_USE_B3 ZipkinConfig_TraceContextOption = 0
	// Enable B3 and W3C dual header support:
	// - For downstream: Extract from B3 headers first, fallback to W3C traceparent if B3 is unavailable.
	// - For upstream: Inject both B3 and W3C traceparent headers.
	// When this option is NOT set, only B3 headers are used for both extraction and injection.
	ZipkinConfig_USE_B3_WITH_W3C_PROPAGATION ZipkinConfig_TraceContextOption = 1
)

// Enum value maps for ZipkinConfig_TraceContextOption.
var (
	ZipkinConfig_TraceContextOption_name = map[int32]string{
		0: "USE_B3",
		1: "USE_B3_WITH_W3C_PROPAGATION",
	}
	ZipkinConfig_TraceContextOption_value = map[string]int32{
		"USE_B3":                      0,
		"USE_B3_WITH_W3C_PROPAGATION": 1,
	}
)

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

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

func (ZipkinConfig_TraceContextOption) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_trace_v3_zipkin_proto_enumTypes[0].Descriptor()
}

func (ZipkinConfig_TraceContextOption) Type() protoreflect.EnumType {
	return &file_envoy_config_trace_v3_zipkin_proto_enumTypes[0]
}

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

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

// Available Zipkin collector endpoint versions.
type ZipkinConfig_CollectorEndpointVersion int32

const (
	// Zipkin API v1, JSON over HTTP.
	// [#comment: The default implementation of Zipkin client before this field is added was only v1
	// and the way user configure this was by not explicitly specifying the version. Consequently,
	// before this is added, the corresponding Zipkin collector expected to receive v1 payload.
	// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when
	// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field,
	// since in Zipkin realm this v1 version is considered to be not preferable anymore.]
	//
	// Deprecated: Marked as deprecated in envoy/config/trace/v3/zipkin.proto.
	ZipkinConfig_DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE ZipkinConfig_CollectorEndpointVersion = 0
	// Zipkin API v2, JSON over HTTP.
	ZipkinConfig_HTTP_JSON ZipkinConfig_CollectorEndpointVersion = 1
	// Zipkin API v2, protobuf over HTTP.
	ZipkinConfig_HTTP_PROTO ZipkinConfig_CollectorEndpointVersion = 2
	// [#not-implemented-hide:]
	ZipkinConfig_GRPC ZipkinConfig_CollectorEndpointVersion = 3
)

// Enum value maps for ZipkinConfig_CollectorEndpointVersion.
var (
	ZipkinConfig_CollectorEndpointVersion_name = map[int32]string{
		0: "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE",
		1: "HTTP_JSON",
		2: "HTTP_PROTO",
		3: "GRPC",
	}
	ZipkinConfig_CollectorEndpointVersion_value = map[string]int32{
		"DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE": 0,
		"HTTP_JSON":                             1,
		"HTTP_PROTO":                            2,
		"GRPC":                                  3,
	}
)

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

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

func (ZipkinConfig_CollectorEndpointVersion) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_trace_v3_zipkin_proto_enumTypes[1].Descriptor()
}

func (ZipkinConfig_CollectorEndpointVersion) Type() protoreflect.EnumType {
	return &file_envoy_config_trace_v3_zipkin_proto_enumTypes[1]
}

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

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

// Configuration for the Zipkin tracer.
// [#extension: envoy.tracers.zipkin]
// [#next-free-field: 10]
type ZipkinConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The cluster manager cluster that hosts the Zipkin collectors.
	//
	// .. note::
	//
	//	This field will be deprecated in future releases in favor of
	//	:ref:`collector_service <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_service>`.
	//
	//	Either this field or ``collector_service`` must be specified.
	CollectorCluster string `protobuf:"bytes,1,opt,name=collector_cluster,json=collectorCluster,proto3" json:"collector_cluster,omitempty"`
	// The API endpoint of the Zipkin service where the spans will be sent. When
	// using a standard Zipkin installation.
	//
	// .. note::
	//
	//	This field will be deprecated in future releases in favor of
	//	:ref:`collector_service <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_service>`.
	//
	//	Required when using ``collector_cluster``.
	CollectorEndpoint string `protobuf:"bytes,2,opt,name=collector_endpoint,json=collectorEndpoint,proto3" json:"collector_endpoint,omitempty"`
	// Determines whether a 128bit trace id will be used when creating a new
	// trace instance. The default value is false, which will result in a 64 bit trace id being used.
	TraceId_128Bit bool `protobuf:"varint,3,opt,name=trace_id_128bit,json=traceId128bit,proto3" json:"trace_id_128bit,omitempty"`
	// Determines whether client and server spans will share the same span context.
	// The default value is true.
	SharedSpanContext *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=shared_span_context,json=sharedSpanContext,proto3" json:"shared_span_context,omitempty"`
	// Determines the selected collector endpoint version.
	CollectorEndpointVersion ZipkinConfig_CollectorEndpointVersion `protobuf:"varint,5,opt,name=collector_endpoint_version,json=collectorEndpointVersion,proto3,enum=envoy.config.trace.v3.ZipkinConfig_CollectorEndpointVersion" json:"collector_endpoint_version,omitempty"`
	// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
	// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_cluster>` above.
	//
	// .. note::
	//
	//	This field will be deprecated in future releases in favor of
	//	:ref:`collector_service <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_service>`.
	CollectorHostname string `protobuf:"bytes,6,opt,name=collector_hostname,json=collectorHostname,proto3" json:"collector_hostname,omitempty"`
	// If this is set to true, then Envoy will be treated as an independent hop in trace chain. A complete span pair will be created for a single
	// request. Server span will be created for the downstream request and client span will be created for the related upstream request.
	// This should be set to true in the following cases:
	//
	// * The Envoy Proxy is used as gateway or ingress.
	// * The Envoy Proxy is used as sidecar but inbound traffic capturing or outbound traffic capturing is disabled.
	// * Any case that the :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>` is set to true.
	//
	// .. attention::
	//
	//	If this is set to true, then the
	//	:ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
	//	SHOULD be set to true also to ensure the correctness of trace chain.
	//
	//	Both this field and ``start_child_span`` are deprecated by the
	//	:ref:`spawn_upstream_span <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span>`.
	//	Please use that ``spawn_upstream_span`` field to control the span creation.
	//
	// Deprecated: Marked as deprecated in envoy/config/trace/v3/zipkin.proto.
	SplitSpansForRequest bool `protobuf:"varint,7,opt,name=split_spans_for_request,json=splitSpansForRequest,proto3" json:"split_spans_for_request,omitempty"`
	// Determines which trace context format to use for trace header extraction and propagation.
	// This controls both downstream request header extraction and upstream request header injection.
	// Here is the spec for W3C trace headers: https://www.w3.org/TR/trace-context/
	// The default value is USE_B3 to maintain backward compatibility.
	TraceContextOption ZipkinConfig_TraceContextOption `protobuf:"varint,8,opt,name=trace_context_option,json=traceContextOption,proto3,enum=envoy.config.trace.v3.ZipkinConfig_TraceContextOption" json:"trace_context_option,omitempty"`
	// HTTP service configuration for the Zipkin collector.
	// When specified, this configuration takes precedence over the legacy fields:
	// collector_cluster, collector_endpoint, and collector_hostname.
	// This provides a complete HTTP service configuration including cluster, URI, timeout, and headers.
	// If not specified, the legacy fields above will be used for backward compatibility.
	//
	// Required fields when using collector_service:
	//
	// * “http_uri.cluster“ - Must be specified and non-empty
	// * “http_uri.uri“ - Must be specified and non-empty
	// * “http_uri.timeout“ - Optional
	//
	// Full URI Support with Automatic Parsing:
	//
	// The “uri“ field supports both path-only and full URI formats:
	//
	// .. code-block:: yaml
	//
	//	tracing:
	//	  provider:
	//	    name: envoy.tracers.zipkin
	//	    typed_config:
	//	      "@type": type.googleapis.com/envoy.config.trace.v3.ZipkinConfig
	//	      collector_service:
	//	        http_uri:
	//	          # Full URI format - hostname and path are extracted automatically
	//	          uri: "https://zipkin-collector.example.com/api/v2/spans"
	//	          cluster: zipkin
	//	          timeout: 5s
	//	        request_headers_to_add:
	//	          - header:
	//	              key: "X-Custom-Token"
	//	              value: "your-custom-token"
	//	          - header:
	//	              key: "X-Service-ID"
	//	              value: "your-service-id"
	//
	// URI Parsing Behavior:
	//
	// * Full URI: “"https://zipkin-collector.example.com/api/v2/spans"“
	//
	//   - Hostname: “zipkin-collector.example.com“ (sets HTTP “Host“ header)
	//   - Path: “/api/v2/spans“ (sets HTTP request path)
	//
	// * Path only: “"/api/v2/spans"“
	//
	//   - Hostname: Uses cluster name as fallback
	//   - Path: “/api/v2/spans“
	CollectorService *v3.HttpService `protobuf:"bytes,9,opt,name=collector_service,json=collectorService,proto3" json:"collector_service,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*ZipkinConfig) ProtoMessage() {}

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

func (x *ZipkinConfig) GetCollectorCluster() string {
	if x != nil {
		return x.CollectorCluster
	}
	return ""
}

func (x *ZipkinConfig) GetCollectorEndpoint() string {
	if x != nil {
		return x.CollectorEndpoint
	}
	return ""
}

func (x *ZipkinConfig) GetTraceId_128Bit() bool {
	if x != nil {
		return x.TraceId_128Bit
	}
	return false
}

func (x *ZipkinConfig) GetSharedSpanContext() *wrapperspb.BoolValue {
	if x != nil {
		return x.SharedSpanContext
	}
	return nil
}

func (x *ZipkinConfig) GetCollectorEndpointVersion() ZipkinConfig_CollectorEndpointVersion {
	if x != nil {
		return x.CollectorEndpointVersion
	}
	return ZipkinConfig_DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE
}

func (x *ZipkinConfig) GetCollectorHostname() string {
	if x != nil {
		return x.CollectorHostname
	}
	return ""
}

// Deprecated: Marked as deprecated in envoy/config/trace/v3/zipkin.proto.
func (x *ZipkinConfig) GetSplitSpansForRequest() bool {
	if x != nil {
		return x.SplitSpansForRequest
	}
	return false
}

func (x *ZipkinConfig) GetTraceContextOption() ZipkinConfig_TraceContextOption {
	if x != nil {
		return x.TraceContextOption
	}
	return ZipkinConfig_USE_B3
}

func (x *ZipkinConfig) GetCollectorService() *v3.HttpService {
	if x != nil {
		return x.CollectorService
	}
	return nil
}

var File_envoy_config_trace_v3_zipkin_proto protoreflect.FileDescriptor

const file_envoy_config_trace_v3_zipkin_proto_rawDesc = "" +
	"\n" +
	"\"envoy/config/trace/v3/zipkin.proto\x12\x15envoy.config.trace.v3\x1a'envoy/config/core/v3/http_service.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1eudpa/annotations/migrate.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\"\xef\x06\n" +
	"\fZipkinConfig\x12+\n" +
	"\x11collector_cluster\x18\x01 \x01(\tR\x10collectorCluster\x12-\n" +
	"\x12collector_endpoint\x18\x02 \x01(\tR\x11collectorEndpoint\x12&\n" +
	"\x0ftrace_id_128bit\x18\x03 \x01(\bR\rtraceId128bit\x12J\n" +
	"\x13shared_span_context\x18\x04 \x01(\v2\x1a.google.protobuf.BoolValueR\x11sharedSpanContext\x12z\n" +
	"\x1acollector_endpoint_version\x18\x05 \x01(\x0e2<.envoy.config.trace.v3.ZipkinConfig.CollectorEndpointVersionR\x18collectorEndpointVersion\x12-\n" +
	"\x12collector_hostname\x18\x06 \x01(\tR\x11collectorHostname\x12B\n" +
	"\x17split_spans_for_request\x18\a \x01(\bB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\x14splitSpansForRequest\x12h\n" +
	"\x14trace_context_option\x18\b \x01(\x0e26.envoy.config.trace.v3.ZipkinConfig.TraceContextOptionR\x12traceContextOption\x12N\n" +
	"\x11collector_service\x18\t \x01(\v2!.envoy.config.core.v3.HttpServiceR\x10collectorService\"A\n" +
	"\x12TraceContextOption\x12\n" +
	"\n" +
	"\x06USE_B3\x10\x00\x12\x1f\n" +
	"\x1bUSE_B3_WITH_W3C_PROPAGATION\x10\x01\"x\n" +
	"\x18CollectorEndpointVersion\x123\n" +
	"%DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE\x10\x00\x1a\b\xa8\xf7\xb4\x8b\x02\x01\b\x01\x12\r\n" +
	"\tHTTP_JSON\x10\x01\x12\x0e\n" +
	"\n" +
	"HTTP_PROTO\x10\x02\x12\b\n" +
	"\x04GRPC\x10\x03:)\x9aň\x1e$\n" +
	"\"envoy.config.trace.v2.ZipkinConfigB\xb1\x01\xf2\x98\xfe\x8f\x05)\x12'envoy.extensions.tracers.zipkin.v4alpha\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"#io.envoyproxy.envoy.config.trace.v3B\vZipkinProtoP\x01ZDgithub.com/envoyproxy/go-control-plane/envoy/config/trace/v3;tracev3b\x06proto3"

var (
	file_envoy_config_trace_v3_zipkin_proto_rawDescOnce sync.Once
	file_envoy_config_trace_v3_zipkin_proto_rawDescData []byte
)

func file_envoy_config_trace_v3_zipkin_proto_rawDescGZIP() []byte {
	file_envoy_config_trace_v3_zipkin_proto_rawDescOnce.Do(func() {
		file_envoy_config_trace_v3_zipkin_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_config_trace_v3_zipkin_proto_rawDesc), len(file_envoy_config_trace_v3_zipkin_proto_rawDesc)))
	})
	return file_envoy_config_trace_v3_zipkin_proto_rawDescData
}

var file_envoy_config_trace_v3_zipkin_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_envoy_config_trace_v3_zipkin_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_envoy_config_trace_v3_zipkin_proto_goTypes = []any{
	(ZipkinConfig_TraceContextOption)(0),       // 0: envoy.config.trace.v3.ZipkinConfig.TraceContextOption
	(ZipkinConfig_CollectorEndpointVersion)(0), // 1: envoy.config.trace.v3.ZipkinConfig.CollectorEndpointVersion
	(*ZipkinConfig)(nil),                       // 2: envoy.config.trace.v3.ZipkinConfig
	(*wrapperspb.BoolValue)(nil),               // 3: google.protobuf.BoolValue
	(*v3.HttpService)(nil),                     // 4: envoy.config.core.v3.HttpService
}
var file_envoy_config_trace_v3_zipkin_proto_depIdxs = []int32{
	3, // 0: envoy.config.trace.v3.ZipkinConfig.shared_span_context:type_name -> google.protobuf.BoolValue
	1, // 1: envoy.config.trace.v3.ZipkinConfig.collector_endpoint_version:type_name -> envoy.config.trace.v3.ZipkinConfig.CollectorEndpointVersion
	0, // 2: envoy.config.trace.v3.ZipkinConfig.trace_context_option:type_name -> envoy.config.trace.v3.ZipkinConfig.TraceContextOption
	4, // 3: envoy.config.trace.v3.ZipkinConfig.collector_service:type_name -> envoy.config.core.v3.HttpService
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_envoy_config_trace_v3_zipkin_proto_init() }
func file_envoy_config_trace_v3_zipkin_proto_init() {
	if File_envoy_config_trace_v3_zipkin_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_config_trace_v3_zipkin_proto_rawDesc), len(file_envoy_config_trace_v3_zipkin_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_config_trace_v3_zipkin_proto_goTypes,
		DependencyIndexes: file_envoy_config_trace_v3_zipkin_proto_depIdxs,
		EnumInfos:         file_envoy_config_trace_v3_zipkin_proto_enumTypes,
		MessageInfos:      file_envoy_config_trace_v3_zipkin_proto_msgTypes,
	}.Build()
	File_envoy_config_trace_v3_zipkin_proto = out.File
	file_envoy_config_trace_v3_zipkin_proto_goTypes = nil
	file_envoy_config_trace_v3_zipkin_proto_depIdxs = nil
}
