xds_api/generated/
envoy.config.trace.v3.rs

1// This file is @generated by prost-build.
2/// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy.
3///
4/// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one
5/// supported.
6///
7/// .. attention::
8///
9///    Use of this message type has been deprecated in favor of direct use of
10///    :ref:`Tracing.Http <envoy_v3_api_msg_config.trace.v3.Tracing.Http>`.
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct Tracing {
13    /// Provides configuration for the HTTP tracer.
14    #[prost(message, optional, tag = "1")]
15    pub http: ::core::option::Option<tracing::Http>,
16}
17/// Nested message and enum types in `Tracing`.
18pub mod tracing {
19    /// Configuration for an HTTP tracer provider used by Envoy.
20    ///
21    /// The configuration is defined by the
22    /// :ref:`HttpConnectionManager.Tracing <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
23    /// :ref:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
24    /// field.
25    #[derive(Clone, PartialEq, ::prost::Message)]
26    pub struct Http {
27        /// The name of the HTTP trace driver to instantiate. The name must match a
28        /// supported HTTP trace driver.
29        /// See the :ref:`extensions listed in typed_config below <extension_category_envoy.tracers>` for the default list of the HTTP trace driver.
30        #[prost(string, tag = "1")]
31        pub name: ::prost::alloc::string::String,
32        /// Trace driver specific configuration which must be set according to the driver being instantiated.
33        /// \[#extension-category: envoy.tracers\]
34        #[prost(oneof = "http::ConfigType", tags = "3")]
35        pub config_type: ::core::option::Option<http::ConfigType>,
36    }
37    /// Nested message and enum types in `Http`.
38    pub mod http {
39        /// Trace driver specific configuration which must be set according to the driver being instantiated.
40        /// \[#extension-category: envoy.tracers\]
41        #[derive(Clone, PartialEq, ::prost::Oneof)]
42        pub enum ConfigType {
43            #[prost(message, tag = "3")]
44            TypedConfig(super::super::super::super::super::super::google::protobuf::Any),
45        }
46    }
47    impl ::prost::Name for Http {
48        const NAME: &'static str = "Http";
49        const PACKAGE: &'static str = "envoy.config.trace.v3";
50        fn full_name() -> ::prost::alloc::string::String {
51            "envoy.config.trace.v3.Tracing.Http".into()
52        }
53        fn type_url() -> ::prost::alloc::string::String {
54            "type.googleapis.com/envoy.config.trace.v3.Tracing.Http".into()
55        }
56    }
57}
58impl ::prost::Name for Tracing {
59    const NAME: &'static str = "Tracing";
60    const PACKAGE: &'static str = "envoy.config.trace.v3";
61    fn full_name() -> ::prost::alloc::string::String {
62        "envoy.config.trace.v3.Tracing".into()
63    }
64    fn type_url() -> ::prost::alloc::string::String {
65        "type.googleapis.com/envoy.config.trace.v3.Tracing".into()
66    }
67}
68/// Configuration for the Datadog tracer.
69/// \[#extension: envoy.tracers.datadog\]
70#[derive(Clone, PartialEq, ::prost::Message)]
71pub struct DatadogConfig {
72    /// The cluster to use for submitting traces to the Datadog agent.
73    #[prost(string, tag = "1")]
74    pub collector_cluster: ::prost::alloc::string::String,
75    /// The name used for the service when traces are generated by envoy.
76    #[prost(string, tag = "2")]
77    pub service_name: ::prost::alloc::string::String,
78    /// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
79    /// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.DatadogConfig.collector_cluster>` above.
80    #[prost(string, tag = "3")]
81    pub collector_hostname: ::prost::alloc::string::String,
82}
83impl ::prost::Name for DatadogConfig {
84    const NAME: &'static str = "DatadogConfig";
85    const PACKAGE: &'static str = "envoy.config.trace.v3";
86    fn full_name() -> ::prost::alloc::string::String {
87        "envoy.config.trace.v3.DatadogConfig".into()
88    }
89    fn type_url() -> ::prost::alloc::string::String {
90        "type.googleapis.com/envoy.config.trace.v3.DatadogConfig".into()
91    }
92}
93/// DynamicOtConfig is used to dynamically load a tracer from a shared library
94/// that implements the `OpenTracing dynamic loading API
95/// <<https://github.com/opentracing/opentracing-cpp>`_.>
96/// \[#extension: envoy.tracers.dynamic_ot\]
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct DynamicOtConfig {
99    /// Dynamic library implementing the `OpenTracing API
100    /// <<https://github.com/opentracing/opentracing-cpp>`_.>
101    #[deprecated]
102    #[prost(string, tag = "1")]
103    pub library: ::prost::alloc::string::String,
104    /// The configuration to use when creating a tracer from the given dynamic
105    /// library.
106    #[deprecated]
107    #[prost(message, optional, tag = "2")]
108    pub config: ::core::option::Option<
109        super::super::super::super::google::protobuf::Struct,
110    >,
111}
112impl ::prost::Name for DynamicOtConfig {
113    const NAME: &'static str = "DynamicOtConfig";
114    const PACKAGE: &'static str = "envoy.config.trace.v3";
115    fn full_name() -> ::prost::alloc::string::String {
116        "envoy.config.trace.v3.DynamicOtConfig".into()
117    }
118    fn type_url() -> ::prost::alloc::string::String {
119        "type.googleapis.com/envoy.config.trace.v3.DynamicOtConfig".into()
120    }
121}
122/// Configuration for the LightStep tracer.
123/// \[#extension: envoy.tracers.lightstep\]
124/// \[#not-implemented-hide:\]
125#[derive(Clone, PartialEq, ::prost::Message)]
126pub struct LightstepConfig {
127    /// The cluster manager cluster that hosts the LightStep collectors.
128    #[prost(string, tag = "1")]
129    pub collector_cluster: ::prost::alloc::string::String,
130    /// File containing the access token to the `LightStep
131    /// <<https://lightstep.com/>`_> API.
132    #[deprecated]
133    #[prost(string, tag = "2")]
134    pub access_token_file: ::prost::alloc::string::String,
135    /// Access token to the `LightStep <<https://lightstep.com/>`_> API.
136    #[prost(message, optional, tag = "4")]
137    pub access_token: ::core::option::Option<super::super::core::v3::DataSource>,
138    /// Propagation modes to use by LightStep's tracer.
139    #[prost(
140        enumeration = "lightstep_config::PropagationMode",
141        repeated,
142        packed = "false",
143        tag = "3"
144    )]
145    pub propagation_modes: ::prost::alloc::vec::Vec<i32>,
146}
147/// Nested message and enum types in `LightstepConfig`.
148pub mod lightstep_config {
149    /// Available propagation modes
150    #[derive(
151        Clone,
152        Copy,
153        Debug,
154        PartialEq,
155        Eq,
156        Hash,
157        PartialOrd,
158        Ord,
159        ::prost::Enumeration
160    )]
161    #[repr(i32)]
162    pub enum PropagationMode {
163        /// Propagate trace context in the single header x-ot-span-context.
164        Envoy = 0,
165        /// Propagate trace context using LightStep's native format.
166        Lightstep = 1,
167        /// Propagate trace context using the b3 format.
168        B3 = 2,
169        /// Propagation trace context using the w3 trace-context standard.
170        TraceContext = 3,
171    }
172    impl PropagationMode {
173        /// String value of the enum field names used in the ProtoBuf definition.
174        ///
175        /// The values are not transformed in any way and thus are considered stable
176        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
177        pub fn as_str_name(&self) -> &'static str {
178            match self {
179                Self::Envoy => "ENVOY",
180                Self::Lightstep => "LIGHTSTEP",
181                Self::B3 => "B3",
182                Self::TraceContext => "TRACE_CONTEXT",
183            }
184        }
185        /// Creates an enum from field names used in the ProtoBuf definition.
186        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
187            match value {
188                "ENVOY" => Some(Self::Envoy),
189                "LIGHTSTEP" => Some(Self::Lightstep),
190                "B3" => Some(Self::B3),
191                "TRACE_CONTEXT" => Some(Self::TraceContext),
192                _ => None,
193            }
194        }
195    }
196}
197impl ::prost::Name for LightstepConfig {
198    const NAME: &'static str = "LightstepConfig";
199    const PACKAGE: &'static str = "envoy.config.trace.v3";
200    fn full_name() -> ::prost::alloc::string::String {
201        "envoy.config.trace.v3.LightstepConfig".into()
202    }
203    fn type_url() -> ::prost::alloc::string::String {
204        "type.googleapis.com/envoy.config.trace.v3.LightstepConfig".into()
205    }
206}
207/// Configuration for the OpenCensus tracer.
208/// \[#next-free-field: 15\]
209/// \[#extension: envoy.tracers.opencensus\]
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct OpenCensusConfig {
212    /// Configures tracing, e.g. the sampler, max number of annotations, etc.
213    #[deprecated]
214    #[prost(message, optional, tag = "1")]
215    pub trace_config: ::core::option::Option<
216        super::super::super::super::opencensus::proto::trace::v1::TraceConfig,
217    >,
218    /// Enables the stdout exporter if set to true. This is intended for debugging
219    /// purposes.
220    #[deprecated]
221    #[prost(bool, tag = "2")]
222    pub stdout_exporter_enabled: bool,
223    /// Enables the Stackdriver exporter if set to true. The project_id must also
224    /// be set.
225    #[deprecated]
226    #[prost(bool, tag = "3")]
227    pub stackdriver_exporter_enabled: bool,
228    /// The Cloud project_id to use for Stackdriver tracing.
229    #[deprecated]
230    #[prost(string, tag = "4")]
231    pub stackdriver_project_id: ::prost::alloc::string::String,
232    /// (optional) By default, the Stackdriver exporter will connect to production
233    /// Stackdriver. If stackdriver_address is non-empty, it will instead connect
234    /// to this address, which is in the gRPC format:
235    /// <https://github.com/grpc/grpc/blob/master/doc/naming.md>
236    #[deprecated]
237    #[prost(string, tag = "10")]
238    pub stackdriver_address: ::prost::alloc::string::String,
239    /// (optional) The gRPC server that hosts Stackdriver tracing service. Only
240    /// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>`
241    /// is not provided, the default production Stackdriver address will be used.
242    #[deprecated]
243    #[prost(message, optional, tag = "13")]
244    pub stackdriver_grpc_service: ::core::option::Option<
245        super::super::core::v3::GrpcService,
246    >,
247    /// Enables the Zipkin exporter if set to true. The url and service name must
248    /// also be set. This is deprecated, prefer to use Envoy's :ref:`native Zipkin
249    /// tracer <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
250    #[deprecated]
251    #[prost(bool, tag = "5")]
252    pub zipkin_exporter_enabled: bool,
253    /// The URL to Zipkin, e.g. "<http://127.0.0.1:9411/api/v2/spans".> This is
254    /// deprecated, prefer to use Envoy's :ref:`native Zipkin tracer
255    /// <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
256    #[deprecated]
257    #[prost(string, tag = "6")]
258    pub zipkin_url: ::prost::alloc::string::String,
259    /// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or
260    /// ocagent_grpc_service must also be set.
261    #[deprecated]
262    #[prost(bool, tag = "11")]
263    pub ocagent_exporter_enabled: bool,
264    /// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC
265    /// format: <https://github.com/grpc/grpc/blob/master/doc/naming.md>
266    /// \[#comment:TODO: deprecate this field\]
267    #[deprecated]
268    #[prost(string, tag = "12")]
269    pub ocagent_address: ::prost::alloc::string::String,
270    /// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported.
271    /// This is only used if the ocagent_address is left empty.
272    #[deprecated]
273    #[prost(message, optional, tag = "14")]
274    pub ocagent_grpc_service: ::core::option::Option<
275        super::super::core::v3::GrpcService,
276    >,
277    /// List of incoming trace context headers we will accept. First one found
278    /// wins.
279    #[deprecated]
280    #[prost(
281        enumeration = "open_census_config::TraceContext",
282        repeated,
283        packed = "false",
284        tag = "8"
285    )]
286    pub incoming_trace_context: ::prost::alloc::vec::Vec<i32>,
287    /// List of outgoing trace context headers we will produce.
288    #[deprecated]
289    #[prost(
290        enumeration = "open_census_config::TraceContext",
291        repeated,
292        packed = "false",
293        tag = "9"
294    )]
295    pub outgoing_trace_context: ::prost::alloc::vec::Vec<i32>,
296}
297/// Nested message and enum types in `OpenCensusConfig`.
298pub mod open_census_config {
299    #[derive(
300        Clone,
301        Copy,
302        Debug,
303        PartialEq,
304        Eq,
305        Hash,
306        PartialOrd,
307        Ord,
308        ::prost::Enumeration
309    )]
310    #[repr(i32)]
311    pub enum TraceContext {
312        /// No-op default, no trace context is utilized.
313        None = 0,
314        /// W3C Trace-Context format "traceparent:" header.
315        TraceContext = 1,
316        /// Binary "grpc-trace-bin:" header.
317        GrpcTraceBin = 2,
318        /// "X-Cloud-Trace-Context:" header.
319        CloudTraceContext = 3,
320        /// X-B3-* headers.
321        B3 = 4,
322    }
323    impl TraceContext {
324        /// String value of the enum field names used in the ProtoBuf definition.
325        ///
326        /// The values are not transformed in any way and thus are considered stable
327        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
328        pub fn as_str_name(&self) -> &'static str {
329            match self {
330                Self::None => "NONE",
331                Self::TraceContext => "TRACE_CONTEXT",
332                Self::GrpcTraceBin => "GRPC_TRACE_BIN",
333                Self::CloudTraceContext => "CLOUD_TRACE_CONTEXT",
334                Self::B3 => "B3",
335            }
336        }
337        /// Creates an enum from field names used in the ProtoBuf definition.
338        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
339            match value {
340                "NONE" => Some(Self::None),
341                "TRACE_CONTEXT" => Some(Self::TraceContext),
342                "GRPC_TRACE_BIN" => Some(Self::GrpcTraceBin),
343                "CLOUD_TRACE_CONTEXT" => Some(Self::CloudTraceContext),
344                "B3" => Some(Self::B3),
345                _ => None,
346            }
347        }
348    }
349}
350impl ::prost::Name for OpenCensusConfig {
351    const NAME: &'static str = "OpenCensusConfig";
352    const PACKAGE: &'static str = "envoy.config.trace.v3";
353    fn full_name() -> ::prost::alloc::string::String {
354        "envoy.config.trace.v3.OpenCensusConfig".into()
355    }
356    fn type_url() -> ::prost::alloc::string::String {
357        "type.googleapis.com/envoy.config.trace.v3.OpenCensusConfig".into()
358    }
359}
360/// Configuration for the OpenTelemetry tracer.
361///   \[#extension: envoy.tracers.opentelemetry\]
362/// \[#next-free-field: 6\]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct OpenTelemetryConfig {
365    /// The upstream gRPC cluster that will receive OTLP traces.
366    /// Note that the tracer drops traces if the server does not read data fast enough.
367    /// This field can be left empty to disable reporting traces to the gRPC service.
368    /// Only one of ``grpc_service``, ``http_service`` may be used.
369    #[prost(message, optional, tag = "1")]
370    pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
371    /// The upstream HTTP cluster that will receive OTLP traces.
372    /// This field can be left empty to disable reporting traces to the HTTP service.
373    /// Only one of ``grpc_service``, ``http_service`` may be used.
374    ///
375    /// .. note::
376    ///
377    ///    Note: The ``request_headers_to_add`` property in the OTLP HTTP exporter service
378    ///    does not support the :ref:`format specifier <config_access_log_format>` as used for
379    ///    :ref:`HTTP access logging <config_access_log>`.
380    ///    The values configured are added as HTTP headers on the OTLP export request
381    ///    without any formatting applied.
382    #[prost(message, optional, tag = "3")]
383    pub http_service: ::core::option::Option<super::super::core::v3::HttpService>,
384    /// The name for the service. This will be populated in the ResourceSpan Resource attributes.
385    /// If it is not provided, it will default to "unknown_service:envoy".
386    #[prost(string, tag = "2")]
387    pub service_name: ::prost::alloc::string::String,
388    /// An ordered list of resource detectors
389    /// \[#extension-category: envoy.tracers.opentelemetry.resource_detectors\]
390    #[prost(message, repeated, tag = "4")]
391    pub resource_detectors: ::prost::alloc::vec::Vec<
392        super::super::core::v3::TypedExtensionConfig,
393    >,
394    /// Specifies the sampler to be used by the OpenTelemetry tracer.
395    /// The configured sampler implements the Sampler interface defined by the OpenTelemetry specification.
396    /// This field can be left empty. In this case, the default Envoy sampling decision is used.
397    ///
398    /// See: `OpenTelemetry sampler specification <<https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampler>`_>
399    /// \[#extension-category: envoy.tracers.opentelemetry.samplers\]
400    #[prost(message, optional, tag = "5")]
401    pub sampler: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>,
402}
403impl ::prost::Name for OpenTelemetryConfig {
404    const NAME: &'static str = "OpenTelemetryConfig";
405    const PACKAGE: &'static str = "envoy.config.trace.v3";
406    fn full_name() -> ::prost::alloc::string::String {
407        "envoy.config.trace.v3.OpenTelemetryConfig".into()
408    }
409    fn type_url() -> ::prost::alloc::string::String {
410        "type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig".into()
411    }
412}
413/// Configuration structure.
414#[derive(Clone, PartialEq, ::prost::Message)]
415pub struct TraceServiceConfig {
416    /// The upstream gRPC cluster that hosts the metrics service.
417    #[prost(message, optional, tag = "1")]
418    pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
419}
420impl ::prost::Name for TraceServiceConfig {
421    const NAME: &'static str = "TraceServiceConfig";
422    const PACKAGE: &'static str = "envoy.config.trace.v3";
423    fn full_name() -> ::prost::alloc::string::String {
424        "envoy.config.trace.v3.TraceServiceConfig".into()
425    }
426    fn type_url() -> ::prost::alloc::string::String {
427        "type.googleapis.com/envoy.config.trace.v3.TraceServiceConfig".into()
428    }
429}
430/// Configuration for the SkyWalking tracer. Please note that if SkyWalking tracer is used as the
431/// provider of tracing, then
432/// :ref:`spawn_upstream_span <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span>`
433/// in the tracing config must be set to true to get the correct topology and tracing data. Moreover, SkyWalking
434/// Tracer does not support SkyWalking extension header (``sw8-x``) temporarily.
435/// \[#extension: envoy.tracers.skywalking\]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct SkyWalkingConfig {
438    /// SkyWalking collector service.
439    #[prost(message, optional, tag = "1")]
440    pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
441    #[prost(message, optional, tag = "2")]
442    pub client_config: ::core::option::Option<ClientConfig>,
443}
444impl ::prost::Name for SkyWalkingConfig {
445    const NAME: &'static str = "SkyWalkingConfig";
446    const PACKAGE: &'static str = "envoy.config.trace.v3";
447    fn full_name() -> ::prost::alloc::string::String {
448        "envoy.config.trace.v3.SkyWalkingConfig".into()
449    }
450    fn type_url() -> ::prost::alloc::string::String {
451        "type.googleapis.com/envoy.config.trace.v3.SkyWalkingConfig".into()
452    }
453}
454/// Client config for SkyWalking tracer.
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct ClientConfig {
457    /// Service name for SkyWalking tracer. If this field is empty, then local service cluster name
458    /// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
459    /// message's :ref:`cluster <envoy_v3_api_field_config.core.v3.Node.cluster>` field or command line
460    /// option :option:`--service-cluster` will be used. If both this field and local service cluster
461    /// name are empty, ``EnvoyProxy`` is used as the service name by default.
462    #[prost(string, tag = "1")]
463    pub service_name: ::prost::alloc::string::String,
464    /// Service instance name for SkyWalking tracer. If this field is empty, then local service node
465    /// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
466    /// message's :ref:`id <envoy_v3_api_field_config.core.v3.Node.id>` field or command line  option
467    /// :option:`--service-node` will be used. If both this field and local service node are empty,
468    /// ``EnvoyProxy`` is used as the instance name by default.
469    #[prost(string, tag = "2")]
470    pub instance_name: ::prost::alloc::string::String,
471    /// Envoy caches the segment in memory when the SkyWalking backend service is temporarily unavailable.
472    /// This field specifies the maximum number of segments that can be cached. If not specified, the
473    /// default is 1024.
474    #[prost(message, optional, tag = "4")]
475    pub max_cache_size: ::core::option::Option<
476        super::super::super::super::google::protobuf::UInt32Value,
477    >,
478    /// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
479    /// that monitoring application data can be trusted. In current version, Token is considered as a
480    /// simple string.
481    /// \[#comment:TODO(wbpcode): Get backend token through the SDS API.\]
482    #[prost(oneof = "client_config::BackendTokenSpecifier", tags = "3")]
483    pub backend_token_specifier: ::core::option::Option<
484        client_config::BackendTokenSpecifier,
485    >,
486}
487/// Nested message and enum types in `ClientConfig`.
488pub mod client_config {
489    /// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
490    /// that monitoring application data can be trusted. In current version, Token is considered as a
491    /// simple string.
492    /// \[#comment:TODO(wbpcode): Get backend token through the SDS API.\]
493    #[derive(Clone, PartialEq, ::prost::Oneof)]
494    pub enum BackendTokenSpecifier {
495        /// Inline authentication token string.
496        #[prost(string, tag = "3")]
497        BackendToken(::prost::alloc::string::String),
498    }
499}
500impl ::prost::Name for ClientConfig {
501    const NAME: &'static str = "ClientConfig";
502    const PACKAGE: &'static str = "envoy.config.trace.v3";
503    fn full_name() -> ::prost::alloc::string::String {
504        "envoy.config.trace.v3.ClientConfig".into()
505    }
506    fn type_url() -> ::prost::alloc::string::String {
507        "type.googleapis.com/envoy.config.trace.v3.ClientConfig".into()
508    }
509}
510/// Configuration for the Zipkin tracer.
511/// \[#extension: envoy.tracers.zipkin\]
512/// \[#next-free-field: 8\]
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct ZipkinConfig {
515    /// The cluster manager cluster that hosts the Zipkin collectors.
516    #[prost(string, tag = "1")]
517    pub collector_cluster: ::prost::alloc::string::String,
518    /// The API endpoint of the Zipkin service where the spans will be sent. When
519    /// using a standard Zipkin installation.
520    #[prost(string, tag = "2")]
521    pub collector_endpoint: ::prost::alloc::string::String,
522    /// Determines whether a 128bit trace id will be used when creating a new
523    /// trace instance. The default value is false, which will result in a 64 bit trace id being used.
524    #[prost(bool, tag = "3")]
525    pub trace_id_128bit: bool,
526    /// Determines whether client and server spans will share the same span context.
527    /// The default value is true.
528    #[prost(message, optional, tag = "4")]
529    pub shared_span_context: ::core::option::Option<
530        super::super::super::super::google::protobuf::BoolValue,
531    >,
532    /// Determines the selected collector endpoint version.
533    #[prost(enumeration = "zipkin_config::CollectorEndpointVersion", tag = "5")]
534    pub collector_endpoint_version: i32,
535    /// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
536    /// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_cluster>` above.
537    #[prost(string, tag = "6")]
538    pub collector_hostname: ::prost::alloc::string::String,
539    /// 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
540    /// request. Server span will be created for the downstream request and client span will be created for the related upstream request.
541    /// This should be set to true in the following cases:
542    ///
543    /// * The Envoy Proxy is used as gateway or ingress.
544    /// * The Envoy Proxy is used as sidecar but inbound traffic capturing or outbound traffic capturing is disabled.
545    /// * 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.
546    ///
547    /// .. attention::
548    ///
549    ///    If this is set to true, then the
550    ///    :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
551    ///    SHOULD be set to true also to ensure the correctness of trace chain.
552    ///
553    ///    Both this field and ``start_child_span`` are deprecated by the
554    ///    :ref:`spawn_upstream_span <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span>`.
555    ///    Please use that ``spawn_upstream_span`` field to control the span creation.
556    #[deprecated]
557    #[prost(bool, tag = "7")]
558    pub split_spans_for_request: bool,
559}
560/// Nested message and enum types in `ZipkinConfig`.
561pub mod zipkin_config {
562    /// Available Zipkin collector endpoint versions.
563    #[derive(
564        Clone,
565        Copy,
566        Debug,
567        PartialEq,
568        Eq,
569        Hash,
570        PartialOrd,
571        Ord,
572        ::prost::Enumeration
573    )]
574    #[repr(i32)]
575    pub enum CollectorEndpointVersion {
576        /// Zipkin API v1, JSON over HTTP.
577        /// [#comment: The default implementation of Zipkin client before this field is added was only v1
578        /// and the way user configure this was by not explicitly specifying the version. Consequently,
579        /// before this is added, the corresponding Zipkin collector expected to receive v1 payload.
580        /// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when
581        /// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field,
582        /// since in Zipkin realm this v1 version is considered to be not preferable anymore.]
583        DeprecatedAndUnavailableDoNotUse = 0,
584        /// Zipkin API v2, JSON over HTTP.
585        HttpJson = 1,
586        /// Zipkin API v2, protobuf over HTTP.
587        HttpProto = 2,
588        /// \[#not-implemented-hide:\]
589        Grpc = 3,
590    }
591    impl CollectorEndpointVersion {
592        /// String value of the enum field names used in the ProtoBuf definition.
593        ///
594        /// The values are not transformed in any way and thus are considered stable
595        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
596        pub fn as_str_name(&self) -> &'static str {
597            match self {
598                Self::DeprecatedAndUnavailableDoNotUse => {
599                    "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE"
600                }
601                Self::HttpJson => "HTTP_JSON",
602                Self::HttpProto => "HTTP_PROTO",
603                Self::Grpc => "GRPC",
604            }
605        }
606        /// Creates an enum from field names used in the ProtoBuf definition.
607        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
608            match value {
609                "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE" => {
610                    Some(Self::DeprecatedAndUnavailableDoNotUse)
611                }
612                "HTTP_JSON" => Some(Self::HttpJson),
613                "HTTP_PROTO" => Some(Self::HttpProto),
614                "GRPC" => Some(Self::Grpc),
615                _ => None,
616            }
617        }
618    }
619}
620impl ::prost::Name for ZipkinConfig {
621    const NAME: &'static str = "ZipkinConfig";
622    const PACKAGE: &'static str = "envoy.config.trace.v3";
623    fn full_name() -> ::prost::alloc::string::String {
624        "envoy.config.trace.v3.ZipkinConfig".into()
625    }
626    fn type_url() -> ::prost::alloc::string::String {
627        "type.googleapis.com/envoy.config.trace.v3.ZipkinConfig".into()
628    }
629}
630/// \[#extension: envoy.tracers.xray\]
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct XRayConfig {
633    /// The UDP endpoint of the X-Ray Daemon where the spans will be sent.
634    /// If this value is not set, the default value of 127.0.0.1:2000 will be used.
635    #[prost(message, optional, tag = "1")]
636    pub daemon_endpoint: ::core::option::Option<super::super::core::v3::SocketAddress>,
637    /// The name of the X-Ray segment.
638    #[prost(string, tag = "2")]
639    pub segment_name: ::prost::alloc::string::String,
640    /// The location of a local custom sampling rules JSON file.
641    /// For an example of the sampling rules see:
642    /// `X-Ray SDK documentation
643    /// <<https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-go-configuration.html#xray-sdk-go-configuration-sampling>`_>
644    #[prost(message, optional, tag = "3")]
645    pub sampling_rule_manifest: ::core::option::Option<
646        super::super::core::v3::DataSource,
647    >,
648    /// Optional custom fields to be added to each trace segment.
649    /// see: `X-Ray Segment Document documentation
650    /// <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html>`__>
651    #[prost(message, optional, tag = "4")]
652    pub segment_fields: ::core::option::Option<x_ray_config::SegmentFields>,
653}
654/// Nested message and enum types in `XRayConfig`.
655pub mod x_ray_config {
656    #[derive(Clone, PartialEq, ::prost::Message)]
657    pub struct SegmentFields {
658        /// The type of AWS resource, e.g. "AWS::AppMesh::Proxy".
659        #[prost(string, tag = "1")]
660        pub origin: ::prost::alloc::string::String,
661        /// AWS resource metadata dictionary.
662        /// See: `X-Ray Segment Document documentation <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-aws>`__>
663        #[prost(message, optional, tag = "2")]
664        pub aws: ::core::option::Option<
665            super::super::super::super::super::google::protobuf::Struct,
666        >,
667    }
668    impl ::prost::Name for SegmentFields {
669        const NAME: &'static str = "SegmentFields";
670        const PACKAGE: &'static str = "envoy.config.trace.v3";
671        fn full_name() -> ::prost::alloc::string::String {
672            "envoy.config.trace.v3.XRayConfig.SegmentFields".into()
673        }
674        fn type_url() -> ::prost::alloc::string::String {
675            "type.googleapis.com/envoy.config.trace.v3.XRayConfig.SegmentFields".into()
676        }
677    }
678}
679impl ::prost::Name for XRayConfig {
680    const NAME: &'static str = "XRayConfig";
681    const PACKAGE: &'static str = "envoy.config.trace.v3";
682    fn full_name() -> ::prost::alloc::string::String {
683        "envoy.config.trace.v3.XRayConfig".into()
684    }
685    fn type_url() -> ::prost::alloc::string::String {
686        "type.googleapis.com/envoy.config.trace.v3.XRayConfig".into()
687    }
688}