summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.admin.v2alpha.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpc/envoy.admin.v2alpha.rs')
-rw-r--r--src/rpc/envoy.admin.v2alpha.rs897
1 files changed, 897 insertions, 0 deletions
diff --git a/src/rpc/envoy.admin.v2alpha.rs b/src/rpc/envoy.admin.v2alpha.rs
new file mode 100644
index 00000000..e3ca516f
--- /dev/null
+++ b/src/rpc/envoy.admin.v2alpha.rs
@@ -0,0 +1,897 @@
+// @generated
+// This file is @generated by prost-build.
+// \[#protodoc-title: Certificates\]
+
+/// Proto representation of certificate details. Admin endpoint uses this wrapper for `/certs` to
+/// display certificate information. See :ref:`/certs <operations_admin_interface_certs>` for more
+/// information.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Certificates {
+ /// List of certificates known to an Envoy.
+ #[prost(message, repeated, tag="1")]
+ pub certificates: ::prost::alloc::vec::Vec<Certificate>,
+}
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Certificate {
+ /// Details of CA certificate.
+ #[prost(message, repeated, tag="1")]
+ pub ca_cert: ::prost::alloc::vec::Vec<CertificateDetails>,
+ /// Details of Certificate Chain
+ #[prost(message, repeated, tag="2")]
+ pub cert_chain: ::prost::alloc::vec::Vec<CertificateDetails>,
+}
+/// \[#next-free-field: 7\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct CertificateDetails {
+ /// Path of the certificate.
+ #[prost(string, tag="1")]
+ pub path: ::prost::alloc::string::String,
+ /// Certificate Serial Number.
+ #[prost(string, tag="2")]
+ pub serial_number: ::prost::alloc::string::String,
+ /// List of Subject Alternate names.
+ #[prost(message, repeated, tag="3")]
+ pub subject_alt_names: ::prost::alloc::vec::Vec<SubjectAlternateName>,
+ /// Minimum of days until expiration of certificate and it's chain.
+ #[prost(uint64, tag="4")]
+ pub days_until_expiration: u64,
+ /// Indicates the time from which the certificate is valid.
+ #[prost(message, optional, tag="5")]
+ pub valid_from: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
+ /// Indicates the time at which the certificate expires.
+ #[prost(message, optional, tag="6")]
+ pub expiration_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
+}
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct SubjectAlternateName {
+ /// Subject Alternate Name.
+ #[prost(oneof="subject_alternate_name::Name", tags="1, 2, 3")]
+ pub name: ::core::option::Option<subject_alternate_name::Name>,
+}
+/// Nested message and enum types in `SubjectAlternateName`.
+pub mod subject_alternate_name {
+ /// Subject Alternate Name.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Oneof)]
+ pub enum Name {
+ #[prost(string, tag="1")]
+ Dns(::prost::alloc::string::String),
+ #[prost(string, tag="2")]
+ Uri(::prost::alloc::string::String),
+ #[prost(string, tag="3")]
+ IpAddress(::prost::alloc::string::String),
+ }
+}
+// \[#protodoc-title: Metrics\]
+
+/// Proto representation of an Envoy Counter or Gauge value.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct SimpleMetric {
+ /// Type of the metric represented.
+ #[prost(enumeration="simple_metric::Type", tag="1")]
+ pub r#type: i32,
+ /// Current metric value.
+ #[prost(uint64, tag="2")]
+ pub value: u64,
+ /// Name of the metric.
+ #[prost(string, tag="3")]
+ pub name: ::prost::alloc::string::String,
+}
+/// Nested message and enum types in `SimpleMetric`.
+pub mod simple_metric {
+ #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
+ #[repr(i32)]
+ pub enum Type {
+ Counter = 0,
+ Gauge = 1,
+ }
+ impl Type {
+ /// 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 {
+ Type::Counter => "COUNTER",
+ Type::Gauge => "GAUGE",
+ }
+ }
+ /// Creates an enum from field names used in the ProtoBuf definition.
+ pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+ match value {
+ "COUNTER" => Some(Self::Counter),
+ "GAUGE" => Some(Self::Gauge),
+ _ => None,
+ }
+ }
+ }
+}
+// \[#protodoc-title: Clusters\]
+
+/// Admin endpoint uses this wrapper for `/clusters` to display cluster status information.
+/// See :ref:`/clusters <operations_admin_interface_clusters>` for more information.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Clusters {
+ /// Mapping from cluster name to each cluster's status.
+ #[prost(message, repeated, tag="1")]
+ pub cluster_statuses: ::prost::alloc::vec::Vec<ClusterStatus>,
+}
+/// Details an individual cluster's current status.
+/// \[#next-free-field: 6\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ClusterStatus {
+ /// Name of the cluster.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// Denotes whether this cluster was added via API or configured statically.
+ #[prost(bool, tag="2")]
+ pub added_via_api: bool,
+ /// The success rate threshold used in the last interval.
+ /// If
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *false*, all errors: externally and locally generated were used to calculate the threshold.
+ /// If
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *true*, only externally generated errors were used to calculate the threshold.
+ /// The threshold is used to eject hosts based on their success rate. See
+ /// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
+ ///
+ /// Note: this field may be omitted in any of the three following cases:
+ ///
+ /// 1. There were not enough hosts with enough request volume to proceed with success rate based
+ /// outlier ejection.
+ /// 2. The threshold is computed to be < 0 because a negative value implies that there was no
+ /// threshold for that interval.
+ /// 3. Outlier detection is not enabled for this cluster.
+ #[prost(message, optional, tag="3")]
+ pub success_rate_ejection_threshold: ::core::option::Option<super::super::r#type::Percent>,
+ /// Mapping from host address to the host's current status.
+ #[prost(message, repeated, tag="4")]
+ pub host_statuses: ::prost::alloc::vec::Vec<HostStatus>,
+ /// The success rate threshold used in the last interval when only locally originated failures were
+ /// taken into account and externally originated errors were treated as success.
+ /// This field should be interpreted only when
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *true*. The threshold is used to eject hosts based on their success rate.
+ /// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
+ /// details.
+ ///
+ /// Note: this field may be omitted in any of the three following cases:
+ ///
+ /// 1. There were not enough hosts with enough request volume to proceed with success rate based
+ /// outlier ejection.
+ /// 2. The threshold is computed to be < 0 because a negative value implies that there was no
+ /// threshold for that interval.
+ /// 3. Outlier detection is not enabled for this cluster.
+ #[prost(message, optional, tag="5")]
+ pub local_origin_success_rate_ejection_threshold: ::core::option::Option<super::super::r#type::Percent>,
+}
+/// Current state of a particular host.
+/// \[#next-free-field: 10\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct HostStatus {
+ /// Address of this host.
+ #[prost(message, optional, tag="1")]
+ pub address: ::core::option::Option<super::super::api::v2::core::Address>,
+ /// List of stats specific to this host.
+ #[prost(message, repeated, tag="2")]
+ pub stats: ::prost::alloc::vec::Vec<SimpleMetric>,
+ /// The host's current health status.
+ #[prost(message, optional, tag="3")]
+ pub health_status: ::core::option::Option<HostHealthStatus>,
+ /// Request success rate for this host over the last calculated interval.
+ /// If
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *false*, all errors: externally and locally generated were used in success rate
+ /// calculation. If
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *true*, only externally generated errors were used in success rate calculation.
+ /// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
+ /// details.
+ ///
+ /// Note: the message will not be present if host did not have enough request volume to calculate
+ /// success rate or the cluster did not have enough hosts to run through success rate outlier
+ /// ejection.
+ #[prost(message, optional, tag="4")]
+ pub success_rate: ::core::option::Option<super::super::r#type::Percent>,
+ /// The host's weight. If not configured, the value defaults to 1.
+ #[prost(uint32, tag="5")]
+ pub weight: u32,
+ /// The hostname of the host, if applicable.
+ #[prost(string, tag="6")]
+ pub hostname: ::prost::alloc::string::String,
+ /// The host's priority. If not configured, the value defaults to 0 (highest priority).
+ #[prost(uint32, tag="7")]
+ pub priority: u32,
+ /// Request success rate for this host over the last calculated
+ /// interval when only locally originated errors are taken into account and externally originated
+ /// errors were treated as success.
+ /// This field should be interpreted only when
+ /// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
+ /// is *true*.
+ /// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
+ /// details.
+ ///
+ /// Note: the message will not be present if host did not have enough request volume to calculate
+ /// success rate or the cluster did not have enough hosts to run through success rate outlier
+ /// ejection.
+ #[prost(message, optional, tag="8")]
+ pub local_origin_success_rate: ::core::option::Option<super::super::r#type::Percent>,
+ /// locality of the host.
+ #[prost(message, optional, tag="9")]
+ pub locality: ::core::option::Option<super::super::api::v2::core::Locality>,
+}
+/// Health status for a host.
+/// \[#next-free-field: 7\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, Copy, PartialEq, ::prost::Message)]
+pub struct HostHealthStatus {
+ /// The host is currently failing active health checks.
+ #[prost(bool, tag="1")]
+ pub failed_active_health_check: bool,
+ /// The host is currently considered an outlier and has been ejected.
+ #[prost(bool, tag="2")]
+ pub failed_outlier_check: bool,
+ /// The host is currently being marked as degraded through active health checking.
+ #[prost(bool, tag="4")]
+ pub failed_active_degraded_check: bool,
+ /// The host has been removed from service discovery, but is being stabilized due to active
+ /// health checking.
+ #[prost(bool, tag="5")]
+ pub pending_dynamic_removal: bool,
+ /// The host has not yet been health checked.
+ #[prost(bool, tag="6")]
+ pub pending_active_hc: bool,
+ /// Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
+ /// here.
+ /// \[#comment:TODO(mrice32): pipe through remaining EDS health status possibilities.\]
+ #[prost(enumeration="super::super::api::v2::core::HealthStatus", tag="3")]
+ pub eds_health_status: i32,
+}
+// \[#protodoc-title: ConfigDump\]
+
+/// The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
+/// message to maintain and serve arbitrary configuration information from any component in Envoy.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ConfigDump {
+ /// This list is serialized and dumped in its entirety at the
+ /// :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
+ ///
+ /// The following configurations are currently supported and will be dumped in the order given
+ /// below:
+ ///
+ /// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v2alpha.BootstrapConfigDump>`
+ /// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`
+ /// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`
+ /// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`
+ ///
+ /// You can filter output with the resource and mask query parameters.
+ /// See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
+ /// :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
+ /// or :ref:`/config_dump?resource={},mask={}
+ /// <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
+ #[prost(message, repeated, tag="1")]
+ pub configs: ::prost::alloc::vec::Vec<super::super::super::google::protobuf::Any>,
+}
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct UpdateFailureState {
+ /// What the component configuration would have been if the update had succeeded.
+ #[prost(message, optional, tag="1")]
+ pub failed_configuration: ::core::option::Option<super::super::super::google::protobuf::Any>,
+ /// Time of the latest failed update attempt.
+ #[prost(message, optional, tag="2")]
+ pub last_update_attempt: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
+ /// Details about the last failed update attempt.
+ #[prost(string, tag="3")]
+ pub details: ::prost::alloc::string::String,
+}
+/// This message describes the bootstrap configuration that Envoy was started with. This includes
+/// any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
+/// the static portions of an Envoy configuration by reusing the output as the bootstrap
+/// configuration for another Envoy.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct BootstrapConfigDump {
+ #[prost(message, optional, tag="1")]
+ pub bootstrap: ::core::option::Option<super::super::config::bootstrap::v2::Bootstrap>,
+ /// The timestamp when the BootstrapConfig was last updated.
+ #[prost(message, optional, tag="2")]
+ pub last_updated: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
+}
+/// Envoy's listener manager fills this message with all currently known listeners. Listener
+/// configuration information can be used to recreate an Envoy configuration by populating all
+/// listeners as static listeners or by returning them in a LDS response.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ListenersConfigDump {
+ /// This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
+ /// last processed LDS discovery response. If there are only static bootstrap listeners, this field
+ /// will be "".
+ #[prost(string, tag="1")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The statically loaded listener configs.
+ #[prost(message, repeated, tag="2")]
+ pub static_listeners: ::prost::alloc::vec::Vec<listeners_config_dump::StaticListener>,
+ /// State for any warming, active, or draining listeners.
+ #[prost(message, repeated, tag="3")]
+ pub dynamic_listeners: ::prost::alloc::vec::Vec<listeners_config_dump::DynamicListener>,
+}
+/// Nested message and enum types in `ListenersConfigDump`.
+pub mod listeners_config_dump {
+ /// Describes a statically loaded listener.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct StaticListener {
+ /// The listener config.
+ #[prost(message, optional, tag="1")]
+ pub listener: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Listener was last successfully updated.
+ #[prost(message, optional, tag="2")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicListenerState {
+ /// This is the per-resource version information. This version is currently taken from the
+ /// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
+ /// that the listener was loaded. In the future, discrete per-listener versions may be supported
+ /// by the API.
+ #[prost(string, tag="1")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The listener config.
+ #[prost(message, optional, tag="2")]
+ pub listener: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Listener was last successfully updated.
+ #[prost(message, optional, tag="3")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+ /// Describes a dynamically loaded listener via the LDS API.
+ /// \[#next-free-field: 6\]
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicListener {
+ /// The name or unique id of this listener, pulled from the DynamicListenerState config.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// The listener state for any active listener by this name.
+ /// These are listeners that are available to service data plane traffic.
+ #[prost(message, optional, tag="2")]
+ pub active_state: ::core::option::Option<DynamicListenerState>,
+ /// The listener state for any warming listener by this name.
+ /// These are listeners that are currently undergoing warming in preparation to service data
+ /// plane traffic. Note that if attempting to recreate an Envoy configuration from a
+ /// configuration dump, the warming listeners should generally be discarded.
+ #[prost(message, optional, tag="3")]
+ pub warming_state: ::core::option::Option<DynamicListenerState>,
+ /// The listener state for any draining listener by this name.
+ /// These are listeners that are currently undergoing draining in preparation to stop servicing
+ /// data plane traffic. Note that if attempting to recreate an Envoy configuration from a
+ /// configuration dump, the draining listeners should generally be discarded.
+ #[prost(message, optional, tag="4")]
+ pub draining_state: ::core::option::Option<DynamicListenerState>,
+ /// Set if the last update failed, cleared after the next successful update.
+ #[prost(message, optional, tag="5")]
+ pub error_state: ::core::option::Option<super::UpdateFailureState>,
+ }
+}
+/// Envoy's cluster manager fills this message with all currently known clusters. Cluster
+/// configuration information can be used to recreate an Envoy configuration by populating all
+/// clusters as static clusters or by returning them in a CDS response.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ClustersConfigDump {
+ /// This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
+ /// last processed CDS discovery response. If there are only static bootstrap clusters, this field
+ /// will be "".
+ #[prost(string, tag="1")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The statically loaded cluster configs.
+ #[prost(message, repeated, tag="2")]
+ pub static_clusters: ::prost::alloc::vec::Vec<clusters_config_dump::StaticCluster>,
+ /// The dynamically loaded active clusters. These are clusters that are available to service
+ /// data plane traffic.
+ #[prost(message, repeated, tag="3")]
+ pub dynamic_active_clusters: ::prost::alloc::vec::Vec<clusters_config_dump::DynamicCluster>,
+ /// The dynamically loaded warming clusters. These are clusters that are currently undergoing
+ /// warming in preparation to service data plane traffic. Note that if attempting to recreate an
+ /// Envoy configuration from a configuration dump, the warming clusters should generally be
+ /// discarded.
+ #[prost(message, repeated, tag="4")]
+ pub dynamic_warming_clusters: ::prost::alloc::vec::Vec<clusters_config_dump::DynamicCluster>,
+}
+/// Nested message and enum types in `ClustersConfigDump`.
+pub mod clusters_config_dump {
+ /// Describes a statically loaded cluster.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct StaticCluster {
+ /// The cluster config.
+ #[prost(message, optional, tag="1")]
+ pub cluster: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Cluster was last updated.
+ #[prost(message, optional, tag="2")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+ /// Describes a dynamically loaded cluster via the CDS API.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicCluster {
+ /// This is the per-resource version information. This version is currently taken from the
+ /// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
+ /// that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
+ /// the API.
+ #[prost(string, tag="1")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The cluster config.
+ #[prost(message, optional, tag="2")]
+ pub cluster: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Cluster was last updated.
+ #[prost(message, optional, tag="3")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+}
+/// Envoy's RDS implementation fills this message with all currently loaded routes, as described by
+/// their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration
+/// or defined inline while configuring listeners are separated from those configured dynamically via RDS.
+/// Route configuration information can be used to recreate an Envoy configuration by populating all routes
+/// as static routes or by returning them in RDS responses.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct RoutesConfigDump {
+ /// The statically loaded route configs.
+ #[prost(message, repeated, tag="2")]
+ pub static_route_configs: ::prost::alloc::vec::Vec<routes_config_dump::StaticRouteConfig>,
+ /// The dynamically loaded route configs.
+ #[prost(message, repeated, tag="3")]
+ pub dynamic_route_configs: ::prost::alloc::vec::Vec<routes_config_dump::DynamicRouteConfig>,
+}
+/// Nested message and enum types in `RoutesConfigDump`.
+pub mod routes_config_dump {
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct StaticRouteConfig {
+ /// The route config.
+ #[prost(message, optional, tag="1")]
+ pub route_config: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Route was last updated.
+ #[prost(message, optional, tag="2")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicRouteConfig {
+ /// This is the per-resource version information. This version is currently taken from the
+ /// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
+ /// the route configuration was loaded.
+ #[prost(string, tag="1")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The route config.
+ #[prost(message, optional, tag="2")]
+ pub route_config: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the Route was last updated.
+ #[prost(message, optional, tag="3")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+}
+/// Envoy's scoped RDS implementation fills this message with all currently loaded route
+/// configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both
+/// the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the
+/// dynamically obtained scopes via the SRDS API.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ScopedRoutesConfigDump {
+ /// The statically loaded scoped route configs.
+ #[prost(message, repeated, tag="1")]
+ pub inline_scoped_route_configs: ::prost::alloc::vec::Vec<scoped_routes_config_dump::InlineScopedRouteConfigs>,
+ /// The dynamically loaded scoped route configs.
+ #[prost(message, repeated, tag="2")]
+ pub dynamic_scoped_route_configs: ::prost::alloc::vec::Vec<scoped_routes_config_dump::DynamicScopedRouteConfigs>,
+}
+/// Nested message and enum types in `ScopedRoutesConfigDump`.
+pub mod scoped_routes_config_dump {
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct InlineScopedRouteConfigs {
+ /// The name assigned to the scoped route configurations.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// The scoped route configurations.
+ #[prost(message, repeated, tag="2")]
+ pub scoped_route_configs: ::prost::alloc::vec::Vec<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the scoped route config set was last updated.
+ #[prost(message, optional, tag="3")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicScopedRouteConfigs {
+ /// The name assigned to the scoped route configurations.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// This is the per-resource version information. This version is currently taken from the
+ /// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
+ /// the scoped routes configuration was loaded.
+ #[prost(string, tag="2")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The scoped route configurations.
+ #[prost(message, repeated, tag="3")]
+ pub scoped_route_configs: ::prost::alloc::vec::Vec<super::super::super::super::google::protobuf::Any>,
+ /// The timestamp when the scoped route config set was last updated.
+ #[prost(message, optional, tag="4")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ }
+}
+/// Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct SecretsConfigDump {
+ /// The statically loaded secrets.
+ #[prost(message, repeated, tag="1")]
+ pub static_secrets: ::prost::alloc::vec::Vec<secrets_config_dump::StaticSecret>,
+ /// The dynamically loaded active secrets. These are secrets that are available to service
+ /// clusters or listeners.
+ #[prost(message, repeated, tag="2")]
+ pub dynamic_active_secrets: ::prost::alloc::vec::Vec<secrets_config_dump::DynamicSecret>,
+ /// The dynamically loaded warming secrets. These are secrets that are currently undergoing
+ /// warming in preparation to service clusters or listeners.
+ #[prost(message, repeated, tag="3")]
+ pub dynamic_warming_secrets: ::prost::alloc::vec::Vec<secrets_config_dump::DynamicSecret>,
+}
+/// Nested message and enum types in `SecretsConfigDump`.
+pub mod secrets_config_dump {
+ /// DynamicSecret contains secret information fetched via SDS.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicSecret {
+ /// The name assigned to the secret.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// This is the per-resource version information.
+ #[prost(string, tag="2")]
+ pub version_info: ::prost::alloc::string::String,
+ /// The timestamp when the secret was last updated.
+ #[prost(message, optional, tag="3")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ /// The actual secret information.
+ /// Security sensitive information is redacted (replaced with "\[redacted\]") for
+ /// private keys and passwords in TLS certificates.
+ #[prost(message, optional, tag="4")]
+ pub secret: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ }
+ /// StaticSecret specifies statically loaded secret in bootstrap.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct StaticSecret {
+ /// The name assigned to the secret.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// The timestamp when the secret was last updated.
+ #[prost(message, optional, tag="2")]
+ pub last_updated: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
+ /// The actual secret information.
+ /// Security sensitive information is redacted (replaced with "\[redacted\]") for
+ /// private keys and passwords in TLS certificates.
+ #[prost(message, optional, tag="3")]
+ pub secret: ::core::option::Option<super::super::super::super::google::protobuf::Any>,
+ }
+}
+// \[#protodoc-title: Listeners\]
+
+/// Admin endpoint uses this wrapper for `/listeners` to display listener status information.
+/// See :ref:`/listeners <operations_admin_interface_listeners>` for more information.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Listeners {
+ /// List of listener statuses.
+ #[prost(message, repeated, tag="1")]
+ pub listener_statuses: ::prost::alloc::vec::Vec<ListenerStatus>,
+}
+/// Details an individual listener's current status.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ListenerStatus {
+ /// Name of the listener
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// The actual local address that the listener is listening on. If a listener was configured
+ /// to listen on port 0, then this address has the port that was allocated by the OS.
+ #[prost(message, optional, tag="2")]
+ pub local_address: ::core::option::Option<super::super::api::v2::core::Address>,
+}
+// \[#protodoc-title: Memory\]
+
+/// Proto representation of the internal memory consumption of an Envoy instance. These represent
+/// values extracted from an internal TCMalloc instance. For more information, see the section of the
+/// docs entitled ["Generic Tcmalloc Status"](<https://gperftools.github.io/gperftools/tcmalloc.html>).
+/// \[#next-free-field: 7\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, Copy, PartialEq, ::prost::Message)]
+pub struct Memory {
+ /// The number of bytes allocated by the heap for Envoy. This is an alias for
+ /// `generic.current_allocated_bytes`.
+ #[prost(uint64, tag="1")]
+ pub allocated: u64,
+ /// The number of bytes reserved by the heap but not necessarily allocated. This is an alias for
+ /// `generic.heap_size`.
+ #[prost(uint64, tag="2")]
+ pub heap_size: u64,
+ /// The number of bytes in free, unmapped pages in the page heap. These bytes always count towards
+ /// virtual memory usage, and depending on the OS, typically do not count towards physical memory
+ /// usage. This is an alias for `tcmalloc.pageheap_unmapped_bytes`.
+ #[prost(uint64, tag="3")]
+ pub pageheap_unmapped: u64,
+ /// The number of bytes in free, mapped pages in the page heap. These bytes always count towards
+ /// virtual memory usage, and unless the underlying memory is swapped out by the OS, they also
+ /// count towards physical memory usage. This is an alias for `tcmalloc.pageheap_free_bytes`.
+ #[prost(uint64, tag="4")]
+ pub pageheap_free: u64,
+ /// The amount of memory used by the TCMalloc thread caches (for small objects). This is an alias
+ /// for `tcmalloc.current_total_thread_cache_bytes`.
+ #[prost(uint64, tag="5")]
+ pub total_thread_cache: u64,
+ /// The number of bytes of the physical memory usage by the allocator. This is an alias for
+ /// `generic.total_physical_bytes`.
+ #[prost(uint64, tag="6")]
+ pub total_physical_bytes: u64,
+}
+// \[#protodoc-title: MutexStats\]
+
+/// Proto representation of the statistics collected upon absl::Mutex contention, if Envoy is run
+/// under :option:`--enable-mutex-tracing`. For more information, see the `absl::Mutex`
+/// [docs](<https://abseil.io/about/design/mutex#extra-features>).
+///
+/// *NB*: The wait cycles below are measured by `absl::base_internal::CycleClock`, and may not
+/// correspond to core clock frequency. For more information, see the `CycleClock`
+/// [docs](<https://github.com/abseil/abseil-cpp/blob/master/absl/base/internal/cycleclock.h>).
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, Copy, PartialEq, ::prost::Message)]
+pub struct MutexStats {
+ /// The number of individual mutex contentions which have occurred since startup.
+ #[prost(uint64, tag="1")]
+ pub num_contentions: u64,
+ /// The length of the current contention wait cycle.
+ #[prost(uint64, tag="2")]
+ pub current_wait_cycles: u64,
+ /// The lifetime total of all contention wait cycles.
+ #[prost(uint64, tag="3")]
+ pub lifetime_wait_cycles: u64,
+}
+// \[#protodoc-title: Server State\]
+
+/// Proto representation of the value returned by /server_info, containing
+/// server version/server status information.
+/// \[#next-free-field: 7\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ServerInfo {
+ /// Server version.
+ #[prost(string, tag="1")]
+ pub version: ::prost::alloc::string::String,
+ /// State of the server.
+ #[prost(enumeration="server_info::State", tag="2")]
+ pub state: i32,
+ /// Uptime since current epoch was started.
+ #[prost(message, optional, tag="3")]
+ pub uptime_current_epoch: ::core::option::Option<super::super::super::google::protobuf::Duration>,
+ /// Uptime since the start of the first epoch.
+ #[prost(message, optional, tag="4")]
+ pub uptime_all_epochs: ::core::option::Option<super::super::super::google::protobuf::Duration>,
+ /// Hot restart version.
+ #[prost(string, tag="5")]
+ pub hot_restart_version: ::prost::alloc::string::String,
+ /// Command line options the server is currently running with.
+ #[prost(message, optional, tag="6")]
+ pub command_line_options: ::core::option::Option<CommandLineOptions>,
+}
+/// Nested message and enum types in `ServerInfo`.
+pub mod server_info {
+ #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
+ #[repr(i32)]
+ pub enum State {
+ /// Server is live and serving traffic.
+ Live = 0,
+ /// Server is draining listeners in response to external health checks failing.
+ Draining = 1,
+ /// Server has not yet completed cluster manager initialization.
+ PreInitializing = 2,
+ /// Server is running the cluster manager initialization callbacks (e.g., RDS).
+ Initializing = 3,
+ }
+ impl State {
+ /// 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 {
+ State::Live => "LIVE",
+ State::Draining => "DRAINING",
+ State::PreInitializing => "PRE_INITIALIZING",
+ State::Initializing => "INITIALIZING",
+ }
+ }
+ /// Creates an enum from field names used in the ProtoBuf definition.
+ pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+ match value {
+ "LIVE" => Some(Self::Live),
+ "DRAINING" => Some(Self::Draining),
+ "PRE_INITIALIZING" => Some(Self::PreInitializing),
+ "INITIALIZING" => Some(Self::Initializing),
+ _ => None,
+ }
+ }
+ }
+}
+/// \[#next-free-field: 29\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct CommandLineOptions {
+ /// See :option:`--base-id` for details.
+ #[prost(uint64, tag="1")]
+ pub base_id: u64,
+ /// See :option:`--concurrency` for details.
+ #[prost(uint32, tag="2")]
+ pub concurrency: u32,
+ /// See :option:`--config-path` for details.
+ #[prost(string, tag="3")]
+ pub config_path: ::prost::alloc::string::String,
+ /// See :option:`--config-yaml` for details.
+ #[prost(string, tag="4")]
+ pub config_yaml: ::prost::alloc::string::String,
+ /// See :option:`--allow-unknown-static-fields` for details.
+ #[prost(bool, tag="5")]
+ pub allow_unknown_static_fields: bool,
+ /// See :option:`--reject-unknown-dynamic-fields` for details.
+ #[prost(bool, tag="26")]
+ pub reject_unknown_dynamic_fields: bool,
+ /// See :option:`--admin-address-path` for details.
+ #[prost(string, tag="6")]
+ pub admin_address_path: ::prost::alloc::string::String,
+ /// See :option:`--local-address-ip-version` for details.
+ #[prost(enumeration="command_line_options::IpVersion", tag="7")]
+ pub local_address_ip_version: i32,
+ /// See :option:`--log-level` for details.
+ #[prost(string, tag="8")]
+ pub log_level: ::prost::alloc::string::String,
+ /// See :option:`--component-log-level` for details.
+ #[prost(string, tag="9")]
+ pub component_log_level: ::prost::alloc::string::String,
+ /// See :option:`--log-format` for details.
+ #[prost(string, tag="10")]
+ pub log_format: ::prost::alloc::string::String,
+ /// See :option:`--log-format-escaped` for details.
+ #[prost(bool, tag="27")]
+ pub log_format_escaped: bool,
+ /// See :option:`--log-path` for details.
+ #[prost(string, tag="11")]
+ pub log_path: ::prost::alloc::string::String,
+ /// See :option:`--service-cluster` for details.
+ #[prost(string, tag="13")]
+ pub service_cluster: ::prost::alloc::string::String,
+ /// See :option:`--service-node` for details.
+ #[prost(string, tag="14")]
+ pub service_node: ::prost::alloc::string::String,
+ /// See :option:`--service-zone` for details.
+ #[prost(string, tag="15")]
+ pub service_zone: ::prost::alloc::string::String,
+ /// See :option:`--file-flush-interval-msec` for details.
+ #[prost(message, optional, tag="16")]
+ pub file_flush_interval: ::core::option::Option<super::super::super::google::protobuf::Duration>,
+ /// See :option:`--drain-time-s` for details.
+ #[prost(message, optional, tag="17")]
+ pub drain_time: ::core::option::Option<super::super::super::google::protobuf::Duration>,
+ /// See :option:`--parent-shutdown-time-s` for details.
+ #[prost(message, optional, tag="18")]
+ pub parent_shutdown_time: ::core::option::Option<super::super::super::google::protobuf::Duration>,
+ /// See :option:`--mode` for details.
+ #[prost(enumeration="command_line_options::Mode", tag="19")]
+ pub mode: i32,
+ /// max_stats and max_obj_name_len are now unused and have no effect.
+ #[deprecated]
+ #[prost(uint64, tag="20")]
+ pub max_stats: u64,
+ #[deprecated]
+ #[prost(uint64, tag="21")]
+ pub max_obj_name_len: u64,
+ /// See :option:`--disable-hot-restart` for details.
+ #[prost(bool, tag="22")]
+ pub disable_hot_restart: bool,
+ /// See :option:`--enable-mutex-tracing` for details.
+ #[prost(bool, tag="23")]
+ pub enable_mutex_tracing: bool,
+ /// See :option:`--restart-epoch` for details.
+ #[prost(uint32, tag="24")]
+ pub restart_epoch: u32,
+ /// See :option:`--cpuset-threads` for details.
+ #[prost(bool, tag="25")]
+ pub cpuset_threads: bool,
+ /// See :option:`--disable-extensions` for details.
+ #[prost(string, repeated, tag="28")]
+ pub disabled_extensions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
+}
+/// Nested message and enum types in `CommandLineOptions`.
+pub mod command_line_options {
+ #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
+ #[repr(i32)]
+ pub enum IpVersion {
+ V4 = 0,
+ V6 = 1,
+ }
+ impl IpVersion {
+ /// 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 {
+ IpVersion::V4 => "v4",
+ IpVersion::V6 => "v6",
+ }
+ }
+ /// Creates an enum from field names used in the ProtoBuf definition.
+ pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+ match value {
+ "v4" => Some(Self::V4),
+ "v6" => Some(Self::V6),
+ _ => None,
+ }
+ }
+ }
+ #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
+ #[repr(i32)]
+ pub enum Mode {
+ /// Validate configs and then serve traffic normally.
+ Serve = 0,
+ /// Validate configs and exit.
+ Validate = 1,
+ /// Completely load and initialize the config, and then exit without running the listener loop.
+ InitOnly = 2,
+ }
+ impl Mode {
+ /// 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 {
+ Mode::Serve => "Serve",
+ Mode::Validate => "Validate",
+ Mode::InitOnly => "InitOnly",
+ }
+ }
+ /// Creates an enum from field names used in the ProtoBuf definition.
+ pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+ match value {
+ "Serve" => Some(Self::Serve),
+ "Validate" => Some(Self::Validate),
+ "InitOnly" => Some(Self::InitOnly),
+ _ => None,
+ }
+ }
+ }
+}
+// \[#protodoc-title: Tap\]
+
+/// The /tap admin request body that is used to configure an active tap session.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct TapRequest {
+ /// The opaque configuration ID used to match the configuration to a loaded extension.
+ /// A tap extension configures a similar opaque ID that is used to match.
+ #[prost(string, tag="1")]
+ pub config_id: ::prost::alloc::string::String,
+ /// The tap configuration to load.
+ #[prost(message, optional, tag="2")]
+ pub tap_config: ::core::option::Option<super::super::service::tap::v2alpha::TapConfig>,
+}
+// @@protoc_insertion_point(module)