summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.api.v2.core.rs
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-16 14:09:57 -0600
committermo khan <mo@mokhan.ca>2025-07-16 14:09:57 -0600
commit034cb934375e789a54a22c34b37426ffe9affd4b (patch)
treeed82d15f8c9dbad06b9932fc43acafae531b94f8 /src/rpc/envoy.api.v2.core.rs
parentaadfbeb39d0ac5ccb1a19899d7680b1c96b1a6cf (diff)
fix: revert back to envoy-types crate
Diffstat (limited to 'src/rpc/envoy.api.v2.core.rs')
-rw-r--r--src/rpc/envoy.api.v2.core.rs1969
1 files changed, 0 insertions, 1969 deletions
diff --git a/src/rpc/envoy.api.v2.core.rs b/src/rpc/envoy.api.v2.core.rs
deleted file mode 100644
index a03b8f7a..00000000
--- a/src/rpc/envoy.api.v2.core.rs
+++ /dev/null
@@ -1,1969 +0,0 @@
-// @generated
-// This file is @generated by prost-build.
-// \[#protodoc-title: Socket Option \]
-
-/// Generic socket option message. This would be used to set socket options that
-/// might not exist in upstream kernels or precompiled Envoy binaries.
-/// \[#next-free-field: 7\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct SocketOption {
- /// An optional name to give this socket option for debugging, etc.
- /// Uniqueness is not required and no special meaning is assumed.
- #[prost(string, tag="1")]
- pub description: ::prost::alloc::string::String,
- /// Corresponding to the level value passed to setsockopt, such as IPPROTO_TCP
- #[prost(int64, tag="2")]
- pub level: i64,
- /// The numeric name as passed to setsockopt
- #[prost(int64, tag="3")]
- pub name: i64,
- /// The state in which the option will be applied. When used in BindConfig
- /// STATE_PREBIND is currently the only valid value.
- #[prost(enumeration="socket_option::SocketState", tag="6")]
- pub state: i32,
- #[prost(oneof="socket_option::Value", tags="4, 5")]
- pub value: ::core::option::Option<socket_option::Value>,
-}
-/// Nested message and enum types in `SocketOption`.
-pub mod socket_option {
- #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
- #[repr(i32)]
- pub enum SocketState {
- /// Socket options are applied after socket creation but before binding the socket to a port
- StatePrebind = 0,
- /// Socket options are applied after binding the socket to a port but before calling listen()
- StateBound = 1,
- /// Socket options are applied after calling listen()
- StateListening = 2,
- }
- impl SocketState {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- SocketState::StatePrebind => "STATE_PREBIND",
- SocketState::StateBound => "STATE_BOUND",
- SocketState::StateListening => "STATE_LISTENING",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "STATE_PREBIND" => Some(Self::StatePrebind),
- "STATE_BOUND" => Some(Self::StateBound),
- "STATE_LISTENING" => Some(Self::StateListening),
- _ => None,
- }
- }
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum Value {
- /// Because many sockopts take an int value.
- #[prost(int64, tag="4")]
- IntValue(i64),
- /// Otherwise it's a byte buffer.
- #[prost(bytes, tag="5")]
- BufValue(::prost::alloc::vec::Vec<u8>),
- }
-}
-// \[#protodoc-title: Network addresses\]
-
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Pipe {
- /// Unix Domain Socket path. On Linux, paths starting with '@' will use the
- /// abstract namespace. The starting '@' is replaced by a null byte by Envoy.
- /// Paths starting with '@' will result in an error in environments other than
- /// Linux.
- #[prost(string, tag="1")]
- pub path: ::prost::alloc::string::String,
- /// The mode for the Pipe. Not applicable for abstract sockets.
- #[prost(uint32, tag="2")]
- pub mode: u32,
-}
-/// \[#next-free-field: 7\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct SocketAddress {
- #[prost(enumeration="socket_address::Protocol", tag="1")]
- pub protocol: i32,
- /// The address for this socket. :ref:`Listeners <config_listeners>` will bind
- /// to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``
- /// to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
- /// It is possible to distinguish a Listener address via the prefix/suffix matching
- /// in :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>`.] When used
- /// within an upstream :ref:`BindConfig <envoy_api_msg_core.BindConfig>`, the address
- /// controls the source address of outbound connections. For :ref:`clusters
- /// <envoy_api_msg_Cluster>`, the cluster type determines whether the
- /// address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
- /// (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
- /// via :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>`.
- #[prost(string, tag="2")]
- pub address: ::prost::alloc::string::String,
- /// The name of the custom resolver. This must have been registered with Envoy. If
- /// this is empty, a context dependent default applies. If the address is a concrete
- /// IP address, no resolution will occur. If address is a hostname this
- /// should be set for resolution other than DNS. Specifying a custom resolver with
- /// *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
- #[prost(string, tag="5")]
- pub resolver_name: ::prost::alloc::string::String,
- /// When binding to an IPv6 address above, this enables `IPv4 compatibility
- /// <<https://tools.ietf.org/html/rfc3493#page-11>`_.> Binding to ``::`` will
- /// allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
- /// IPv6 space as ``::FFFF:<IPv4-address>``.
- #[prost(bool, tag="6")]
- pub ipv4_compat: bool,
- #[prost(oneof="socket_address::PortSpecifier", tags="3, 4")]
- pub port_specifier: ::core::option::Option<socket_address::PortSpecifier>,
-}
-/// Nested message and enum types in `SocketAddress`.
-pub mod socket_address {
- #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
- #[repr(i32)]
- pub enum Protocol {
- Tcp = 0,
- Udp = 1,
- }
- impl Protocol {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- Protocol::Tcp => "TCP",
- Protocol::Udp => "UDP",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "TCP" => Some(Self::Tcp),
- "UDP" => Some(Self::Udp),
- _ => None,
- }
- }
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum PortSpecifier {
- #[prost(uint32, tag="3")]
- PortValue(u32),
- /// This is only valid if :ref:`resolver_name
- /// <envoy_api_field_core.SocketAddress.resolver_name>` is specified below and the
- /// named resolver is capable of named port resolution.
- #[prost(string, tag="4")]
- NamedPort(::prost::alloc::string::String),
- }
-}
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct TcpKeepalive {
- /// Maximum number of keepalive probes to send without response before deciding
- /// the connection is dead. Default is to use the OS level configuration (unless
- /// overridden, Linux defaults to 9.)
- #[prost(message, optional, tag="1")]
- pub keepalive_probes: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// The number of seconds a connection needs to be idle before keep-alive probes
- /// start being sent. Default is to use the OS level configuration (unless
- /// overridden, Linux defaults to 7200s (i.e., 2 hours.)
- #[prost(message, optional, tag="2")]
- pub keepalive_time: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// The number of seconds between keep-alive probes. Default is to use the OS
- /// level configuration (unless overridden, Linux defaults to 75s.)
- #[prost(message, optional, tag="3")]
- pub keepalive_interval: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
-}
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct BindConfig {
- /// The address to bind to when creating a socket.
- #[prost(message, optional, tag="1")]
- pub source_address: ::core::option::Option<SocketAddress>,
- /// Whether to set the *IP_FREEBIND* option when creating the socket. When this
- /// flag is set to true, allows the :ref:`source_address
- /// <envoy_api_field_UpstreamBindConfig.source_address>` to be an IP address
- /// that is not configured on the system running Envoy. When this flag is set
- /// to false, the option *IP_FREEBIND* is disabled on the socket. When this
- /// flag is not set (default), the socket is not modified, i.e. the option is
- /// neither enabled nor disabled.
- #[prost(message, optional, tag="2")]
- pub freebind: ::core::option::Option<super::super::super::super::google::protobuf::BoolValue>,
- /// Additional socket options that may not be present in Envoy source code or
- /// precompiled binaries.
- #[prost(message, repeated, tag="3")]
- pub socket_options: ::prost::alloc::vec::Vec<SocketOption>,
-}
-/// Addresses specify either a logical or physical address and port, which are
-/// used to tell Envoy where to bind/listen, connect to upstream and find
-/// management servers.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Address {
- #[prost(oneof="address::Address", tags="1, 2")]
- pub address: ::core::option::Option<address::Address>,
-}
-/// Nested message and enum types in `Address`.
-pub mod address {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum Address {
- #[prost(message, tag="1")]
- SocketAddress(super::SocketAddress),
- #[prost(message, tag="2")]
- Pipe(super::Pipe),
- }
-}
-/// CidrRange specifies an IP Address and a prefix length to construct
-/// the subnet mask for a `CIDR <<https://tools.ietf.org/html/rfc4632>`_> range.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct CidrRange {
- /// IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
- #[prost(string, tag="1")]
- pub address_prefix: ::prost::alloc::string::String,
- /// Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
- #[prost(message, optional, tag="2")]
- pub prefix_len: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
-}
-// \[#protodoc-title: Backoff Strategy\]
-
-/// Configuration defining a jittered exponential back off strategy.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct BackoffStrategy {
- /// The base interval to be used for the next back off computation. It should
- /// be greater than zero and less than or equal to :ref:`max_interval
- /// <envoy_api_field_core.BackoffStrategy.max_interval>`.
- #[prost(message, optional, tag="1")]
- pub base_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// Specifies the maximum interval between retries. This parameter is optional,
- /// but must be greater than or equal to the :ref:`base_interval
- /// <envoy_api_field_core.BackoffStrategy.base_interval>` if set. The default
- /// is 10 times the :ref:`base_interval
- /// <envoy_api_field_core.BackoffStrategy.base_interval>`.
- #[prost(message, optional, tag="2")]
- pub max_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
-}
-// \[#protodoc-title: HTTP Service URI \]
-
-/// Envoy external URI descriptor
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HttpUri {
- /// The HTTP server URI. It should be a full FQDN with protocol, host and path.
- ///
- /// Example:
- ///
- /// .. code-block:: yaml
- ///
- /// uri: <https://www.googleapis.com/oauth2/v1/certs>
- ///
- #[prost(string, tag="1")]
- pub uri: ::prost::alloc::string::String,
- /// Sets the maximum duration in milliseconds that a response can take to arrive upon request.
- #[prost(message, optional, tag="3")]
- pub timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// Specify how `uri` is to be fetched. Today, this requires an explicit
- /// cluster, but in the future we may support dynamic cluster creation or
- /// inline DNS resolution. See `issue
- /// <<https://github.com/envoyproxy/envoy/issues/1606>`_.>
- #[prost(oneof="http_uri::HttpUpstreamType", tags="2")]
- pub http_upstream_type: ::core::option::Option<http_uri::HttpUpstreamType>,
-}
-/// Nested message and enum types in `HttpUri`.
-pub mod http_uri {
- /// Specify how `uri` is to be fetched. Today, this requires an explicit
- /// cluster, but in the future we may support dynamic cluster creation or
- /// inline DNS resolution. See `issue
- /// <<https://github.com/envoyproxy/envoy/issues/1606>`_.>
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum HttpUpstreamType {
- /// A cluster is created in the Envoy "cluster_manager" config
- /// section. This field specifies the cluster name.
- ///
- /// Example:
- ///
- /// .. code-block:: yaml
- ///
- /// cluster: jwks_cluster
- ///
- #[prost(string, tag="2")]
- Cluster(::prost::alloc::string::String),
- }
-}
-/// Identifies location of where either Envoy runs or where upstream hosts run.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Locality {
- /// Region this :ref:`zone <envoy_api_field_core.Locality.zone>` belongs to.
- #[prost(string, tag="1")]
- pub region: ::prost::alloc::string::String,
- /// Defines the local service zone where Envoy is running. Though optional, it
- /// should be set if discovery service routing is used and the discovery
- /// service exposes :ref:`zone data <envoy_api_field_endpoint.LocalityLbEndpoints.locality>`,
- /// either in this message or via :option:`--service-zone`. The meaning of zone
- /// is context dependent, e.g. `Availability Zone (AZ)
- /// <<https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_>
- /// on AWS, `Zone <<https://cloud.google.com/compute/docs/regions-zones/>`_> on
- /// GCP, etc.
- #[prost(string, tag="2")]
- pub zone: ::prost::alloc::string::String,
- /// When used for locality of upstream hosts, this field further splits zone
- /// into smaller chunks of sub-zones so they can be load balanced
- /// independently.
- #[prost(string, tag="3")]
- pub sub_zone: ::prost::alloc::string::String,
-}
-/// BuildVersion combines SemVer version of extension with free-form build information
-/// (i.e. 'alpha', 'private-build') as a set of strings.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct BuildVersion {
- /// SemVer version of extension.
- #[prost(message, optional, tag="1")]
- pub version: ::core::option::Option<super::super::super::r#type::SemanticVersion>,
- /// Free-form build information.
- /// Envoy defines several well known keys in the source/common/version/version.h file
- #[prost(message, optional, tag="2")]
- pub metadata: ::core::option::Option<super::super::super::super::google::protobuf::Struct>,
-}
-/// Version and identification for an Envoy extension.
-/// \[#next-free-field: 6\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Extension {
- /// This is the name of the Envoy filter as specified in the Envoy
- /// configuration, e.g. envoy.filters.http.router, com.acme.widget.
- #[prost(string, tag="1")]
- pub name: ::prost::alloc::string::String,
- /// Category of the extension.
- /// Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
- /// for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
- /// acme.com vendor.
- /// \[#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.\]
- #[prost(string, tag="2")]
- pub category: ::prost::alloc::string::String,
- /// \[#not-implemented-hide:\] Type descriptor of extension configuration proto.
- /// \[#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.\]
- /// \[#comment:TODO(yanavlasov): Add tests when PR #9391 lands.\]
- #[prost(string, tag="3")]
- pub type_descriptor: ::prost::alloc::string::String,
- /// The version is a property of the extension and maintained independently
- /// of other extensions and the Envoy API.
- /// This field is not set when extension did not provide version information.
- #[prost(message, optional, tag="4")]
- pub version: ::core::option::Option<BuildVersion>,
- /// Indicates that the extension is present but was disabled via dynamic configuration.
- #[prost(bool, tag="5")]
- pub disabled: bool,
-}
-/// Identifies a specific Envoy instance. The node identifier is presented to the
-/// management server, which may use this identifier to distinguish per Envoy
-/// configuration for serving.
-/// \[#next-free-field: 12\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Node {
- /// An opaque node identifier for the Envoy node. This also provides the local
- /// service node name. It should be set if any of the following features are
- /// used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
- /// <config_cluster_manager_cds>`, and :ref:`HTTP tracing
- /// <arch_overview_tracing>`, either in this message or via
- /// :option:`--service-node`.
- #[prost(string, tag="1")]
- pub id: ::prost::alloc::string::String,
- /// Defines the local service cluster name where Envoy is running. Though
- /// optional, it should be set if any of the following features are used:
- /// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
- /// verification
- /// <envoy_api_field_core.HealthCheck.HttpHealthCheck.service_name_matcher>`,
- /// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v2.Runtime>`,
- /// :ref:`user agent addition
- /// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.add_user_agent>`,
- /// :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
- /// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
- /// <arch_overview_tracing>`, either in this message or via
- /// :option:`--service-cluster`.
- #[prost(string, tag="2")]
- pub cluster: ::prost::alloc::string::String,
- /// Opaque metadata extending the node identifier. Envoy will pass this
- /// directly to the management server.
- #[prost(message, optional, tag="3")]
- pub metadata: ::core::option::Option<super::super::super::super::google::protobuf::Struct>,
- /// Locality specifying where the Envoy instance is running.
- #[prost(message, optional, tag="4")]
- pub locality: ::core::option::Option<Locality>,
- /// This is motivated by informing a management server during canary which
- /// version of Envoy is being tested in a heterogeneous fleet. This will be set
- /// by Envoy in management server RPCs.
- /// This field is deprecated in favor of the user_agent_name and user_agent_version values.
- #[deprecated]
- #[prost(string, tag="5")]
- pub build_version: ::prost::alloc::string::String,
- /// Free-form string that identifies the entity requesting config.
- /// E.g. "envoy" or "grpc"
- #[prost(string, tag="6")]
- pub user_agent_name: ::prost::alloc::string::String,
- /// List of extensions and their versions supported by the node.
- #[prost(message, repeated, tag="9")]
- pub extensions: ::prost::alloc::vec::Vec<Extension>,
- /// Client feature support list. These are well known features described
- /// in the Envoy API repository for a given major version of an API. Client features
- /// use reverse DNS naming scheme, for example `com.acme.feature`.
- /// See :ref:`the list of features <client_features>` that xDS client may
- /// support.
- #[prost(string, repeated, tag="10")]
- pub client_features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
- /// Known listening ports on the node as a generic hint to the management server
- /// for filtering :ref:`listeners <config_listeners>` to be returned. For example,
- /// if there is a listener bound to port 80, the list can optionally contain the
- /// SocketAddress `(0.0.0.0,80)`. The field is optional and just a hint.
- #[prost(message, repeated, tag="11")]
- pub listening_addresses: ::prost::alloc::vec::Vec<Address>,
- #[prost(oneof="node::UserAgentVersionType", tags="7, 8")]
- pub user_agent_version_type: ::core::option::Option<node::UserAgentVersionType>,
-}
-/// Nested message and enum types in `Node`.
-pub mod node {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum UserAgentVersionType {
- /// Free-form string that identifies the version of the entity requesting config.
- /// E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
- #[prost(string, tag="7")]
- UserAgentVersion(::prost::alloc::string::String),
- /// Structured version of the entity requesting config.
- #[prost(message, tag="8")]
- UserAgentBuildVersion(super::BuildVersion),
- }
-}
-/// Metadata provides additional inputs to filters based on matched listeners,
-/// filter chains, routes and endpoints. It is structured as a map, usually from
-/// filter name (in reverse DNS format) to metadata specific to the filter. Metadata
-/// key-values for a filter are merged as connection and request handling occurs,
-/// with later values for the same key overriding earlier values.
-///
-/// An example use of metadata is providing additional values to
-/// http_connection_manager in the envoy.http_connection_manager.access_log
-/// namespace.
-///
-/// Another example use of metadata is to per service config info in cluster metadata, which may get
-/// consumed by multiple filters.
-///
-/// For load balancing, Metadata provides a means to subset cluster endpoints.
-/// Endpoints have a Metadata object associated and routes contain a Metadata
-/// object to match against. There are some well defined metadata used today for
-/// this purpose:
-///
-/// * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
-/// endpoint and is also used during header processing
-/// (x-envoy-upstream-canary) and for stats purposes.
-/// \[#next-major-version: move to type/metadata/v2\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Metadata {
- /// Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
- /// namespace is reserved for Envoy's built-in filters.
- #[prost(map="string, message", tag="1")]
- pub filter_metadata: ::std::collections::HashMap<::prost::alloc::string::String, super::super::super::super::google::protobuf::Struct>,
-}
-/// Runtime derived uint32 with a default when not specified.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct RuntimeUInt32 {
- /// Default value if runtime value is not available.
- #[prost(uint32, tag="2")]
- pub default_value: u32,
- /// Runtime key to get value for comparison. This value is used if defined.
- #[prost(string, tag="3")]
- pub runtime_key: ::prost::alloc::string::String,
-}
-/// Runtime derived double with a default when not specified.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct RuntimeDouble {
- /// Default value if runtime value is not available.
- #[prost(double, tag="1")]
- pub default_value: f64,
- /// Runtime key to get value for comparison. This value is used if defined.
- #[prost(string, tag="2")]
- pub runtime_key: ::prost::alloc::string::String,
-}
-/// Runtime derived bool with a default when not specified.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct RuntimeFeatureFlag {
- /// Default value if runtime value is not available.
- #[prost(message, optional, tag="1")]
- pub default_value: ::core::option::Option<super::super::super::super::google::protobuf::BoolValue>,
- /// Runtime key to get value for comparison. This value is used if defined. The boolean value must
- /// be represented via its
- /// `canonical JSON encoding <<https://developers.google.com/protocol-buffers/docs/proto3#json>`_.>
- #[prost(string, tag="2")]
- pub runtime_key: ::prost::alloc::string::String,
-}
-/// Header name/value pair.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HeaderValue {
- /// Header name.
- #[prost(string, tag="1")]
- pub key: ::prost::alloc::string::String,
- /// Header value.
- ///
- /// The same :ref:`format specifier <config_access_log_format>` as used for
- /// :ref:`HTTP access logging <config_access_log>` applies here, however
- /// unknown header values are replaced with the empty string instead of `-`.
- #[prost(string, tag="2")]
- pub value: ::prost::alloc::string::String,
-}
-/// Header name/value pair plus option to control append behavior.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HeaderValueOption {
- /// Header name/value pair that this option applies to.
- #[prost(message, optional, tag="1")]
- pub header: ::core::option::Option<HeaderValue>,
- /// Should the value be appended? If true (default), the value is appended to
- /// existing values.
- #[prost(message, optional, tag="2")]
- pub append: ::core::option::Option<super::super::super::super::google::protobuf::BoolValue>,
-}
-/// Wrapper for a set of headers.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HeaderMap {
- #[prost(message, repeated, tag="1")]
- pub headers: ::prost::alloc::vec::Vec<HeaderValue>,
-}
-/// Data source consisting of either a file or an inline value.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct DataSource {
- #[prost(oneof="data_source::Specifier", tags="1, 2, 3")]
- pub specifier: ::core::option::Option<data_source::Specifier>,
-}
-/// Nested message and enum types in `DataSource`.
-pub mod data_source {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum Specifier {
- /// Local filesystem data source.
- #[prost(string, tag="1")]
- Filename(::prost::alloc::string::String),
- /// Bytes inlined in the configuration.
- #[prost(bytes, tag="2")]
- InlineBytes(::prost::alloc::vec::Vec<u8>),
- /// String inlined in the configuration.
- #[prost(string, tag="3")]
- InlineString(::prost::alloc::string::String),
- }
-}
-/// The message specifies the retry policy of remote data source when fetching fails.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct RetryPolicy {
- /// Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_core.BackoffStrategy>`.
- /// This parameter is optional, in which case the default base interval is 1000 milliseconds. The
- /// default maximum interval is 10 times the base interval.
- #[prost(message, optional, tag="1")]
- pub retry_back_off: ::core::option::Option<BackoffStrategy>,
- /// Specifies the allowed number of retries. This parameter is optional and
- /// defaults to 1.
- #[prost(message, optional, tag="2")]
- pub num_retries: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
-}
-/// The message specifies how to fetch data from remote and how to verify it.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct RemoteDataSource {
- /// The HTTP URI to fetch the remote data.
- #[prost(message, optional, tag="1")]
- pub http_uri: ::core::option::Option<HttpUri>,
- /// SHA256 string for verifying data.
- #[prost(string, tag="2")]
- pub sha256: ::prost::alloc::string::String,
- /// Retry policy for fetching remote data.
- #[prost(message, optional, tag="3")]
- pub retry_policy: ::core::option::Option<RetryPolicy>,
-}
-/// Async data source which support async data fetch.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct AsyncDataSource {
- #[prost(oneof="async_data_source::Specifier", tags="1, 2")]
- pub specifier: ::core::option::Option<async_data_source::Specifier>,
-}
-/// Nested message and enum types in `AsyncDataSource`.
-pub mod async_data_source {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum Specifier {
- /// Local async data source.
- #[prost(message, tag="1")]
- Local(super::DataSource),
- /// Remote async data source.
- #[prost(message, tag="2")]
- Remote(super::RemoteDataSource),
- }
-}
-/// Configuration for transport socket in :ref:`listeners <config_listeners>` and
-/// :ref:`clusters <envoy_api_msg_Cluster>`. If the configuration is
-/// empty, a default transport socket implementation and configuration will be
-/// chosen based on the platform and existence of tls_context.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct TransportSocket {
- /// The name of the transport socket to instantiate. The name must match a supported transport
- /// socket implementation.
- #[prost(string, tag="1")]
- pub name: ::prost::alloc::string::String,
- /// Implementation specific configuration which depends on the implementation being instantiated.
- /// See the supported transport socket implementations for further documentation.
- #[prost(oneof="transport_socket::ConfigType", tags="2, 3")]
- pub config_type: ::core::option::Option<transport_socket::ConfigType>,
-}
-/// Nested message and enum types in `TransportSocket`.
-pub mod transport_socket {
- /// Implementation specific configuration which depends on the implementation being instantiated.
- /// See the supported transport socket implementations for further documentation.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum ConfigType {
- #[prost(message, tag="2")]
- Config(super::super::super::super::super::google::protobuf::Struct),
- #[prost(message, tag="3")]
- TypedConfig(super::super::super::super::super::google::protobuf::Any),
- }
-}
-/// Runtime derived FractionalPercent with defaults for when the numerator or denominator is not
-/// specified via a runtime key.
-///
-/// .. note::
-///
-/// Parsing of the runtime key's data is implemented such that it may be represented as a
-/// :ref:`FractionalPercent <envoy_api_msg_type.FractionalPercent>` proto represented as JSON/YAML
-/// and may also be represented as an integer with the assumption that the value is an integral
-/// percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
-/// as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct RuntimeFractionalPercent {
- /// Default value if the runtime value's for the numerator/denominator keys are not available.
- #[prost(message, optional, tag="1")]
- pub default_value: ::core::option::Option<super::super::super::r#type::FractionalPercent>,
- /// Runtime key for a YAML representation of a FractionalPercent.
- #[prost(string, tag="2")]
- pub runtime_key: ::prost::alloc::string::String,
-}
-/// Identifies a specific ControlPlane instance that Envoy is connected to.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ControlPlane {
- /// An opaque control plane identifier that uniquely identifies an instance
- /// of control plane. This can be used to identify which control plane instance,
- /// the Envoy is connected to.
- #[prost(string, tag="1")]
- pub identifier: ::prost::alloc::string::String,
-}
-// \[#protodoc-title: Common types\]
-
-/// Envoy supports :ref:`upstream priority routing
-/// <arch_overview_http_routing_priority>` both at the route and the virtual
-/// cluster level. The current priority implementation uses different connection
-/// pool and circuit breaking settings for each priority level. This means that
-/// even for HTTP/2 requests, two physical connections will be used to an
-/// upstream host. In the future Envoy will likely support true HTTP/2 priority
-/// over a single upstream connection.
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-#[repr(i32)]
-pub enum RoutingPriority {
- Default = 0,
- High = 1,
-}
-impl RoutingPriority {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- RoutingPriority::Default => "DEFAULT",
- RoutingPriority::High => "HIGH",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "DEFAULT" => Some(Self::Default),
- "HIGH" => Some(Self::High),
- _ => None,
- }
- }
-}
-/// HTTP request method.
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-#[repr(i32)]
-pub enum RequestMethod {
- MethodUnspecified = 0,
- Get = 1,
- Head = 2,
- Post = 3,
- Put = 4,
- Delete = 5,
- Connect = 6,
- Options = 7,
- Trace = 8,
- Patch = 9,
-}
-impl RequestMethod {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- RequestMethod::MethodUnspecified => "METHOD_UNSPECIFIED",
- RequestMethod::Get => "GET",
- RequestMethod::Head => "HEAD",
- RequestMethod::Post => "POST",
- RequestMethod::Put => "PUT",
- RequestMethod::Delete => "DELETE",
- RequestMethod::Connect => "CONNECT",
- RequestMethod::Options => "OPTIONS",
- RequestMethod::Trace => "TRACE",
- RequestMethod::Patch => "PATCH",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "METHOD_UNSPECIFIED" => Some(Self::MethodUnspecified),
- "GET" => Some(Self::Get),
- "HEAD" => Some(Self::Head),
- "POST" => Some(Self::Post),
- "PUT" => Some(Self::Put),
- "DELETE" => Some(Self::Delete),
- "CONNECT" => Some(Self::Connect),
- "OPTIONS" => Some(Self::Options),
- "TRACE" => Some(Self::Trace),
- "PATCH" => Some(Self::Patch),
- _ => None,
- }
- }
-}
-/// Identifies the direction of the traffic relative to the local Envoy.
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-#[repr(i32)]
-pub enum TrafficDirection {
- /// Default option is unspecified.
- Unspecified = 0,
- /// The transport is used for incoming traffic.
- Inbound = 1,
- /// The transport is used for outgoing traffic.
- Outbound = 2,
-}
-impl TrafficDirection {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- TrafficDirection::Unspecified => "UNSPECIFIED",
- TrafficDirection::Inbound => "INBOUND",
- TrafficDirection::Outbound => "OUTBOUND",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "UNSPECIFIED" => Some(Self::Unspecified),
- "INBOUND" => Some(Self::Inbound),
- "OUTBOUND" => Some(Self::Outbound),
- _ => None,
- }
- }
-}
-// \[#protodoc-title: gRPC services\]
-
-/// gRPC service configuration. This is used by :ref:`ApiConfigSource
-/// <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
-/// \[#next-free-field: 6\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct GrpcService {
- /// The timeout for the gRPC request. This is the timeout for a specific
- /// request.
- #[prost(message, optional, tag="3")]
- pub timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// Additional metadata to include in streams initiated to the GrpcService.
- /// This can be used for scenarios in which additional ad hoc authorization
- /// headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
- #[prost(message, repeated, tag="5")]
- pub initial_metadata: ::prost::alloc::vec::Vec<HeaderValue>,
- #[prost(oneof="grpc_service::TargetSpecifier", tags="1, 2")]
- pub target_specifier: ::core::option::Option<grpc_service::TargetSpecifier>,
-}
-/// Nested message and enum types in `GrpcService`.
-pub mod grpc_service {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct EnvoyGrpc {
- /// The name of the upstream gRPC cluster. SSL credentials will be supplied
- /// in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`transport_socket
- /// <envoy_api_field_Cluster.transport_socket>`.
- #[prost(string, tag="1")]
- pub cluster_name: ::prost::alloc::string::String,
- }
- /// \[#next-free-field: 7\]
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct GoogleGrpc {
- /// The target URI when using the `Google C++ gRPC client
- /// <<https://github.com/grpc/grpc>`_.> SSL credentials will be supplied in
- /// :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
- #[prost(string, tag="1")]
- pub target_uri: ::prost::alloc::string::String,
- #[prost(message, optional, tag="2")]
- pub channel_credentials: ::core::option::Option<google_grpc::ChannelCredentials>,
- /// A set of call credentials that can be composed with `channel credentials
- /// <<https://grpc.io/docs/guides/auth.html#credential-types>`_.>
- #[prost(message, repeated, tag="3")]
- pub call_credentials: ::prost::alloc::vec::Vec<google_grpc::CallCredentials>,
- /// The human readable prefix to use when emitting statistics for the gRPC
- /// service.
- ///
- /// .. csv-table::
- /// :header: Name, Type, Description
- /// :widths: 1, 1, 2
- ///
- /// streams_total, Counter, Total number of streams opened
- /// streams_closed_<gRPC status code>, Counter, Total streams closed with <gRPC status code>
- #[prost(string, tag="4")]
- pub stat_prefix: ::prost::alloc::string::String,
- /// The name of the Google gRPC credentials factory to use. This must have been registered with
- /// Envoy. If this is empty, a default credentials factory will be used that sets up channel
- /// credentials based on other configuration parameters.
- #[prost(string, tag="5")]
- pub credentials_factory_name: ::prost::alloc::string::String,
- /// Additional configuration for site-specific customizations of the Google
- /// gRPC library.
- #[prost(message, optional, tag="6")]
- pub config: ::core::option::Option<super::super::super::super::super::google::protobuf::Struct>,
- }
- /// Nested message and enum types in `GoogleGrpc`.
- pub mod google_grpc {
- /// See <https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.>
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct SslCredentials {
- /// PEM encoded server root certificates.
- #[prost(message, optional, tag="1")]
- pub root_certs: ::core::option::Option<super::super::DataSource>,
- /// PEM encoded client private key.
- #[prost(message, optional, tag="2")]
- pub private_key: ::core::option::Option<super::super::DataSource>,
- /// PEM encoded client certificate chain.
- #[prost(message, optional, tag="3")]
- pub cert_chain: ::core::option::Option<super::super::DataSource>,
- }
- /// Local channel credentials. Only UDS is supported for now.
- /// See <https://github.com/grpc/grpc/pull/15909.>
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
- pub struct GoogleLocalCredentials {
- }
- /// See <https://grpc.io/docs/guides/auth.html#credential-types> to understand Channel and Call
- /// credential types.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct ChannelCredentials {
- #[prost(oneof="channel_credentials::CredentialSpecifier", tags="1, 2, 3")]
- pub credential_specifier: ::core::option::Option<channel_credentials::CredentialSpecifier>,
- }
- /// Nested message and enum types in `ChannelCredentials`.
- pub mod channel_credentials {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum CredentialSpecifier {
- #[prost(message, tag="1")]
- SslCredentials(super::SslCredentials),
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61>
- #[prost(message, tag="2")]
- GoogleDefault(super::super::super::super::super::super::super::google::protobuf::Empty),
- #[prost(message, tag="3")]
- LocalCredentials(super::GoogleLocalCredentials),
- }
- }
- /// \[#next-free-field: 8\]
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct CallCredentials {
- #[prost(oneof="call_credentials::CredentialSpecifier", tags="1, 2, 3, 4, 5, 6, 7")]
- pub credential_specifier: ::core::option::Option<call_credentials::CredentialSpecifier>,
- }
- /// Nested message and enum types in `CallCredentials`.
- pub mod call_credentials {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct ServiceAccountJwtAccessCredentials {
- #[prost(string, tag="1")]
- pub json_key: ::prost::alloc::string::String,
- #[prost(uint64, tag="2")]
- pub token_lifetime_seconds: u64,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct GoogleIamCredentials {
- #[prost(string, tag="1")]
- pub authorization_token: ::prost::alloc::string::String,
- #[prost(string, tag="2")]
- pub authority_selector: ::prost::alloc::string::String,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct MetadataCredentialsFromPlugin {
- #[prost(string, tag="1")]
- pub name: ::prost::alloc::string::String,
- #[prost(oneof="metadata_credentials_from_plugin::ConfigType", tags="2, 3")]
- pub config_type: ::core::option::Option<metadata_credentials_from_plugin::ConfigType>,
- }
- /// Nested message and enum types in `MetadataCredentialsFromPlugin`.
- pub mod metadata_credentials_from_plugin {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum ConfigType {
- #[prost(message, tag="2")]
- Config(super::super::super::super::super::super::super::super::google::protobuf::Struct),
- #[prost(message, tag="3")]
- TypedConfig(super::super::super::super::super::super::super::super::google::protobuf::Any),
- }
- }
- /// Security token service configuration that allows Google gRPC to
- /// fetch security token from an OAuth 2.0 authorization server.
- /// See <https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16> and
- /// <https://github.com/grpc/grpc/pull/19587.>
- /// \[#next-free-field: 10\]
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct StsService {
- /// URI of the token exchange service that handles token exchange requests.
- /// [#comment:TODO(asraa): Add URI validation when implemented. Tracked by
- /// <https://github.com/bufbuild/protoc-gen-validate/issues/303]>
- #[prost(string, tag="1")]
- pub token_exchange_service_uri: ::prost::alloc::string::String,
- /// Location of the target service or resource where the client
- /// intends to use the requested security token.
- #[prost(string, tag="2")]
- pub resource: ::prost::alloc::string::String,
- /// Logical name of the target service where the client intends to
- /// use the requested security token.
- #[prost(string, tag="3")]
- pub audience: ::prost::alloc::string::String,
- /// The desired scope of the requested security token in the
- /// context of the service or resource where the token will be used.
- #[prost(string, tag="4")]
- pub scope: ::prost::alloc::string::String,
- /// Type of the requested security token.
- #[prost(string, tag="5")]
- pub requested_token_type: ::prost::alloc::string::String,
- /// The path of subject token, a security token that represents the
- /// identity of the party on behalf of whom the request is being made.
- #[prost(string, tag="6")]
- pub subject_token_path: ::prost::alloc::string::String,
- /// Type of the subject token.
- #[prost(string, tag="7")]
- pub subject_token_type: ::prost::alloc::string::String,
- /// The path of actor token, a security token that represents the identity
- /// of the acting party. The acting party is authorized to use the
- /// requested security token and act on behalf of the subject.
- #[prost(string, tag="8")]
- pub actor_token_path: ::prost::alloc::string::String,
- /// Type of the actor token.
- #[prost(string, tag="9")]
- pub actor_token_type: ::prost::alloc::string::String,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum CredentialSpecifier {
- /// Access token credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d.>
- #[prost(string, tag="1")]
- AccessToken(::prost::alloc::string::String),
- /// Google Compute Engine credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61>
- #[prost(message, tag="2")]
- GoogleComputeEngine(super::super::super::super::super::super::super::google::protobuf::Empty),
- /// Google refresh token credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a96901c997b91bc6513b08491e0dca37c.>
- #[prost(string, tag="3")]
- GoogleRefreshToken(::prost::alloc::string::String),
- /// Service Account JWT Access credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.>
- #[prost(message, tag="4")]
- ServiceAccountJwtAccess(ServiceAccountJwtAccessCredentials),
- /// Google IAM credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.>
- #[prost(message, tag="5")]
- GoogleIam(GoogleIamCredentials),
- /// Custom authenticator credentials.
- /// <https://grpc.io/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07.>
- /// <https://grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.>
- #[prost(message, tag="6")]
- FromPlugin(MetadataCredentialsFromPlugin),
- /// Custom security token service which implements OAuth 2.0 token exchange.
- /// <https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16>
- /// See <https://github.com/grpc/grpc/pull/19587.>
- #[prost(message, tag="7")]
- StsService(StsService),
- }
- }
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum TargetSpecifier {
- /// Envoy's in-built gRPC client.
- /// See the :ref:`gRPC services overview <arch_overview_grpc_services>`
- /// documentation for discussion on gRPC client selection.
- #[prost(message, tag="1")]
- EnvoyGrpc(EnvoyGrpc),
- /// `Google C++ gRPC client <<https://github.com/grpc/grpc>`_>
- /// See the :ref:`gRPC services overview <arch_overview_grpc_services>`
- /// documentation for discussion on gRPC client selection.
- #[prost(message, tag="2")]
- GoogleGrpc(GoogleGrpc),
- }
-}
-/// \[#not-implemented-hide:\]
-/// Configuration of the event reporting service endpoint.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct EventServiceConfig {
- #[prost(oneof="event_service_config::ConfigSourceSpecifier", tags="1")]
- pub config_source_specifier: ::core::option::Option<event_service_config::ConfigSourceSpecifier>,
-}
-/// Nested message and enum types in `EventServiceConfig`.
-pub mod event_service_config {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum ConfigSourceSpecifier {
- /// Specifies the gRPC service that hosts the event reporting service.
- #[prost(message, tag="1")]
- GrpcService(super::GrpcService),
- }
-}
-/// \[#next-free-field: 23\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct HealthCheck {
- /// The time to wait for a health check response. If the timeout is reached the
- /// health check attempt will be considered a failure.
- #[prost(message, optional, tag="1")]
- pub timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The interval between health checks.
- #[prost(message, optional, tag="2")]
- pub interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// An optional jitter amount in milliseconds. If specified, Envoy will start health
- /// checking after for a random time in ms between 0 and initial_jitter. This only
- /// applies to the first health check.
- #[prost(message, optional, tag="20")]
- pub initial_jitter: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// An optional jitter amount in milliseconds. If specified, during every
- /// interval Envoy will add interval_jitter to the wait time.
- #[prost(message, optional, tag="3")]
- pub interval_jitter: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// An optional jitter amount as a percentage of interval_ms. If specified,
- /// during every interval Envoy will add interval_ms *
- /// interval_jitter_percent / 100 to the wait time.
- ///
- /// If interval_jitter_ms and interval_jitter_percent are both set, both of
- /// them will be used to increase the wait time.
- #[prost(uint32, tag="18")]
- pub interval_jitter_percent: u32,
- /// The number of unhealthy health checks required before a host is marked
- /// unhealthy. Note that for *http* health checking if a host responds with 503
- /// this threshold is ignored and the host is considered unhealthy immediately.
- #[prost(message, optional, tag="4")]
- pub unhealthy_threshold: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// The number of healthy health checks required before a host is marked
- /// healthy. Note that during startup, only a single successful health check is
- /// required to mark a host healthy.
- #[prost(message, optional, tag="5")]
- pub healthy_threshold: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// \[#not-implemented-hide:\] Non-serving port for health checking.
- #[prost(message, optional, tag="6")]
- pub alt_port: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Reuse health check connection between health checks. Default is true.
- #[prost(message, optional, tag="7")]
- pub reuse_connection: ::core::option::Option<super::super::super::super::google::protobuf::BoolValue>,
- /// The "no traffic interval" is a special health check interval that is used when a cluster has
- /// never had traffic routed to it. This lower interval allows cluster information to be kept up to
- /// date, without sending a potentially large amount of active health checking traffic for no
- /// reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the
- /// standard health check interval that is defined. Note that this interval takes precedence over
- /// any other.
- ///
- /// The default value for "no traffic interval" is 60 seconds.
- #[prost(message, optional, tag="12")]
- pub no_traffic_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The "unhealthy interval" is a health check interval that is used for hosts that are marked as
- /// unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the
- /// standard health check interval that is defined.
- ///
- /// The default value for "unhealthy interval" is the same as "interval".
- #[prost(message, optional, tag="14")]
- pub unhealthy_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The "unhealthy edge interval" is a special health check interval that is used for the first
- /// health check right after a host is marked as unhealthy. For subsequent health checks
- /// Envoy will shift back to using either "unhealthy interval" if present or the standard health
- /// check interval that is defined.
- ///
- /// The default value for "unhealthy edge interval" is the same as "unhealthy interval".
- #[prost(message, optional, tag="15")]
- pub unhealthy_edge_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The "healthy edge interval" is a special health check interval that is used for the first
- /// health check right after a host is marked as healthy. For subsequent health checks
- /// Envoy will shift back to using the standard health check interval that is defined.
- ///
- /// The default value for "healthy edge interval" is the same as the default interval.
- #[prost(message, optional, tag="16")]
- pub healthy_edge_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
- /// If empty, no event log will be written.
- #[prost(string, tag="17")]
- pub event_log_path: ::prost::alloc::string::String,
- /// \[#not-implemented-hide:\]
- /// The gRPC service for the health check event service.
- /// If empty, health check events won't be sent to a remote endpoint.
- #[prost(message, optional, tag="22")]
- pub event_service: ::core::option::Option<EventServiceConfig>,
- /// If set to true, health check failure events will always be logged. If set to false, only the
- /// initial health check failure event will be logged.
- /// The default value is false.
- #[prost(bool, tag="19")]
- pub always_log_health_check_failures: bool,
- /// This allows overriding the cluster TLS settings, just for health check connections.
- #[prost(message, optional, tag="21")]
- pub tls_options: ::core::option::Option<health_check::TlsOptions>,
- #[prost(oneof="health_check::HealthChecker", tags="8, 9, 11, 13")]
- pub health_checker: ::core::option::Option<health_check::HealthChecker>,
-}
-/// Nested message and enum types in `HealthCheck`.
-pub mod health_check {
- /// Describes the encoding of the payload bytes in the payload.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct Payload {
- #[prost(oneof="payload::Payload", tags="1, 2")]
- pub payload: ::core::option::Option<payload::Payload>,
- }
- /// Nested message and enum types in `Payload`.
- pub mod payload {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum Payload {
- /// Hex encoded payload. E.g., "000000FF".
- #[prost(string, tag="1")]
- Text(::prost::alloc::string::String),
- /// \[#not-implemented-hide:\] Binary payload.
- #[prost(bytes, tag="2")]
- Binary(::prost::alloc::vec::Vec<u8>),
- }
- }
- /// \[#next-free-field: 12\]
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct HttpHealthCheck {
- /// The value of the host header in the HTTP health check request. If
- /// left empty (default value), the name of the cluster this health check is associated
- /// with will be used. The host header can be customized for a specific endpoint by setting the
- /// :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
- #[prost(string, tag="1")]
- pub host: ::prost::alloc::string::String,
- /// Specifies the HTTP path that will be requested during health checking. For example
- /// */healthcheck*.
- #[prost(string, tag="2")]
- pub path: ::prost::alloc::string::String,
- /// \[#not-implemented-hide:\] HTTP specific payload.
- #[prost(message, optional, tag="3")]
- pub send: ::core::option::Option<Payload>,
- /// \[#not-implemented-hide:\] HTTP specific response.
- #[prost(message, optional, tag="4")]
- pub receive: ::core::option::Option<Payload>,
- /// An optional service name parameter which is used to validate the identity of
- /// the health checked cluster. See the :ref:`architecture overview
- /// <arch_overview_health_checking_identity>` for more information.
- ///
- /// .. attention::
- ///
- /// This field has been deprecated in favor of `service_name_matcher` for better flexibility
- /// over matching with service-cluster name.
- #[deprecated]
- #[prost(string, tag="5")]
- pub service_name: ::prost::alloc::string::String,
- /// Specifies a list of HTTP headers that should be added to each request that is sent to the
- /// health checked cluster. For more information, including details on header value syntax, see
- /// the documentation on :ref:`custom request headers
- /// <config_http_conn_man_headers_custom_request_headers>`.
- #[prost(message, repeated, tag="6")]
- pub request_headers_to_add: ::prost::alloc::vec::Vec<super::HeaderValueOption>,
- /// Specifies a list of HTTP headers that should be removed from each request that is sent to the
- /// health checked cluster.
- #[prost(string, repeated, tag="8")]
- pub request_headers_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
- /// If set, health checks will be made using http/2.
- /// Deprecated, use :ref:`codec_client_type
- /// <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
- #[deprecated]
- #[prost(bool, tag="7")]
- pub use_http2: bool,
- /// Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
- /// 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
- /// semantics of :ref:`Int64Range <envoy_api_msg_type.Int64Range>`. The start and end of each
- /// range are required. Only statuses in the range [100, 600) are allowed.
- #[prost(message, repeated, tag="9")]
- pub expected_statuses: ::prost::alloc::vec::Vec<super::super::super::super::r#type::Int64Range>,
- /// Use specified application protocol for health checks.
- #[prost(enumeration="super::super::super::super::r#type::CodecClientType", tag="10")]
- pub codec_client_type: i32,
- /// An optional service name parameter which is used to validate the identity of
- /// the health checked cluster using a :ref:`StringMatcher
- /// <envoy_api_msg_type.matcher.StringMatcher>`. See the :ref:`architecture overview
- /// <arch_overview_health_checking_identity>` for more information.
- #[prost(message, optional, tag="11")]
- pub service_name_matcher: ::core::option::Option<super::super::super::super::r#type::matcher::StringMatcher>,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct TcpHealthCheck {
- /// Empty payloads imply a connect-only health check.
- #[prost(message, optional, tag="1")]
- pub send: ::core::option::Option<Payload>,
- /// When checking the response, “fuzzy” matching is performed such that each
- /// binary block must be found, and in the order specified, but not
- /// necessarily contiguous.
- #[prost(message, repeated, tag="2")]
- pub receive: ::prost::alloc::vec::Vec<Payload>,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct RedisHealthCheck {
- /// If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
- /// from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
- /// than 0 is considered a failure. This allows the user to mark a Redis instance for maintenance
- /// by setting the specified key to any value and waiting for traffic to drain.
- #[prost(string, tag="1")]
- pub key: ::prost::alloc::string::String,
- }
- /// `grpc.health.v1.Health
- /// <<https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_-based>
- /// healthcheck. See `gRPC doc <<https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_>
- /// for details.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct GrpcHealthCheck {
- /// An optional service name parameter which will be sent to gRPC service in
- /// `grpc.health.v1.HealthCheckRequest
- /// <<https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20>`_.>
- /// message. See `gRPC health-checking overview
- /// <<https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_> for more information.
- #[prost(string, tag="1")]
- pub service_name: ::prost::alloc::string::String,
- /// The value of the :authority header in the gRPC health check request. If
- /// left empty (default value), the name of the cluster this health check is associated
- /// with will be used. The authority header can be customized for a specific endpoint by setting
- /// the :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
- #[prost(string, tag="2")]
- pub authority: ::prost::alloc::string::String,
- }
- /// Custom health check.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct CustomHealthCheck {
- /// The registered name of the custom health checker.
- #[prost(string, tag="1")]
- pub name: ::prost::alloc::string::String,
- /// A custom health checker specific configuration which depends on the custom health checker
- /// being instantiated. See :api:`envoy/config/health_checker` for reference.
- #[prost(oneof="custom_health_check::ConfigType", tags="2, 3")]
- pub config_type: ::core::option::Option<custom_health_check::ConfigType>,
- }
- /// Nested message and enum types in `CustomHealthCheck`.
- pub mod custom_health_check {
- /// A custom health checker specific configuration which depends on the custom health checker
- /// being instantiated. See :api:`envoy/config/health_checker` for reference.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum ConfigType {
- #[prost(message, tag="2")]
- Config(super::super::super::super::super::super::google::protobuf::Struct),
- #[prost(message, tag="3")]
- TypedConfig(super::super::super::super::super::super::google::protobuf::Any),
- }
- }
- /// Health checks occur over the transport socket specified for the cluster. This implies that if a
- /// cluster is using a TLS-enabled transport socket, the health check will also occur over TLS.
- ///
- /// This allows overriding the cluster TLS settings, just for health check connections.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct TlsOptions {
- /// Specifies the ALPN protocols for health check connections. This is useful if the
- /// corresponding upstream is using ALPN-based :ref:`FilterChainMatch
- /// <envoy_api_msg_listener.FilterChainMatch>` along with different protocols for health checks
- /// versus data connections. If empty, no ALPN protocols will be set on health check connections.
- #[prost(string, repeated, tag="1")]
- pub alpn_protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum HealthChecker {
- /// HTTP health check.
- #[prost(message, tag="8")]
- HttpHealthCheck(HttpHealthCheck),
- /// TCP health check.
- #[prost(message, tag="9")]
- TcpHealthCheck(TcpHealthCheck),
- /// gRPC health check.
- #[prost(message, tag="11")]
- GrpcHealthCheck(GrpcHealthCheck),
- /// Custom health check.
- #[prost(message, tag="13")]
- CustomHealthCheck(CustomHealthCheck),
- }
-}
-// \[#protodoc-title: Health check\]
-// * Health checking :ref:`architecture overview <arch_overview_health_checking>`.
-// * If health checking is configured for a cluster, additional statistics are emitted. They are
-// documented :ref:`here <config_cluster_manager_cluster_stats>`.
-
-/// Endpoint health status.
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-#[repr(i32)]
-pub enum HealthStatus {
- /// The health status is not known. This is interpreted by Envoy as *HEALTHY*.
- Unknown = 0,
- /// Healthy.
- Healthy = 1,
- /// Unhealthy.
- Unhealthy = 2,
- /// Connection draining in progress. E.g.,
- /// `<<https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/>`_>
- /// or
- /// `<<https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining>`_.>
- /// This is interpreted by Envoy as *UNHEALTHY*.
- Draining = 3,
- /// Health check timed out. This is part of HDS and is interpreted by Envoy as
- /// *UNHEALTHY*.
- Timeout = 4,
- /// Degraded.
- Degraded = 5,
-}
-impl HealthStatus {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- HealthStatus::Unknown => "UNKNOWN",
- HealthStatus::Healthy => "HEALTHY",
- HealthStatus::Unhealthy => "UNHEALTHY",
- HealthStatus::Draining => "DRAINING",
- HealthStatus::Timeout => "TIMEOUT",
- HealthStatus::Degraded => "DEGRADED",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "UNKNOWN" => Some(Self::Unknown),
- "HEALTHY" => Some(Self::Healthy),
- "UNHEALTHY" => Some(Self::Unhealthy),
- "DRAINING" => Some(Self::Draining),
- "TIMEOUT" => Some(Self::Timeout),
- "DEGRADED" => Some(Self::Degraded),
- _ => None,
- }
- }
-}
-/// API configuration source. This identifies the API type and cluster that Envoy
-/// will use to fetch an xDS API.
-/// \[#next-free-field: 9\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ApiConfigSource {
- /// API type (gRPC, REST, delta gRPC)
- #[prost(enumeration="api_config_source::ApiType", tag="1")]
- pub api_type: i32,
- /// API version for xDS transport protocol. This describes the xDS gRPC/REST
- /// endpoint and version of \[Delta\]DiscoveryRequest/Response used on the wire.
- #[prost(enumeration="ApiVersion", tag="8")]
- pub transport_api_version: i32,
- /// Cluster names should be used only with REST. If > 1
- /// cluster is defined, clusters will be cycled through if any kind of failure
- /// occurs.
- ///
- /// .. note::
- ///
- /// The cluster with name ``cluster_name`` must be statically defined and its
- /// type must not be ``EDS``.
- #[prost(string, repeated, tag="2")]
- pub cluster_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
- /// Multiple gRPC services be provided for GRPC. If > 1 cluster is defined,
- /// services will be cycled through if any kind of failure occurs.
- #[prost(message, repeated, tag="4")]
- pub grpc_services: ::prost::alloc::vec::Vec<GrpcService>,
- /// For REST APIs, the delay between successive polls.
- #[prost(message, optional, tag="3")]
- pub refresh_delay: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// For REST APIs, the request timeout. If not set, a default value of 1s will be used.
- #[prost(message, optional, tag="5")]
- pub request_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// For GRPC APIs, the rate limit settings. If present, discovery requests made by Envoy will be
- /// rate limited.
- #[prost(message, optional, tag="6")]
- pub rate_limit_settings: ::core::option::Option<RateLimitSettings>,
- /// Skip the node identifier in subsequent discovery requests for streaming gRPC config types.
- #[prost(bool, tag="7")]
- pub set_node_on_first_message_only: bool,
-}
-/// Nested message and enum types in `ApiConfigSource`.
-pub mod api_config_source {
- /// APIs may be fetched via either REST or gRPC.
- #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
- #[repr(i32)]
- pub enum ApiType {
- /// Ideally this would be 'reserved 0' but one can't reserve the default
- /// value. Instead we throw an exception if this is ever used.
- UnsupportedRestLegacy = 0,
- /// REST-JSON v2 API. The `canonical JSON encoding
- /// <<https://developers.google.com/protocol-buffers/docs/proto3#json>`_> for
- /// the v2 protos is used.
- Rest = 1,
- /// gRPC v2 API.
- Grpc = 2,
- /// Using the delta xDS gRPC service, i.e. DeltaDiscovery{Request,Response}
- /// rather than Discovery{Request,Response}. Rather than sending Envoy the entire state
- /// with every update, the xDS server only sends what has changed since the last update.
- DeltaGrpc = 3,
- }
- impl ApiType {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- ApiType::UnsupportedRestLegacy => "UNSUPPORTED_REST_LEGACY",
- ApiType::Rest => "REST",
- ApiType::Grpc => "GRPC",
- ApiType::DeltaGrpc => "DELTA_GRPC",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "UNSUPPORTED_REST_LEGACY" => Some(Self::UnsupportedRestLegacy),
- "REST" => Some(Self::Rest),
- "GRPC" => Some(Self::Grpc),
- "DELTA_GRPC" => Some(Self::DeltaGrpc),
- _ => None,
- }
- }
- }
-}
-/// Aggregated Discovery Service (ADS) options. This is currently empty, but when
-/// set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
-/// specify that ADS is to be used.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct AggregatedConfigSource {
-}
-/// \[#not-implemented-hide:\]
-/// Self-referencing config source options. This is currently empty, but when
-/// set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
-/// specify that other data can be obtained from the same server.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct SelfConfigSource {
- /// API version for xDS transport protocol. This describes the xDS gRPC/REST
- /// endpoint and version of \[Delta\]DiscoveryRequest/Response used on the wire.
- #[prost(enumeration="ApiVersion", tag="1")]
- pub transport_api_version: i32,
-}
-/// Rate Limit settings to be applied for discovery requests made by Envoy.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct RateLimitSettings {
- /// Maximum number of tokens to be used for rate limiting discovery request calls. If not set, a
- /// default value of 100 will be used.
- #[prost(message, optional, tag="1")]
- pub max_tokens: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Rate at which tokens will be filled per second. If not set, a default fill rate of 10 tokens
- /// per second will be used.
- #[prost(message, optional, tag="2")]
- pub fill_rate: ::core::option::Option<super::super::super::super::google::protobuf::DoubleValue>,
-}
-/// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
-/// <config_cluster_manager>`, :ref:`routes
-/// <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
-/// <arch_overview_service_discovery>` etc. may either be sourced from the
-/// filesystem or from an xDS API source. Filesystem configs are watched with
-/// inotify for updates.
-/// \[#next-free-field: 7\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct ConfigSource {
- /// When this timeout is specified, Envoy will wait no longer than the specified time for first
- /// config response on this xDS subscription during the :ref:`initialization process
- /// <arch_overview_initialization>`. After reaching the timeout, Envoy will move to the next
- /// initialization phase, even if the first config is not delivered yet. The timer is activated
- /// when the xDS API subscription starts, and is disarmed on first config update or on error. 0
- /// means no timeout - Envoy will wait indefinitely for the first xDS config (unless another
- /// timeout applies). The default is 15s.
- #[prost(message, optional, tag="4")]
- pub initial_fetch_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// API version for xDS resources. This implies the type URLs that the client
- /// will request for resources and the resource type that the client will in
- /// turn expect to be delivered.
- #[prost(enumeration="ApiVersion", tag="6")]
- pub resource_api_version: i32,
- #[prost(oneof="config_source::ConfigSourceSpecifier", tags="1, 2, 3, 5")]
- pub config_source_specifier: ::core::option::Option<config_source::ConfigSourceSpecifier>,
-}
-/// Nested message and enum types in `ConfigSource`.
-pub mod config_source {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Oneof)]
- pub enum ConfigSourceSpecifier {
- /// Path on the filesystem to source and watch for configuration updates.
- /// When sourcing configuration for :ref:`secret <envoy_api_msg_auth.Secret>`,
- /// the certificate and key files are also watched for updates.
- ///
- /// .. note::
- ///
- /// The path to the source must exist at config load time.
- ///
- /// .. note::
- ///
- /// Envoy will only watch the file path for *moves.* This is because in general only moves
- /// are atomic. The same method of swapping files as is demonstrated in the
- /// :ref:`runtime documentation <config_runtime_symbolic_link_swap>` can be used here also.
- #[prost(string, tag="1")]
- Path(::prost::alloc::string::String),
- /// API configuration source.
- #[prost(message, tag="2")]
- ApiConfigSource(super::ApiConfigSource),
- /// When set, ADS will be used to fetch resources. The ADS API configuration
- /// source in the bootstrap configuration is used.
- #[prost(message, tag="3")]
- Ads(super::AggregatedConfigSource),
- /// \[#not-implemented-hide:\]
- /// When set, the client will access the resources from the same server it got the
- /// ConfigSource from, although not necessarily from the same stream. This is similar to the
- /// :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
- /// different stream to the same server. As a result, this field can be used for things
- /// like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
- /// LDS to RDS on the same server without requiring the management server to know its name
- /// or required credentials.
- /// [#next-major-version: In xDS v3, consider replacing the ads field with this one, since
- /// this field can implicitly mean to use the same stream in the case where the ConfigSource
- /// is provided via ADS and the specified data can also be obtained via ADS.]
- #[prost(message, tag="5")]
- Self_(super::SelfConfigSource),
- }
-}
-// \[#protodoc-title: Configuration sources\]
-
-/// xDS API version. This is used to describe both resource and transport
-/// protocol versions (in distinct configuration fields).
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
-#[repr(i32)]
-pub enum ApiVersion {
- /// When not specified, we assume v2, to ease migration to Envoy's stable API
- /// versioning. If a client does not support v2 (e.g. due to deprecation), this
- /// is an invalid value.
- Auto = 0,
- /// Use xDS v2 API.
- V2 = 1,
- /// Use xDS v3 API.
- V3 = 2,
-}
-impl ApiVersion {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- ApiVersion::Auto => "AUTO",
- ApiVersion::V2 => "V2",
- ApiVersion::V3 => "V3",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "AUTO" => Some(Self::Auto),
- "V2" => Some(Self::V2),
- "V3" => Some(Self::V3),
- _ => None,
- }
- }
-}
-// \[#protodoc-title: Protocol options\]
-
-/// \[#not-implemented-hide:\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct TcpProtocolOptions {
-}
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct UpstreamHttpProtocolOptions {
- /// Set transport socket `SNI <<https://en.wikipedia.org/wiki/Server_Name_Indication>`_> for new
- /// upstream connections based on the downstream HTTP host/authority header, as seen by the
- /// :ref:`router filter <config_http_filters_router>`.
- #[prost(bool, tag="1")]
- pub auto_sni: bool,
- /// Automatic validate upstream presented certificate for new upstream connections based on the
- /// downstream HTTP host/authority header, as seen by the
- /// :ref:`router filter <config_http_filters_router>`.
- /// This field is intended to set with `auto_sni` field.
- #[prost(bool, tag="2")]
- pub auto_san_validation: bool,
-}
-/// \[#next-free-field: 6\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
-pub struct HttpProtocolOptions {
- /// The idle timeout for connections. The idle timeout is defined as the
- /// period in which there are no active requests. When the
- /// idle timeout is reached the connection will be closed. If the connection is an HTTP/2
- /// downstream connection a drain sequence will occur prior to closing the connection, see
- /// :ref:`drain_timeout
- /// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
- /// Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
- /// If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
- ///
- /// .. warning::
- /// Disabling this timeout has a highly likelihood of yielding connection leaks due to lost TCP
- /// FIN packets, etc.
- #[prost(message, optional, tag="1")]
- pub idle_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The maximum duration of a connection. The duration is defined as a period since a connection
- /// was established. If not set, there is no max duration. When max_connection_duration is reached
- /// the connection will be closed. Drain sequence will occur prior to closing the connection if
- /// if's applicable. See :ref:`drain_timeout
- /// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
- /// Note: not implemented for upstream connections.
- #[prost(message, optional, tag="3")]
- pub max_connection_duration: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// The maximum number of headers. If unconfigured, the default
- /// maximum number of request headers allowed is 100. Requests that exceed this limit will receive
- /// a 431 response for HTTP/1.x and cause a stream reset for HTTP/2.
- #[prost(message, optional, tag="2")]
- pub max_headers_count: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Total duration to keep alive an HTTP request/response stream. If the time limit is reached the stream will be
- /// reset independent of any other timeouts. If not specified, this value is not set.
- #[prost(message, optional, tag="4")]
- pub max_stream_duration: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
- /// Action to take when a client request with a header name containing underscore characters is received.
- /// If this setting is not specified, the value defaults to ALLOW.
- /// Note: upstream responses are not affected by this setting.
- #[prost(enumeration="http_protocol_options::HeadersWithUnderscoresAction", tag="5")]
- pub headers_with_underscores_action: i32,
-}
-/// Nested message and enum types in `HttpProtocolOptions`.
-pub mod http_protocol_options {
- /// Action to take when Envoy receives client request with header names containing underscore
- /// characters.
- /// Underscore character is allowed in header names by the RFC-7230 and this behavior is implemented
- /// as a security measure due to systems that treat '_' and '-' as interchangeable. Envoy by default allows client request headers with underscore
- /// characters.
- #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
- #[repr(i32)]
- pub enum HeadersWithUnderscoresAction {
- /// Allow headers with underscores. This is the default behavior.
- Allow = 0,
- /// Reject client request. HTTP/1 requests are rejected with the 400 status. HTTP/2 requests
- /// end with the stream reset. The "httpN.requests_rejected_with_underscores_in_headers" counter
- /// is incremented for each rejected request.
- RejectRequest = 1,
- /// Drop the header with name containing underscores. The header is dropped before the filter chain is
- /// invoked and as such filters will not see dropped headers. The
- /// "httpN.dropped_headers_with_underscores" is incremented for each dropped header.
- DropHeader = 2,
- }
- impl HeadersWithUnderscoresAction {
- /// String value of the enum field names used in the ProtoBuf definition.
- ///
- /// The values are not transformed in any way and thus are considered stable
- /// (if the ProtoBuf definition does not change) and safe for programmatic use.
- pub fn as_str_name(&self) -> &'static str {
- match self {
- HeadersWithUnderscoresAction::Allow => "ALLOW",
- HeadersWithUnderscoresAction::RejectRequest => "REJECT_REQUEST",
- HeadersWithUnderscoresAction::DropHeader => "DROP_HEADER",
- }
- }
- /// Creates an enum from field names used in the ProtoBuf definition.
- pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
- match value {
- "ALLOW" => Some(Self::Allow),
- "REJECT_REQUEST" => Some(Self::RejectRequest),
- "DROP_HEADER" => Some(Self::DropHeader),
- _ => None,
- }
- }
- }
-}
-/// \[#next-free-field: 6\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Http1ProtocolOptions {
- /// Handle HTTP requests with absolute URLs in the requests. These requests
- /// are generally sent by clients to forward/explicit proxies. This allows clients to configure
- /// envoy as their HTTP proxy. In Unix, for example, this is typically done by setting the
- /// *http_proxy* environment variable.
- #[prost(message, optional, tag="1")]
- pub allow_absolute_url: ::core::option::Option<super::super::super::super::google::protobuf::BoolValue>,
- /// Handle incoming HTTP/1.0 and HTTP 0.9 requests.
- /// This is off by default, and not fully standards compliant. There is support for pre-HTTP/1.1
- /// style connect logic, dechunking, and handling lack of client host iff
- /// *default_host_for_http_10* is configured.
- #[prost(bool, tag="2")]
- pub accept_http_10: bool,
- /// A default host for HTTP/1.0 requests. This is highly suggested if *accept_http_10* is true as
- /// Envoy does not otherwise support HTTP/1.0 without a Host header.
- /// This is a no-op if *accept_http_10* is not true.
- #[prost(string, tag="3")]
- pub default_host_for_http_10: ::prost::alloc::string::String,
- /// Describes how the keys for response headers should be formatted. By default, all header keys
- /// are lower cased.
- #[prost(message, optional, tag="4")]
- pub header_key_format: ::core::option::Option<http1_protocol_options::HeaderKeyFormat>,
- /// Enables trailers for HTTP/1. By default the HTTP/1 codec drops proxied trailers.
- ///
- /// .. attention::
- ///
- /// Note that this only happens when Envoy is chunk encoding which occurs when:
- /// - The request is HTTP/1.1.
- /// - Is neither a HEAD only request nor a HTTP Upgrade.
- /// - Not a response to a HEAD request.
- /// - The content length header is not present.
- #[prost(bool, tag="5")]
- pub enable_trailers: bool,
-}
-/// Nested message and enum types in `Http1ProtocolOptions`.
-pub mod http1_protocol_options {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
- pub struct HeaderKeyFormat {
- #[prost(oneof="header_key_format::HeaderFormat", tags="1")]
- pub header_format: ::core::option::Option<header_key_format::HeaderFormat>,
- }
- /// Nested message and enum types in `HeaderKeyFormat`.
- pub mod header_key_format {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
- pub struct ProperCaseWords {
- }
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
- pub enum HeaderFormat {
- /// Formats the header by proper casing words: the first character and any character following
- /// a special character will be capitalized if it's an alpha character. For example,
- /// "content-type" becomes "Content-Type", and "foo$b#$are" becomes "Foo$B#$Are".
- /// Note that while this results in most headers following conventional casing, certain headers
- /// are not covered. For example, the "TE" header will be formatted as "Te".
- #[prost(message, tag="1")]
- ProperCaseWords(ProperCaseWords),
- }
- }
-}
-/// \[#next-free-field: 14\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct Http2ProtocolOptions {
- /// `Maximum table size <<https://httpwg.org/specs/rfc7541.html#rfc.section.4.2>`_>
- /// (in octets) that the encoder is permitted to use for the dynamic HPACK table. Valid values
- /// range from 0 to 4294967295 (2^32 - 1) and defaults to 4096. 0 effectively disables header
- /// compression.
- #[prost(message, optional, tag="1")]
- pub hpack_table_size: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// `Maximum concurrent streams <<https://httpwg.org/specs/rfc7540.html#rfc.section.5.1.2>`_>
- /// allowed for peer on one HTTP/2 connection. Valid values range from 1 to 2147483647 (2^31 - 1)
- /// and defaults to 2147483647.
- ///
- /// For upstream connections, this also limits how many streams Envoy will initiate concurrently
- /// on a single connection. If the limit is reached, Envoy may queue requests or establish
- /// additional connections (as allowed per circuit breaker limits).
- #[prost(message, optional, tag="2")]
- pub max_concurrent_streams: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// `Initial stream-level flow-control window
- /// <<https://httpwg.org/specs/rfc7540.html#rfc.section.6.9.2>`_> size. Valid values range from 65535
- /// (2^16 - 1, HTTP/2 default) to 2147483647 (2^31 - 1, HTTP/2 maximum) and defaults to 268435456
- /// (256 * 1024 * 1024).
- ///
- /// NOTE: 65535 is the initial window size from HTTP/2 spec. We only support increasing the default
- /// window size now, so it's also the minimum.
- ///
- /// This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
- /// HTTP/2 codec buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
- /// stop the flow of data to the codec buffers.
- #[prost(message, optional, tag="3")]
- pub initial_stream_window_size: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Similar to *initial_stream_window_size*, but for connection-level flow-control
- /// window. Currently, this has the same minimum/maximum/default as *initial_stream_window_size*.
- #[prost(message, optional, tag="4")]
- pub initial_connection_window_size: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Allows proxying Websocket and other upgrades over H2 connect.
- #[prost(bool, tag="5")]
- pub allow_connect: bool,
- /// \[#not-implemented-hide:\] Hiding until envoy has full metadata support.
- /// Still under implementation. DO NOT USE.
- ///
- /// Allows metadata. See [metadata
- /// docs](<https://github.com/envoyproxy/envoy/blob/main/source/docs/h2_metadata.md>) for more
- /// information.
- #[prost(bool, tag="6")]
- pub allow_metadata: bool,
- /// Limit the number of pending outbound downstream frames of all types (frames that are waiting to
- /// be written into the socket). Exceeding this limit triggers flood mitigation and connection is
- /// terminated. The ``http2.outbound_flood`` stat tracks the number of terminated connections due
- /// to flood mitigation. The default limit is 10000.
- /// \[#comment:TODO: implement same limits for upstream outbound frames as well.\]
- #[prost(message, optional, tag="7")]
- pub max_outbound_frames: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Limit the number of pending outbound downstream frames of types PING, SETTINGS and RST_STREAM,
- /// preventing high memory utilization when receiving continuous stream of these frames. Exceeding
- /// this limit triggers flood mitigation and connection is terminated. The
- /// ``http2.outbound_control_flood`` stat tracks the number of terminated connections due to flood
- /// mitigation. The default limit is 1000.
- /// \[#comment:TODO: implement same limits for upstream outbound frames as well.\]
- #[prost(message, optional, tag="8")]
- pub max_outbound_control_frames: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Limit the number of consecutive inbound frames of types HEADERS, CONTINUATION and DATA with an
- /// empty payload and no end stream flag. Those frames have no legitimate use and are abusive, but
- /// might be a result of a broken HTTP/2 implementation. The `http2.inbound_empty_frames_flood``
- /// stat tracks the number of connections terminated due to flood mitigation.
- /// Setting this to 0 will terminate connection upon receiving first frame with an empty payload
- /// and no end stream flag. The default limit is 1.
- /// \[#comment:TODO: implement same limits for upstream inbound frames as well.\]
- #[prost(message, optional, tag="9")]
- pub max_consecutive_inbound_frames_with_empty_payload: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Limit the number of inbound PRIORITY frames allowed per each opened stream. If the number
- /// of PRIORITY frames received over the lifetime of connection exceeds the value calculated
- /// using this formula::
- ///
- /// max_inbound_priority_frames_per_stream * (1 + inbound_streams)
- ///
- /// the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
- /// the number of connections terminated due to flood mitigation. The default limit is 100.
- /// \[#comment:TODO: implement same limits for upstream inbound frames as well.\]
- #[prost(message, optional, tag="10")]
- pub max_inbound_priority_frames_per_stream: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Limit the number of inbound WINDOW_UPDATE frames allowed per DATA frame sent. If the number
- /// of WINDOW_UPDATE frames received over the lifetime of connection exceeds the value calculated
- /// using this formula::
- ///
- /// 1 + 2 * (inbound_streams +
- /// max_inbound_window_update_frames_per_data_frame_sent * outbound_data_frames)
- ///
- /// the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
- /// the number of connections terminated due to flood mitigation. The default limit is 10.
- /// Setting this to 1 should be enough to support HTTP/2 implementations with basic flow control,
- /// but more complex implementations that try to estimate available bandwidth require at least 2.
- /// \[#comment:TODO: implement same limits for upstream inbound frames as well.\]
- #[prost(message, optional, tag="11")]
- pub max_inbound_window_update_frames_per_data_frame_sent: ::core::option::Option<super::super::super::super::google::protobuf::UInt32Value>,
- /// Allows invalid HTTP messaging and headers. When this option is disabled (default), then
- /// the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
- /// when this option is enabled, only the offending stream is terminated.
- ///
- /// See `RFC7540, sec. 8.1 <<https://tools.ietf.org/html/rfc7540#section-8.1>`_> for details.
- #[prost(bool, tag="12")]
- pub stream_error_on_invalid_http_messaging: bool,
- /// \[#not-implemented-hide:\]
- /// Specifies SETTINGS frame parameters to be sent to the peer, with two exceptions:
- ///
- /// 1. SETTINGS_ENABLE_PUSH (0x2) is not configurable as HTTP/2 server push is not supported by
- /// Envoy.
- ///
- /// 2. SETTINGS_ENABLE_CONNECT_PROTOCOL (0x8) is only configurable through the named field
- /// 'allow_connect'.
- ///
- /// Note that custom parameters specified through this field can not also be set in the
- /// corresponding named parameters:
- ///
- /// .. code-block:: text
- ///
- /// ID Field Name
- /// ----------------
- /// 0x1 hpack_table_size
- /// 0x3 max_concurrent_streams
- /// 0x4 initial_stream_window_size
- ///
- /// Collisions will trigger config validation failure on load/update. Likewise, inconsistencies
- /// between custom parameters with the same identifier will trigger a failure.
- ///
- /// See `IANA HTTP/2 Settings
- /// <<https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#settings>`_> for
- /// standardized identifiers.
- #[prost(message, repeated, tag="13")]
- pub custom_settings_parameters: ::prost::alloc::vec::Vec<http2_protocol_options::SettingsParameter>,
-}
-/// Nested message and enum types in `Http2ProtocolOptions`.
-pub mod http2_protocol_options {
- /// Defines a parameter to be sent in the SETTINGS frame.
- /// See `RFC7540, sec. 6.5.1 <<https://tools.ietf.org/html/rfc7540#section-6.5.1>`_> for details.
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, Copy, PartialEq, ::prost::Message)]
- pub struct SettingsParameter {
- /// The 16 bit parameter identifier.
- #[prost(message, optional, tag="1")]
- pub identifier: ::core::option::Option<super::super::super::super::super::google::protobuf::UInt32Value>,
- /// The 32 bit parameter value.
- #[prost(message, optional, tag="2")]
- pub value: ::core::option::Option<super::super::super::super::super::google::protobuf::UInt32Value>,
- }
-}
-/// \[#not-implemented-hide:\]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct GrpcProtocolOptions {
- #[prost(message, optional, tag="1")]
- pub http2_protocol_options: ::core::option::Option<Http2ProtocolOptions>,
-}
-// \[#protodoc-title: gRPC method list\]
-
-/// A list of gRPC methods which can be used as an allowlist, for example.
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
-pub struct GrpcMethodList {
- #[prost(message, repeated, tag="1")]
- pub services: ::prost::alloc::vec::Vec<grpc_method_list::Service>,
-}
-/// Nested message and enum types in `GrpcMethodList`.
-pub mod grpc_method_list {
- #[allow(clippy::derive_partial_eq_without_eq)]
-#[derive(Clone, PartialEq, ::prost::Message)]
- pub struct Service {
- /// The name of the gRPC service.
- #[prost(string, tag="1")]
- pub name: ::prost::alloc::string::String,
- /// The names of the gRPC methods in this service.
- #[prost(string, repeated, tag="2")]
- pub method_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
- }
-}
-// @@protoc_insertion_point(module)