// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AlwaysOnSamplerConfig {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CelSamplerConfig {
    /// Expression that, when evaluated, will be used to make sample decision.
    #[prost(message, optional, tag = "1")]
    pub expression: ::core::option::Option<
        super::super::super::super::super::super::xds::r#type::v3::CelExpression,
    >,
}
/// Configuration for the Dynatrace Sampler extension.
/// \[\#extension: envoy.tracers.opentelemetry.samplers.dynatrace\]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DynatraceSamplerConfig {
    /// The Dynatrace tenant.
    ///
    /// The value can be obtained from the Envoy deployment page in Dynatrace.
    #[prost(string, tag = "1")]
    pub tenant: ::prost::alloc::string::String,
    /// The id of the Dynatrace cluster id.
    ///
    /// The value can be obtained from the Envoy deployment page in Dynatrace.
    #[prost(int32, tag = "2")]
    pub cluster_id: i32,
    /// The HTTP service to fetch the sampler configuration from the Dynatrace API (root spans per minute). For example:
    ///
    /// .. code-block:: yaml
    ///
    /// ```text
    /// http_service:
    ///   http_uri:
    ///     cluster: dynatrace
    ///     uri: <tenant>.dev.dynatracelabs.com/api/v2/samplingConfiguration
    ///     timeout: 10s
    ///   request_headers_to_add:
    ///   - header:
    ///       key : "authorization"
    ///       value: "Api-Token dt..."
    /// ```
    #[prost(message, optional, tag = "3")]
    pub http_service: ::core::option::Option<
        super::super::super::super::super::config::core::v3::HttpService,
    >,
    /// Default number of root spans per minute, used when the value can't be obtained from the Dynatrace API.
    ///
    /// A default value of `1000` is used when:
    ///
    /// * `root_spans_per_minute` is unset
    /// * `root_spans_per_minute` is set to 0
    #[prost(uint32, tag = "4")]
    pub root_spans_per_minute: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParentBasedSamplerConfig {
    /// Specifies the sampler to be used by this sampler.
    /// The configured sampler will be used if the parent trace ID is not passed to Envoy
    ///
    /// required
    /// \[\#extension-category: envoy.tracers.opentelemetry.samplers\]
    #[prost(message, optional, tag = "1")]
    pub wrapped_sampler: ::core::option::Option<
        super::super::super::super::super::config::core::v3::TypedExtensionConfig,
    >,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TraceIdRatioBasedSamplerConfig {
    /// If the given trace_id falls into a given percentage of all possible
    /// trace_id values, ShouldSample will return RECORD_AND_SAMPLE.
    /// required
    /// \[\#extension-category: envoy.tracers.opentelemetry.samplers\]
    #[prost(message, optional, tag = "1")]
    pub sampling_percentage: ::core::option::Option<
        super::super::super::super::super::r#type::v3::FractionalPercent,
    >,
}
