quilkin_proto/generated/envoy/config/core/
v3.rs

1#[allow(clippy::derive_partial_eq_without_eq)]
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Locality {
4    #[prost(string, tag = "1")]
5    pub region: ::prost::alloc::string::String,
6    #[prost(string, tag = "2")]
7    pub zone: ::prost::alloc::string::String,
8    #[prost(string, tag = "3")]
9    pub sub_zone: ::prost::alloc::string::String,
10}
11#[allow(clippy::derive_partial_eq_without_eq)]
12#[derive(Clone, PartialEq, ::prost::Message)]
13pub struct Node {
14    #[prost(string, tag = "1")]
15    pub id: ::prost::alloc::string::String,
16    #[prost(string, tag = "2")]
17    pub cluster: ::prost::alloc::string::String,
18    #[prost(message, optional, tag = "3")]
19    pub metadata: ::core::option::Option<::prost_types::Struct>,
20    #[prost(message, optional, tag = "4")]
21    pub locality: ::core::option::Option<Locality>,
22    #[prost(string, tag = "6")]
23    pub user_agent_name: ::prost::alloc::string::String,
24}
25#[allow(clippy::derive_partial_eq_without_eq)]
26#[derive(Clone, PartialEq, ::prost::Message)]
27pub struct Metadata {
28    #[prost(map = "string, message", tag = "1")]
29    pub filter_metadata:
30        ::std::collections::HashMap<::prost::alloc::string::String, ::prost_types::Struct>,
31    #[prost(map = "string, message", tag = "2")]
32    pub typed_filter_metadata:
33        ::std::collections::HashMap<::prost::alloc::string::String, ::prost_types::Any>,
34}
35#[allow(clippy::derive_partial_eq_without_eq)]
36#[derive(Clone, PartialEq, ::prost::Message)]
37pub struct RuntimeUInt32 {
38    #[prost(uint32, tag = "2")]
39    pub default_value: u32,
40    #[prost(string, tag = "3")]
41    pub runtime_key: ::prost::alloc::string::String,
42}
43#[allow(clippy::derive_partial_eq_without_eq)]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct RuntimePercent {
46    #[prost(message, optional, tag = "1")]
47    pub default_value: ::core::option::Option<super::super::super::kind::v3::Percent>,
48    #[prost(string, tag = "2")]
49    pub runtime_key: ::prost::alloc::string::String,
50}
51#[allow(clippy::derive_partial_eq_without_eq)]
52#[derive(Clone, PartialEq, ::prost::Message)]
53pub struct RuntimeDouble {
54    #[prost(double, tag = "1")]
55    pub default_value: f64,
56    #[prost(string, tag = "2")]
57    pub runtime_key: ::prost::alloc::string::String,
58}
59#[allow(clippy::derive_partial_eq_without_eq)]
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct RuntimeFeatureFlag {
62    #[prost(message, optional, tag = "1")]
63    pub default_value: ::core::option::Option<bool>,
64    #[prost(string, tag = "2")]
65    pub runtime_key: ::prost::alloc::string::String,
66}
67#[allow(clippy::derive_partial_eq_without_eq)]
68#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct QueryParameter {
70    #[prost(string, tag = "1")]
71    pub key: ::prost::alloc::string::String,
72    #[prost(string, tag = "2")]
73    pub value: ::prost::alloc::string::String,
74}
75#[allow(clippy::derive_partial_eq_without_eq)]
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct HeaderValue {
78    #[prost(string, tag = "1")]
79    pub key: ::prost::alloc::string::String,
80    #[prost(string, tag = "2")]
81    pub value: ::prost::alloc::string::String,
82}
83#[allow(clippy::derive_partial_eq_without_eq)]
84#[derive(Clone, PartialEq, ::prost::Message)]
85pub struct HeaderValueOption {
86    #[prost(message, optional, tag = "1")]
87    pub header: ::core::option::Option<HeaderValue>,
88    #[prost(message, optional, tag = "2")]
89    pub append: ::core::option::Option<bool>,
90    #[prost(enumeration = "header_value_option::HeaderAppendAction", tag = "3")]
91    pub append_action: i32,
92}
93/// Nested message and enum types in `HeaderValueOption`.
94pub mod header_value_option {
95    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
96    #[repr(i32)]
97    pub enum HeaderAppendAction {
98        AppendIfExistsOrAdd = 0,
99        AddIfAbsent = 1,
100        OverwriteIfExistsOrAdd = 2,
101    }
102    impl HeaderAppendAction {
103        /// String value of the enum field names used in the ProtoBuf definition.
104        ///
105        /// The values are not transformed in any way and thus are considered stable
106        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
107        pub fn as_str_name(&self) -> &'static str {
108            match self {
109                HeaderAppendAction::AppendIfExistsOrAdd => "APPEND_IF_EXISTS_OR_ADD",
110                HeaderAppendAction::AddIfAbsent => "ADD_IF_ABSENT",
111                HeaderAppendAction::OverwriteIfExistsOrAdd => "OVERWRITE_IF_EXISTS_OR_ADD",
112            }
113        }
114        /// Creates an enum from field names used in the ProtoBuf definition.
115        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
116            match value {
117                "APPEND_IF_EXISTS_OR_ADD" => Some(Self::AppendIfExistsOrAdd),
118                "ADD_IF_ABSENT" => Some(Self::AddIfAbsent),
119                "OVERWRITE_IF_EXISTS_OR_ADD" => Some(Self::OverwriteIfExistsOrAdd),
120                _ => None,
121            }
122        }
123    }
124}
125#[allow(clippy::derive_partial_eq_without_eq)]
126#[derive(Clone, PartialEq, ::prost::Message)]
127pub struct HeaderMap {
128    #[prost(message, repeated, tag = "1")]
129    pub headers: ::prost::alloc::vec::Vec<HeaderValue>,
130}
131#[allow(clippy::derive_partial_eq_without_eq)]
132#[derive(Clone, PartialEq, ::prost::Message)]
133pub struct WatchedDirectory {
134    #[prost(string, tag = "1")]
135    pub path: ::prost::alloc::string::String,
136}
137#[allow(clippy::derive_partial_eq_without_eq)]
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct DataSource {
140    #[prost(oneof = "data_source::Specifier", tags = "1, 2, 3, 4")]
141    pub specifier: ::core::option::Option<data_source::Specifier>,
142}
143/// Nested message and enum types in `DataSource`.
144pub mod data_source {
145    #[allow(clippy::derive_partial_eq_without_eq)]
146    #[derive(Clone, PartialEq, ::prost::Oneof)]
147    pub enum Specifier {
148        #[prost(string, tag = "1")]
149        Filename(::prost::alloc::string::String),
150        #[prost(bytes, tag = "2")]
151        InlineBytes(::prost::alloc::vec::Vec<u8>),
152        #[prost(string, tag = "3")]
153        InlineString(::prost::alloc::string::String),
154        #[prost(string, tag = "4")]
155        EnvironmentVariable(::prost::alloc::string::String),
156    }
157}
158#[allow(clippy::derive_partial_eq_without_eq)]
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct TransportSocket {
161    #[prost(string, tag = "1")]
162    pub name: ::prost::alloc::string::String,
163    #[prost(oneof = "transport_socket::ConfigType", tags = "3")]
164    pub config_type: ::core::option::Option<transport_socket::ConfigType>,
165}
166/// Nested message and enum types in `TransportSocket`.
167pub mod transport_socket {
168    #[allow(clippy::derive_partial_eq_without_eq)]
169    #[derive(Clone, PartialEq, ::prost::Oneof)]
170    pub enum ConfigType {
171        #[prost(message, tag = "3")]
172        TypedConfig(::prost_types::Any),
173    }
174}
175#[allow(clippy::derive_partial_eq_without_eq)]
176#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct RuntimeFractionalPercent {
178    #[prost(message, optional, tag = "1")]
179    pub default_value: ::core::option::Option<super::super::super::kind::v3::FractionalPercent>,
180    #[prost(string, tag = "2")]
181    pub runtime_key: ::prost::alloc::string::String,
182}
183#[allow(clippy::derive_partial_eq_without_eq)]
184#[derive(Clone, PartialEq, ::prost::Message)]
185pub struct ControlPlane {
186    #[prost(string, tag = "1")]
187    pub identifier: ::prost::alloc::string::String,
188}
189#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
190#[repr(i32)]
191pub enum RoutingPriority {
192    Default = 0,
193    High = 1,
194}
195impl RoutingPriority {
196    /// String value of the enum field names used in the ProtoBuf definition.
197    ///
198    /// The values are not transformed in any way and thus are considered stable
199    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
200    pub fn as_str_name(&self) -> &'static str {
201        match self {
202            RoutingPriority::Default => "DEFAULT",
203            RoutingPriority::High => "HIGH",
204        }
205    }
206    /// Creates an enum from field names used in the ProtoBuf definition.
207    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
208        match value {
209            "DEFAULT" => Some(Self::Default),
210            "HIGH" => Some(Self::High),
211            _ => None,
212        }
213    }
214}
215#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
216#[repr(i32)]
217pub enum RequestMethod {
218    MethodUnspecified = 0,
219    Get = 1,
220    Head = 2,
221    Post = 3,
222    Put = 4,
223    Delete = 5,
224    Connect = 6,
225    Options = 7,
226    Trace = 8,
227    Patch = 9,
228}
229impl RequestMethod {
230    /// String value of the enum field names used in the ProtoBuf definition.
231    ///
232    /// The values are not transformed in any way and thus are considered stable
233    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
234    pub fn as_str_name(&self) -> &'static str {
235        match self {
236            RequestMethod::MethodUnspecified => "METHOD_UNSPECIFIED",
237            RequestMethod::Get => "GET",
238            RequestMethod::Head => "HEAD",
239            RequestMethod::Post => "POST",
240            RequestMethod::Put => "PUT",
241            RequestMethod::Delete => "DELETE",
242            RequestMethod::Connect => "CONNECT",
243            RequestMethod::Options => "OPTIONS",
244            RequestMethod::Trace => "TRACE",
245            RequestMethod::Patch => "PATCH",
246        }
247    }
248    /// Creates an enum from field names used in the ProtoBuf definition.
249    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
250        match value {
251            "METHOD_UNSPECIFIED" => Some(Self::MethodUnspecified),
252            "GET" => Some(Self::Get),
253            "HEAD" => Some(Self::Head),
254            "POST" => Some(Self::Post),
255            "PUT" => Some(Self::Put),
256            "DELETE" => Some(Self::Delete),
257            "CONNECT" => Some(Self::Connect),
258            "OPTIONS" => Some(Self::Options),
259            "TRACE" => Some(Self::Trace),
260            "PATCH" => Some(Self::Patch),
261            _ => None,
262        }
263    }
264}
265#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
266#[repr(i32)]
267pub enum TrafficDirection {
268    Unspecified = 0,
269    Inbound = 1,
270    Outbound = 2,
271}
272impl TrafficDirection {
273    /// String value of the enum field names used in the ProtoBuf definition.
274    ///
275    /// The values are not transformed in any way and thus are considered stable
276    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
277    pub fn as_str_name(&self) -> &'static str {
278        match self {
279            TrafficDirection::Unspecified => "UNSPECIFIED",
280            TrafficDirection::Inbound => "INBOUND",
281            TrafficDirection::Outbound => "OUTBOUND",
282        }
283    }
284    /// Creates an enum from field names used in the ProtoBuf definition.
285    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
286        match value {
287            "UNSPECIFIED" => Some(Self::Unspecified),
288            "INBOUND" => Some(Self::Inbound),
289            "OUTBOUND" => Some(Self::Outbound),
290            _ => None,
291        }
292    }
293}
294#[allow(clippy::derive_partial_eq_without_eq)]
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct TypedExtensionConfig {
297    #[prost(string, tag = "1")]
298    pub name: ::prost::alloc::string::String,
299    #[prost(message, optional, tag = "2")]
300    pub typed_config: ::core::option::Option<::prost_types::Any>,
301}
302#[allow(clippy::derive_partial_eq_without_eq)]
303#[derive(Clone, PartialEq, ::prost::Message)]
304pub struct ProxyProtocolConfig {
305    #[prost(enumeration = "proxy_protocol_config::Version", tag = "1")]
306    pub version: i32,
307}
308/// Nested message and enum types in `ProxyProtocolConfig`.
309pub mod proxy_protocol_config {
310    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
311    #[repr(i32)]
312    pub enum Version {
313        V1 = 0,
314        V2 = 1,
315    }
316    impl Version {
317        /// String value of the enum field names used in the ProtoBuf definition.
318        ///
319        /// The values are not transformed in any way and thus are considered stable
320        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
321        pub fn as_str_name(&self) -> &'static str {
322            match self {
323                Version::V1 => "V1",
324                Version::V2 => "V2",
325            }
326        }
327        /// Creates an enum from field names used in the ProtoBuf definition.
328        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
329            match value {
330                "V1" => Some(Self::V1),
331                "V2" => Some(Self::V2),
332                _ => None,
333            }
334        }
335    }
336}
337#[allow(clippy::derive_partial_eq_without_eq)]
338#[derive(Clone, PartialEq, ::prost::Message)]
339pub struct SocketOption {
340    #[prost(string, tag = "1")]
341    pub description: ::prost::alloc::string::String,
342    #[prost(int64, tag = "2")]
343    pub level: i64,
344    #[prost(int64, tag = "3")]
345    pub name: i64,
346    #[prost(enumeration = "socket_option::SocketState", tag = "6")]
347    pub state: i32,
348    #[prost(oneof = "socket_option::Value", tags = "4, 5")]
349    pub value: ::core::option::Option<socket_option::Value>,
350}
351/// Nested message and enum types in `SocketOption`.
352pub mod socket_option {
353    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
354    #[repr(i32)]
355    pub enum SocketState {
356        StatePrebind = 0,
357        StateBound = 1,
358        StateListening = 2,
359    }
360    impl SocketState {
361        /// String value of the enum field names used in the ProtoBuf definition.
362        ///
363        /// The values are not transformed in any way and thus are considered stable
364        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
365        pub fn as_str_name(&self) -> &'static str {
366            match self {
367                SocketState::StatePrebind => "STATE_PREBIND",
368                SocketState::StateBound => "STATE_BOUND",
369                SocketState::StateListening => "STATE_LISTENING",
370            }
371        }
372        /// Creates an enum from field names used in the ProtoBuf definition.
373        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
374            match value {
375                "STATE_PREBIND" => Some(Self::StatePrebind),
376                "STATE_BOUND" => Some(Self::StateBound),
377                "STATE_LISTENING" => Some(Self::StateListening),
378                _ => None,
379            }
380        }
381    }
382    #[allow(clippy::derive_partial_eq_without_eq)]
383    #[derive(Clone, PartialEq, ::prost::Oneof)]
384    pub enum Value {
385        #[prost(int64, tag = "4")]
386        IntValue(i64),
387        #[prost(bytes, tag = "5")]
388        BufValue(::prost::alloc::vec::Vec<u8>),
389    }
390}
391#[allow(clippy::derive_partial_eq_without_eq)]
392#[derive(Clone, PartialEq, ::prost::Message)]
393pub struct Pipe {
394    #[prost(string, tag = "1")]
395    pub path: ::prost::alloc::string::String,
396    #[prost(uint32, tag = "2")]
397    pub mode: u32,
398}
399#[allow(clippy::derive_partial_eq_without_eq)]
400#[derive(Clone, PartialEq, ::prost::Message)]
401pub struct EnvoyInternalAddress {
402    #[prost(oneof = "envoy_internal_address::AddressNameSpecifier", tags = "1")]
403    pub address_name_specifier:
404        ::core::option::Option<envoy_internal_address::AddressNameSpecifier>,
405}
406/// Nested message and enum types in `EnvoyInternalAddress`.
407pub mod envoy_internal_address {
408    #[allow(clippy::derive_partial_eq_without_eq)]
409    #[derive(Clone, PartialEq, ::prost::Oneof)]
410    pub enum AddressNameSpecifier {
411        #[prost(string, tag = "1")]
412        ServerListenerName(::prost::alloc::string::String),
413    }
414}
415#[allow(clippy::derive_partial_eq_without_eq)]
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct SocketAddress {
418    #[prost(enumeration = "socket_address::Protocol", tag = "1")]
419    pub protocol: i32,
420    #[prost(string, tag = "2")]
421    pub address: ::prost::alloc::string::String,
422    #[prost(string, tag = "5")]
423    pub resolver_name: ::prost::alloc::string::String,
424    #[prost(bool, tag = "6")]
425    pub ipv4_compat: bool,
426    #[prost(oneof = "socket_address::PortSpecifier", tags = "3, 4")]
427    pub port_specifier: ::core::option::Option<socket_address::PortSpecifier>,
428}
429/// Nested message and enum types in `SocketAddress`.
430pub mod socket_address {
431    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
432    #[repr(i32)]
433    pub enum Protocol {
434        Tcp = 0,
435        Udp = 1,
436    }
437    impl Protocol {
438        /// String value of the enum field names used in the ProtoBuf definition.
439        ///
440        /// The values are not transformed in any way and thus are considered stable
441        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
442        pub fn as_str_name(&self) -> &'static str {
443            match self {
444                Protocol::Tcp => "TCP",
445                Protocol::Udp => "UDP",
446            }
447        }
448        /// Creates an enum from field names used in the ProtoBuf definition.
449        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
450            match value {
451                "TCP" => Some(Self::Tcp),
452                "UDP" => Some(Self::Udp),
453                _ => None,
454            }
455        }
456    }
457    #[allow(clippy::derive_partial_eq_without_eq)]
458    #[derive(Clone, PartialEq, ::prost::Oneof)]
459    pub enum PortSpecifier {
460        #[prost(uint32, tag = "3")]
461        PortValue(u32),
462        #[prost(string, tag = "4")]
463        NamedPort(::prost::alloc::string::String),
464    }
465}
466#[allow(clippy::derive_partial_eq_without_eq)]
467#[derive(Clone, PartialEq, ::prost::Message)]
468pub struct TcpKeepalive {
469    #[prost(message, optional, tag = "1")]
470    pub keepalive_probes: ::core::option::Option<u32>,
471    #[prost(message, optional, tag = "2")]
472    pub keepalive_time: ::core::option::Option<u32>,
473    #[prost(message, optional, tag = "3")]
474    pub keepalive_interval: ::core::option::Option<u32>,
475}
476#[allow(clippy::derive_partial_eq_without_eq)]
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct BindConfig {
479    #[prost(message, optional, tag = "1")]
480    pub source_address: ::core::option::Option<SocketAddress>,
481    #[prost(message, optional, tag = "2")]
482    pub freebind: ::core::option::Option<bool>,
483    #[prost(message, repeated, tag = "3")]
484    pub socket_options: ::prost::alloc::vec::Vec<SocketOption>,
485}
486#[allow(clippy::derive_partial_eq_without_eq)]
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct Address {
489    #[prost(oneof = "address::Address", tags = "1, 2, 3")]
490    pub address: ::core::option::Option<address::Address>,
491}
492/// Nested message and enum types in `Address`.
493pub mod address {
494    #[allow(clippy::derive_partial_eq_without_eq)]
495    #[derive(Clone, PartialEq, ::prost::Oneof)]
496    pub enum Address {
497        #[prost(message, tag = "1")]
498        SocketAddress(super::SocketAddress),
499        #[prost(message, tag = "2")]
500        Pipe(super::Pipe),
501        #[prost(message, tag = "3")]
502        EnvoyInternalAddress(super::EnvoyInternalAddress),
503    }
504}
505#[allow(clippy::derive_partial_eq_without_eq)]
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct CidrRange {
508    #[prost(string, tag = "1")]
509    pub address_prefix: ::prost::alloc::string::String,
510    #[prost(message, optional, tag = "2")]
511    pub prefix_len: ::core::option::Option<u32>,
512}
513#[allow(clippy::derive_partial_eq_without_eq)]
514#[derive(Clone, PartialEq, ::prost::Message)]
515pub struct GrpcService {
516    #[prost(message, optional, tag = "3")]
517    pub timeout: ::core::option::Option<::prost_types::Duration>,
518    #[prost(message, repeated, tag = "5")]
519    pub initial_metadata: ::prost::alloc::vec::Vec<HeaderValue>,
520    #[prost(oneof = "grpc_service::TargetSpecifier", tags = "1, 2")]
521    pub target_specifier: ::core::option::Option<grpc_service::TargetSpecifier>,
522}
523/// Nested message and enum types in `GrpcService`.
524pub mod grpc_service {
525    #[allow(clippy::derive_partial_eq_without_eq)]
526    #[derive(Clone, PartialEq, ::prost::Message)]
527    pub struct EnvoyGrpc {
528        #[prost(string, tag = "1")]
529        pub cluster_name: ::prost::alloc::string::String,
530        #[prost(string, tag = "2")]
531        pub authority: ::prost::alloc::string::String,
532    }
533    #[allow(clippy::derive_partial_eq_without_eq)]
534    #[derive(Clone, PartialEq, ::prost::Message)]
535    pub struct GoogleGrpc {
536        #[prost(string, tag = "1")]
537        pub target_uri: ::prost::alloc::string::String,
538        #[prost(message, optional, tag = "2")]
539        pub channel_credentials: ::core::option::Option<google_grpc::ChannelCredentials>,
540        #[prost(message, repeated, tag = "3")]
541        pub call_credentials: ::prost::alloc::vec::Vec<google_grpc::CallCredentials>,
542        #[prost(string, tag = "4")]
543        pub stat_prefix: ::prost::alloc::string::String,
544        #[prost(string, tag = "5")]
545        pub credentials_factory_name: ::prost::alloc::string::String,
546        #[prost(message, optional, tag = "6")]
547        pub config: ::core::option::Option<::prost_types::Struct>,
548        #[prost(message, optional, tag = "7")]
549        pub per_stream_buffer_limit_bytes: ::core::option::Option<u32>,
550        #[prost(message, optional, tag = "8")]
551        pub channel_args: ::core::option::Option<google_grpc::ChannelArgs>,
552    }
553    /// Nested message and enum types in `GoogleGrpc`.
554    pub mod google_grpc {
555        #[allow(clippy::derive_partial_eq_without_eq)]
556        #[derive(Clone, PartialEq, ::prost::Message)]
557        pub struct SslCredentials {
558            #[prost(message, optional, tag = "1")]
559            pub root_certs: ::core::option::Option<super::super::DataSource>,
560            #[prost(message, optional, tag = "2")]
561            pub private_key: ::core::option::Option<super::super::DataSource>,
562            #[prost(message, optional, tag = "3")]
563            pub cert_chain: ::core::option::Option<super::super::DataSource>,
564        }
565        #[allow(clippy::derive_partial_eq_without_eq)]
566        #[derive(Clone, PartialEq, ::prost::Message)]
567        pub struct GoogleLocalCredentials {}
568        #[allow(clippy::derive_partial_eq_without_eq)]
569        #[derive(Clone, PartialEq, ::prost::Message)]
570        pub struct ChannelCredentials {
571            #[prost(oneof = "channel_credentials::CredentialSpecifier", tags = "1, 2, 3")]
572            pub credential_specifier:
573                ::core::option::Option<channel_credentials::CredentialSpecifier>,
574        }
575        /// Nested message and enum types in `ChannelCredentials`.
576        pub mod channel_credentials {
577            #[allow(clippy::derive_partial_eq_without_eq)]
578            #[derive(Clone, PartialEq, ::prost::Oneof)]
579            pub enum CredentialSpecifier {
580                #[prost(message, tag = "1")]
581                SslCredentials(super::SslCredentials),
582                #[prost(message, tag = "2")]
583                GoogleDefault(()),
584                #[prost(message, tag = "3")]
585                LocalCredentials(super::GoogleLocalCredentials),
586            }
587        }
588        #[allow(clippy::derive_partial_eq_without_eq)]
589        #[derive(Clone, PartialEq, ::prost::Message)]
590        pub struct CallCredentials {
591            #[prost(
592                oneof = "call_credentials::CredentialSpecifier",
593                tags = "1, 2, 3, 4, 5, 6, 7"
594            )]
595            pub credential_specifier: ::core::option::Option<call_credentials::CredentialSpecifier>,
596        }
597        /// Nested message and enum types in `CallCredentials`.
598        pub mod call_credentials {
599            #[allow(clippy::derive_partial_eq_without_eq)]
600            #[derive(Clone, PartialEq, ::prost::Message)]
601            pub struct ServiceAccountJwtAccessCredentials {
602                #[prost(string, tag = "1")]
603                pub json_key: ::prost::alloc::string::String,
604                #[prost(uint64, tag = "2")]
605                pub token_lifetime_seconds: u64,
606            }
607            #[allow(clippy::derive_partial_eq_without_eq)]
608            #[derive(Clone, PartialEq, ::prost::Message)]
609            pub struct GoogleIamCredentials {
610                #[prost(string, tag = "1")]
611                pub authorization_token: ::prost::alloc::string::String,
612                #[prost(string, tag = "2")]
613                pub authority_selector: ::prost::alloc::string::String,
614            }
615            #[allow(clippy::derive_partial_eq_without_eq)]
616            #[derive(Clone, PartialEq, ::prost::Message)]
617            pub struct MetadataCredentialsFromPlugin {
618                #[prost(string, tag = "1")]
619                pub name: ::prost::alloc::string::String,
620                #[prost(oneof = "metadata_credentials_from_plugin::ConfigType", tags = "3")]
621                pub config_type:
622                    ::core::option::Option<metadata_credentials_from_plugin::ConfigType>,
623            }
624            /// Nested message and enum types in `MetadataCredentialsFromPlugin`.
625            pub mod metadata_credentials_from_plugin {
626                #[allow(clippy::derive_partial_eq_without_eq)]
627                #[derive(Clone, PartialEq, ::prost::Oneof)]
628                pub enum ConfigType {
629                    #[prost(message, tag = "3")]
630                    TypedConfig(::prost_types::Any),
631                }
632            }
633            #[allow(clippy::derive_partial_eq_without_eq)]
634            #[derive(Clone, PartialEq, ::prost::Message)]
635            pub struct StsService {
636                #[prost(string, tag = "1")]
637                pub token_exchange_service_uri: ::prost::alloc::string::String,
638                #[prost(string, tag = "2")]
639                pub resource: ::prost::alloc::string::String,
640                #[prost(string, tag = "3")]
641                pub audience: ::prost::alloc::string::String,
642                #[prost(string, tag = "4")]
643                pub scope: ::prost::alloc::string::String,
644                #[prost(string, tag = "5")]
645                pub requested_token_type: ::prost::alloc::string::String,
646                #[prost(string, tag = "6")]
647                pub subject_token_path: ::prost::alloc::string::String,
648                #[prost(string, tag = "7")]
649                pub subject_token_type: ::prost::alloc::string::String,
650                #[prost(string, tag = "8")]
651                pub actor_token_path: ::prost::alloc::string::String,
652                #[prost(string, tag = "9")]
653                pub actor_token_type: ::prost::alloc::string::String,
654            }
655            #[allow(clippy::derive_partial_eq_without_eq)]
656            #[derive(Clone, PartialEq, ::prost::Oneof)]
657            pub enum CredentialSpecifier {
658                #[prost(string, tag = "1")]
659                AccessToken(::prost::alloc::string::String),
660                #[prost(message, tag = "2")]
661                GoogleComputeEngine(()),
662                #[prost(string, tag = "3")]
663                GoogleRefreshToken(::prost::alloc::string::String),
664                #[prost(message, tag = "4")]
665                ServiceAccountJwtAccess(ServiceAccountJwtAccessCredentials),
666                #[prost(message, tag = "5")]
667                GoogleIam(GoogleIamCredentials),
668                #[prost(message, tag = "6")]
669                FromPlugin(MetadataCredentialsFromPlugin),
670                #[prost(message, tag = "7")]
671                StsService(StsService),
672            }
673        }
674        #[allow(clippy::derive_partial_eq_without_eq)]
675        #[derive(Clone, PartialEq, ::prost::Message)]
676        pub struct ChannelArgs {
677            #[prost(map = "string, message", tag = "1")]
678            pub args:
679                ::std::collections::HashMap<::prost::alloc::string::String, channel_args::Value>,
680        }
681        /// Nested message and enum types in `ChannelArgs`.
682        pub mod channel_args {
683            #[allow(clippy::derive_partial_eq_without_eq)]
684            #[derive(Clone, PartialEq, ::prost::Message)]
685            pub struct Value {
686                #[prost(oneof = "value::ValueSpecifier", tags = "1, 2")]
687                pub value_specifier: ::core::option::Option<value::ValueSpecifier>,
688            }
689            /// Nested message and enum types in `Value`.
690            pub mod value {
691                #[allow(clippy::derive_partial_eq_without_eq)]
692                #[derive(Clone, PartialEq, ::prost::Oneof)]
693                pub enum ValueSpecifier {
694                    #[prost(string, tag = "1")]
695                    StringValue(::prost::alloc::string::String),
696                    #[prost(int64, tag = "2")]
697                    IntValue(i64),
698                }
699            }
700        }
701    }
702    #[allow(clippy::derive_partial_eq_without_eq)]
703    #[derive(Clone, PartialEq, ::prost::Oneof)]
704    pub enum TargetSpecifier {
705        #[prost(message, tag = "1")]
706        EnvoyGrpc(EnvoyGrpc),
707        #[prost(message, tag = "2")]
708        GoogleGrpc(GoogleGrpc),
709    }
710}
711#[allow(clippy::derive_partial_eq_without_eq)]
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct ApiConfigSource {
714    #[prost(enumeration = "api_config_source::ApiType", tag = "1")]
715    pub api_type: i32,
716    #[prost(enumeration = "ApiVersion", tag = "8")]
717    pub transport_api_version: i32,
718    #[prost(string, repeated, tag = "2")]
719    pub cluster_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
720    #[prost(message, repeated, tag = "4")]
721    pub grpc_services: ::prost::alloc::vec::Vec<GrpcService>,
722    #[prost(message, optional, tag = "3")]
723    pub refresh_delay: ::core::option::Option<::prost_types::Duration>,
724    #[prost(message, optional, tag = "5")]
725    pub request_timeout: ::core::option::Option<::prost_types::Duration>,
726    #[prost(message, optional, tag = "6")]
727    pub rate_limit_settings: ::core::option::Option<RateLimitSettings>,
728    #[prost(bool, tag = "7")]
729    pub set_node_on_first_message_only: bool,
730    #[prost(message, repeated, tag = "9")]
731    pub config_validators: ::prost::alloc::vec::Vec<TypedExtensionConfig>,
732}
733/// Nested message and enum types in `ApiConfigSource`.
734pub mod api_config_source {
735    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
736    #[repr(i32)]
737    pub enum ApiType {
738        DeprecatedAndUnavailableDoNotUse = 0,
739        Rest = 1,
740        Grpc = 2,
741        DeltaGrpc = 3,
742        AggregatedGrpc = 5,
743        AggregatedDeltaGrpc = 6,
744    }
745    impl ApiType {
746        /// String value of the enum field names used in the ProtoBuf definition.
747        ///
748        /// The values are not transformed in any way and thus are considered stable
749        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
750        pub fn as_str_name(&self) -> &'static str {
751            match self {
752                ApiType::DeprecatedAndUnavailableDoNotUse => {
753                    "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE"
754                }
755                ApiType::Rest => "REST",
756                ApiType::Grpc => "GRPC",
757                ApiType::DeltaGrpc => "DELTA_GRPC",
758                ApiType::AggregatedGrpc => "AGGREGATED_GRPC",
759                ApiType::AggregatedDeltaGrpc => "AGGREGATED_DELTA_GRPC",
760            }
761        }
762        /// Creates an enum from field names used in the ProtoBuf definition.
763        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
764            match value {
765                "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE" => {
766                    Some(Self::DeprecatedAndUnavailableDoNotUse)
767                }
768                "REST" => Some(Self::Rest),
769                "GRPC" => Some(Self::Grpc),
770                "DELTA_GRPC" => Some(Self::DeltaGrpc),
771                "AGGREGATED_GRPC" => Some(Self::AggregatedGrpc),
772                "AGGREGATED_DELTA_GRPC" => Some(Self::AggregatedDeltaGrpc),
773                _ => None,
774            }
775        }
776    }
777}
778#[allow(clippy::derive_partial_eq_without_eq)]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct AggregatedConfigSource {}
781#[allow(clippy::derive_partial_eq_without_eq)]
782#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct SelfConfigSource {
784    #[prost(enumeration = "ApiVersion", tag = "1")]
785    pub transport_api_version: i32,
786}
787#[allow(clippy::derive_partial_eq_without_eq)]
788#[derive(Clone, PartialEq, ::prost::Message)]
789pub struct RateLimitSettings {
790    #[prost(message, optional, tag = "1")]
791    pub max_tokens: ::core::option::Option<u32>,
792    #[prost(message, optional, tag = "2")]
793    pub fill_rate: ::core::option::Option<f64>,
794}
795#[allow(clippy::derive_partial_eq_without_eq)]
796#[derive(Clone, PartialEq, ::prost::Message)]
797pub struct PathConfigSource {
798    #[prost(string, tag = "1")]
799    pub path: ::prost::alloc::string::String,
800    #[prost(message, optional, tag = "2")]
801    pub watched_directory: ::core::option::Option<WatchedDirectory>,
802}
803#[allow(clippy::derive_partial_eq_without_eq)]
804#[derive(Clone, PartialEq, ::prost::Message)]
805pub struct ConfigSource {
806    #[prost(message, repeated, tag = "7")]
807    pub authorities: ::prost::alloc::vec::Vec<super::super::super::super::xds::core::v3::Authority>,
808    #[prost(message, optional, tag = "4")]
809    pub initial_fetch_timeout: ::core::option::Option<::prost_types::Duration>,
810    #[prost(enumeration = "ApiVersion", tag = "6")]
811    pub resource_api_version: i32,
812    #[prost(oneof = "config_source::ConfigSourceSpecifier", tags = "1, 8, 2, 3, 5")]
813    pub config_source_specifier: ::core::option::Option<config_source::ConfigSourceSpecifier>,
814}
815/// Nested message and enum types in `ConfigSource`.
816pub mod config_source {
817    #[allow(clippy::derive_partial_eq_without_eq)]
818    #[derive(Clone, PartialEq, ::prost::Oneof)]
819    pub enum ConfigSourceSpecifier {
820        #[prost(string, tag = "1")]
821        Path(::prost::alloc::string::String),
822        #[prost(message, tag = "8")]
823        PathConfigSource(super::PathConfigSource),
824        #[prost(message, tag = "2")]
825        ApiConfigSource(super::ApiConfigSource),
826        #[prost(message, tag = "3")]
827        Ads(super::AggregatedConfigSource),
828        #[prost(message, tag = "5")]
829        Self_(super::SelfConfigSource),
830    }
831}
832#[allow(clippy::derive_partial_eq_without_eq)]
833#[derive(Clone, PartialEq, ::prost::Message)]
834pub struct ExtensionConfigSource {
835    #[prost(message, optional, tag = "1")]
836    pub config_source: ::core::option::Option<ConfigSource>,
837    #[prost(message, optional, tag = "2")]
838    pub default_config: ::core::option::Option<::prost_types::Any>,
839    #[prost(bool, tag = "3")]
840    pub apply_default_config_without_warming: bool,
841    #[prost(string, repeated, tag = "4")]
842    pub type_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
843}
844#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
845#[repr(i32)]
846pub enum ApiVersion {
847    Auto = 0,
848    V2 = 1,
849    V3 = 2,
850}
851impl ApiVersion {
852    /// String value of the enum field names used in the ProtoBuf definition.
853    ///
854    /// The values are not transformed in any way and thus are considered stable
855    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
856    pub fn as_str_name(&self) -> &'static str {
857        match self {
858            ApiVersion::Auto => "AUTO",
859            ApiVersion::V2 => "V2",
860            ApiVersion::V3 => "V3",
861        }
862    }
863    /// Creates an enum from field names used in the ProtoBuf definition.
864    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
865        match value {
866            "AUTO" => Some(Self::Auto),
867            "V2" => Some(Self::V2),
868            "V3" => Some(Self::V3),
869            _ => None,
870        }
871    }
872}
873#[allow(clippy::derive_partial_eq_without_eq)]
874#[derive(Clone, PartialEq, ::prost::Message)]
875pub struct UdpSocketConfig {
876    #[prost(message, optional, tag = "1")]
877    pub max_rx_datagram_size: ::core::option::Option<u64>,
878    #[prost(message, optional, tag = "2")]
879    pub prefer_gro: ::core::option::Option<bool>,
880}
881#[allow(clippy::derive_partial_eq_without_eq)]
882#[derive(Clone, PartialEq, ::prost::Message)]
883pub struct TcpProtocolOptions {}
884#[allow(clippy::derive_partial_eq_without_eq)]
885#[derive(Clone, PartialEq, ::prost::Message)]
886pub struct QuicKeepAliveSettings {
887    #[prost(message, optional, tag = "1")]
888    pub max_interval: ::core::option::Option<::prost_types::Duration>,
889    #[prost(message, optional, tag = "2")]
890    pub initial_interval: ::core::option::Option<::prost_types::Duration>,
891}
892#[allow(clippy::derive_partial_eq_without_eq)]
893#[derive(Clone, PartialEq, ::prost::Message)]
894pub struct QuicProtocolOptions {
895    #[prost(message, optional, tag = "1")]
896    pub max_concurrent_streams: ::core::option::Option<u32>,
897    #[prost(message, optional, tag = "2")]
898    pub initial_stream_window_size: ::core::option::Option<u32>,
899    #[prost(message, optional, tag = "3")]
900    pub initial_connection_window_size: ::core::option::Option<u32>,
901    #[prost(message, optional, tag = "4")]
902    pub num_timeouts_to_trigger_port_migration: ::core::option::Option<u32>,
903    #[prost(message, optional, tag = "5")]
904    pub connection_keepalive: ::core::option::Option<QuicKeepAliveSettings>,
905}
906#[allow(clippy::derive_partial_eq_without_eq)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct UpstreamHttpProtocolOptions {
909    #[prost(bool, tag = "1")]
910    pub auto_sni: bool,
911    #[prost(bool, tag = "2")]
912    pub auto_san_validation: bool,
913    #[prost(string, tag = "3")]
914    pub override_auto_sni_header: ::prost::alloc::string::String,
915}
916#[allow(clippy::derive_partial_eq_without_eq)]
917#[derive(Clone, PartialEq, ::prost::Message)]
918pub struct AlternateProtocolsCacheOptions {
919    #[prost(string, tag = "1")]
920    pub name: ::prost::alloc::string::String,
921    #[prost(message, optional, tag = "2")]
922    pub max_entries: ::core::option::Option<u32>,
923    #[prost(message, optional, tag = "3")]
924    pub key_value_store_config: ::core::option::Option<TypedExtensionConfig>,
925    #[prost(message, repeated, tag = "4")]
926    pub prepopulated_entries:
927        ::prost::alloc::vec::Vec<alternate_protocols_cache_options::AlternateProtocolsCacheEntry>,
928}
929/// Nested message and enum types in `AlternateProtocolsCacheOptions`.
930pub mod alternate_protocols_cache_options {
931    #[allow(clippy::derive_partial_eq_without_eq)]
932    #[derive(Clone, PartialEq, ::prost::Message)]
933    pub struct AlternateProtocolsCacheEntry {
934        #[prost(string, tag = "1")]
935        pub hostname: ::prost::alloc::string::String,
936        #[prost(uint32, tag = "2")]
937        pub port: u32,
938    }
939}
940#[allow(clippy::derive_partial_eq_without_eq)]
941#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct HttpProtocolOptions {
943    #[prost(message, optional, tag = "1")]
944    pub idle_timeout: ::core::option::Option<::prost_types::Duration>,
945    #[prost(message, optional, tag = "3")]
946    pub max_connection_duration: ::core::option::Option<::prost_types::Duration>,
947    #[prost(message, optional, tag = "2")]
948    pub max_headers_count: ::core::option::Option<u32>,
949    #[prost(message, optional, tag = "4")]
950    pub max_stream_duration: ::core::option::Option<::prost_types::Duration>,
951    #[prost(
952        enumeration = "http_protocol_options::HeadersWithUnderscoresAction",
953        tag = "5"
954    )]
955    pub headers_with_underscores_action: i32,
956    #[prost(message, optional, tag = "6")]
957    pub max_requests_per_connection: ::core::option::Option<u32>,
958}
959/// Nested message and enum types in `HttpProtocolOptions`.
960pub mod http_protocol_options {
961    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
962    #[repr(i32)]
963    pub enum HeadersWithUnderscoresAction {
964        Allow = 0,
965        RejectRequest = 1,
966        DropHeader = 2,
967    }
968    impl HeadersWithUnderscoresAction {
969        /// String value of the enum field names used in the ProtoBuf definition.
970        ///
971        /// The values are not transformed in any way and thus are considered stable
972        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
973        pub fn as_str_name(&self) -> &'static str {
974            match self {
975                HeadersWithUnderscoresAction::Allow => "ALLOW",
976                HeadersWithUnderscoresAction::RejectRequest => "REJECT_REQUEST",
977                HeadersWithUnderscoresAction::DropHeader => "DROP_HEADER",
978            }
979        }
980        /// Creates an enum from field names used in the ProtoBuf definition.
981        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
982            match value {
983                "ALLOW" => Some(Self::Allow),
984                "REJECT_REQUEST" => Some(Self::RejectRequest),
985                "DROP_HEADER" => Some(Self::DropHeader),
986                _ => None,
987            }
988        }
989    }
990}
991#[allow(clippy::derive_partial_eq_without_eq)]
992#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct Http1ProtocolOptions {
994    #[prost(message, optional, tag = "1")]
995    pub allow_absolute_url: ::core::option::Option<bool>,
996    #[prost(bool, tag = "2")]
997    pub accept_http_10: bool,
998    #[prost(string, tag = "3")]
999    pub default_host_for_http_10: ::prost::alloc::string::String,
1000    #[prost(message, optional, tag = "4")]
1001    pub header_key_format: ::core::option::Option<http1_protocol_options::HeaderKeyFormat>,
1002    #[prost(bool, tag = "5")]
1003    pub enable_trailers: bool,
1004    #[prost(bool, tag = "6")]
1005    pub allow_chunked_length: bool,
1006    #[prost(message, optional, tag = "7")]
1007    pub override_stream_error_on_invalid_http_message: ::core::option::Option<bool>,
1008}
1009/// Nested message and enum types in `Http1ProtocolOptions`.
1010pub mod http1_protocol_options {
1011    #[allow(clippy::derive_partial_eq_without_eq)]
1012    #[derive(Clone, PartialEq, ::prost::Message)]
1013    pub struct HeaderKeyFormat {
1014        #[prost(oneof = "header_key_format::HeaderFormat", tags = "1, 8")]
1015        pub header_format: ::core::option::Option<header_key_format::HeaderFormat>,
1016    }
1017    /// Nested message and enum types in `HeaderKeyFormat`.
1018    pub mod header_key_format {
1019        #[allow(clippy::derive_partial_eq_without_eq)]
1020        #[derive(Clone, PartialEq, ::prost::Message)]
1021        pub struct ProperCaseWords {}
1022        #[allow(clippy::derive_partial_eq_without_eq)]
1023        #[derive(Clone, PartialEq, ::prost::Oneof)]
1024        pub enum HeaderFormat {
1025            #[prost(message, tag = "1")]
1026            ProperCaseWords(ProperCaseWords),
1027            #[prost(message, tag = "8")]
1028            StatefulFormatter(super::super::TypedExtensionConfig),
1029        }
1030    }
1031}
1032#[allow(clippy::derive_partial_eq_without_eq)]
1033#[derive(Clone, PartialEq, ::prost::Message)]
1034pub struct KeepaliveSettings {
1035    #[prost(message, optional, tag = "1")]
1036    pub interval: ::core::option::Option<::prost_types::Duration>,
1037    #[prost(message, optional, tag = "2")]
1038    pub timeout: ::core::option::Option<::prost_types::Duration>,
1039    #[prost(message, optional, tag = "3")]
1040    pub interval_jitter: ::core::option::Option<super::super::super::kind::v3::Percent>,
1041    #[prost(message, optional, tag = "4")]
1042    pub connection_idle_interval: ::core::option::Option<::prost_types::Duration>,
1043}
1044#[allow(clippy::derive_partial_eq_without_eq)]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct Http2ProtocolOptions {
1047    #[prost(message, optional, tag = "1")]
1048    pub hpack_table_size: ::core::option::Option<u32>,
1049    #[prost(message, optional, tag = "2")]
1050    pub max_concurrent_streams: ::core::option::Option<u32>,
1051    #[prost(message, optional, tag = "3")]
1052    pub initial_stream_window_size: ::core::option::Option<u32>,
1053    #[prost(message, optional, tag = "4")]
1054    pub initial_connection_window_size: ::core::option::Option<u32>,
1055    #[prost(bool, tag = "5")]
1056    pub allow_connect: bool,
1057    #[prost(bool, tag = "6")]
1058    pub allow_metadata: bool,
1059    #[prost(message, optional, tag = "7")]
1060    pub max_outbound_frames: ::core::option::Option<u32>,
1061    #[prost(message, optional, tag = "8")]
1062    pub max_outbound_control_frames: ::core::option::Option<u32>,
1063    #[prost(message, optional, tag = "9")]
1064    pub max_consecutive_inbound_frames_with_empty_payload: ::core::option::Option<u32>,
1065    #[prost(message, optional, tag = "10")]
1066    pub max_inbound_priority_frames_per_stream: ::core::option::Option<u32>,
1067    #[prost(message, optional, tag = "11")]
1068    pub max_inbound_window_update_frames_per_data_frame_sent: ::core::option::Option<u32>,
1069    #[deprecated]
1070    #[prost(bool, tag = "12")]
1071    pub stream_error_on_invalid_http_messaging: bool,
1072    #[prost(message, optional, tag = "14")]
1073    pub override_stream_error_on_invalid_http_message: ::core::option::Option<bool>,
1074    #[prost(message, repeated, tag = "13")]
1075    pub custom_settings_parameters:
1076        ::prost::alloc::vec::Vec<http2_protocol_options::SettingsParameter>,
1077    #[prost(message, optional, tag = "15")]
1078    pub connection_keepalive: ::core::option::Option<KeepaliveSettings>,
1079}
1080/// Nested message and enum types in `Http2ProtocolOptions`.
1081pub mod http2_protocol_options {
1082    #[allow(clippy::derive_partial_eq_without_eq)]
1083    #[derive(Clone, PartialEq, ::prost::Message)]
1084    pub struct SettingsParameter {
1085        #[prost(message, optional, tag = "1")]
1086        pub identifier: ::core::option::Option<u32>,
1087        #[prost(message, optional, tag = "2")]
1088        pub value: ::core::option::Option<u32>,
1089    }
1090}
1091#[allow(clippy::derive_partial_eq_without_eq)]
1092#[derive(Clone, PartialEq, ::prost::Message)]
1093pub struct GrpcProtocolOptions {
1094    #[prost(message, optional, tag = "1")]
1095    pub http2_protocol_options: ::core::option::Option<Http2ProtocolOptions>,
1096}
1097#[allow(clippy::derive_partial_eq_without_eq)]
1098#[derive(Clone, PartialEq, ::prost::Message)]
1099pub struct Http3ProtocolOptions {
1100    #[prost(message, optional, tag = "1")]
1101    pub quic_protocol_options: ::core::option::Option<QuicProtocolOptions>,
1102    #[prost(message, optional, tag = "2")]
1103    pub override_stream_error_on_invalid_http_message: ::core::option::Option<bool>,
1104    #[prost(bool, tag = "5")]
1105    pub allow_extended_connect: bool,
1106}
1107#[allow(clippy::derive_partial_eq_without_eq)]
1108#[derive(Clone, PartialEq, ::prost::Message)]
1109pub struct SchemeHeaderTransformation {
1110    #[prost(oneof = "scheme_header_transformation::Transformation", tags = "1")]
1111    pub transformation: ::core::option::Option<scheme_header_transformation::Transformation>,
1112}
1113/// Nested message and enum types in `SchemeHeaderTransformation`.
1114pub mod scheme_header_transformation {
1115    #[allow(clippy::derive_partial_eq_without_eq)]
1116    #[derive(Clone, PartialEq, ::prost::Oneof)]
1117    pub enum Transformation {
1118        #[prost(string, tag = "1")]
1119        SchemeToOverwrite(::prost::alloc::string::String),
1120    }
1121}
1122#[allow(clippy::derive_partial_eq_without_eq)]
1123#[derive(Clone, PartialEq, ::prost::Message)]
1124pub struct EventServiceConfig {
1125    #[prost(oneof = "event_service_config::ConfigSourceSpecifier", tags = "1")]
1126    pub config_source_specifier:
1127        ::core::option::Option<event_service_config::ConfigSourceSpecifier>,
1128}
1129/// Nested message and enum types in `EventServiceConfig`.
1130pub mod event_service_config {
1131    #[allow(clippy::derive_partial_eq_without_eq)]
1132    #[derive(Clone, PartialEq, ::prost::Oneof)]
1133    pub enum ConfigSourceSpecifier {
1134        #[prost(message, tag = "1")]
1135        GrpcService(super::GrpcService),
1136    }
1137}
1138#[allow(clippy::derive_partial_eq_without_eq)]
1139#[derive(Clone, PartialEq, ::prost::Message)]
1140pub struct HealthStatusSet {
1141    #[prost(enumeration = "HealthStatus", repeated, packed = "false", tag = "1")]
1142    pub statuses: ::prost::alloc::vec::Vec<i32>,
1143}
1144#[allow(clippy::derive_partial_eq_without_eq)]
1145#[derive(Clone, PartialEq, ::prost::Message)]
1146pub struct HealthCheck {
1147    #[prost(message, optional, tag = "1")]
1148    pub timeout: ::core::option::Option<::prost_types::Duration>,
1149    #[prost(message, optional, tag = "2")]
1150    pub interval: ::core::option::Option<::prost_types::Duration>,
1151    #[prost(message, optional, tag = "20")]
1152    pub initial_jitter: ::core::option::Option<::prost_types::Duration>,
1153    #[prost(message, optional, tag = "3")]
1154    pub interval_jitter: ::core::option::Option<::prost_types::Duration>,
1155    #[prost(uint32, tag = "18")]
1156    pub interval_jitter_percent: u32,
1157    #[prost(message, optional, tag = "4")]
1158    pub unhealthy_threshold: ::core::option::Option<u32>,
1159    #[prost(message, optional, tag = "5")]
1160    pub healthy_threshold: ::core::option::Option<u32>,
1161    #[prost(message, optional, tag = "6")]
1162    pub alt_port: ::core::option::Option<u32>,
1163    #[prost(message, optional, tag = "7")]
1164    pub reuse_connection: ::core::option::Option<bool>,
1165    #[prost(message, optional, tag = "12")]
1166    pub no_traffic_interval: ::core::option::Option<::prost_types::Duration>,
1167    #[prost(message, optional, tag = "24")]
1168    pub no_traffic_healthy_interval: ::core::option::Option<::prost_types::Duration>,
1169    #[prost(message, optional, tag = "14")]
1170    pub unhealthy_interval: ::core::option::Option<::prost_types::Duration>,
1171    #[prost(message, optional, tag = "15")]
1172    pub unhealthy_edge_interval: ::core::option::Option<::prost_types::Duration>,
1173    #[prost(message, optional, tag = "16")]
1174    pub healthy_edge_interval: ::core::option::Option<::prost_types::Duration>,
1175    #[prost(string, tag = "17")]
1176    pub event_log_path: ::prost::alloc::string::String,
1177    #[prost(message, optional, tag = "22")]
1178    pub event_service: ::core::option::Option<EventServiceConfig>,
1179    #[prost(bool, tag = "19")]
1180    pub always_log_health_check_failures: bool,
1181    #[prost(message, optional, tag = "21")]
1182    pub tls_options: ::core::option::Option<health_check::TlsOptions>,
1183    #[prost(message, optional, tag = "23")]
1184    pub transport_socket_match_criteria: ::core::option::Option<::prost_types::Struct>,
1185    #[prost(oneof = "health_check::HealthChecker", tags = "8, 9, 11, 13")]
1186    pub health_checker: ::core::option::Option<health_check::HealthChecker>,
1187}
1188/// Nested message and enum types in `HealthCheck`.
1189pub mod health_check {
1190    #[allow(clippy::derive_partial_eq_without_eq)]
1191    #[derive(Clone, PartialEq, ::prost::Message)]
1192    pub struct Payload {
1193        #[prost(oneof = "payload::Payload", tags = "1, 2")]
1194        pub payload: ::core::option::Option<payload::Payload>,
1195    }
1196    /// Nested message and enum types in `Payload`.
1197    pub mod payload {
1198        #[allow(clippy::derive_partial_eq_without_eq)]
1199        #[derive(Clone, PartialEq, ::prost::Oneof)]
1200        pub enum Payload {
1201            #[prost(string, tag = "1")]
1202            Text(::prost::alloc::string::String),
1203            #[prost(bytes, tag = "2")]
1204            Binary(::prost::alloc::vec::Vec<u8>),
1205        }
1206    }
1207    #[allow(clippy::derive_partial_eq_without_eq)]
1208    #[derive(Clone, PartialEq, ::prost::Message)]
1209    pub struct HttpHealthCheck {
1210        #[prost(string, tag = "1")]
1211        pub host: ::prost::alloc::string::String,
1212        #[prost(string, tag = "2")]
1213        pub path: ::prost::alloc::string::String,
1214        #[prost(message, optional, tag = "3")]
1215        pub send: ::core::option::Option<Payload>,
1216        #[prost(message, optional, tag = "4")]
1217        pub receive: ::core::option::Option<Payload>,
1218        #[prost(message, repeated, tag = "6")]
1219        pub request_headers_to_add: ::prost::alloc::vec::Vec<super::HeaderValueOption>,
1220        #[prost(string, repeated, tag = "8")]
1221        pub request_headers_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1222        #[prost(message, repeated, tag = "9")]
1223        pub expected_statuses:
1224            ::prost::alloc::vec::Vec<super::super::super::super::kind::v3::Int64Range>,
1225        #[prost(message, repeated, tag = "12")]
1226        pub retriable_statuses:
1227            ::prost::alloc::vec::Vec<super::super::super::super::kind::v3::Int64Range>,
1228        #[prost(
1229            enumeration = "super::super::super::super::kind::v3::CodecClientType",
1230            tag = "10"
1231        )]
1232        pub codec_client_type: i32,
1233        #[prost(message, optional, tag = "11")]
1234        pub service_name_matcher:
1235            ::core::option::Option<super::super::super::super::kind::matcher::v3::StringMatcher>,
1236    }
1237    #[allow(clippy::derive_partial_eq_without_eq)]
1238    #[derive(Clone, PartialEq, ::prost::Message)]
1239    pub struct TcpHealthCheck {
1240        #[prost(message, optional, tag = "1")]
1241        pub send: ::core::option::Option<Payload>,
1242        #[prost(message, repeated, tag = "2")]
1243        pub receive: ::prost::alloc::vec::Vec<Payload>,
1244    }
1245    #[allow(clippy::derive_partial_eq_without_eq)]
1246    #[derive(Clone, PartialEq, ::prost::Message)]
1247    pub struct RedisHealthCheck {
1248        #[prost(string, tag = "1")]
1249        pub key: ::prost::alloc::string::String,
1250    }
1251    #[allow(clippy::derive_partial_eq_without_eq)]
1252    #[derive(Clone, PartialEq, ::prost::Message)]
1253    pub struct GrpcHealthCheck {
1254        #[prost(string, tag = "1")]
1255        pub service_name: ::prost::alloc::string::String,
1256        #[prost(string, tag = "2")]
1257        pub authority: ::prost::alloc::string::String,
1258        #[prost(message, repeated, tag = "3")]
1259        pub initial_metadata: ::prost::alloc::vec::Vec<super::HeaderValueOption>,
1260    }
1261    #[allow(clippy::derive_partial_eq_without_eq)]
1262    #[derive(Clone, PartialEq, ::prost::Message)]
1263    pub struct CustomHealthCheck {
1264        #[prost(string, tag = "1")]
1265        pub name: ::prost::alloc::string::String,
1266        #[prost(oneof = "custom_health_check::ConfigType", tags = "3")]
1267        pub config_type: ::core::option::Option<custom_health_check::ConfigType>,
1268    }
1269    /// Nested message and enum types in `CustomHealthCheck`.
1270    pub mod custom_health_check {
1271        #[allow(clippy::derive_partial_eq_without_eq)]
1272        #[derive(Clone, PartialEq, ::prost::Oneof)]
1273        pub enum ConfigType {
1274            #[prost(message, tag = "3")]
1275            TypedConfig(::prost_types::Any),
1276        }
1277    }
1278    #[allow(clippy::derive_partial_eq_without_eq)]
1279    #[derive(Clone, PartialEq, ::prost::Message)]
1280    pub struct TlsOptions {
1281        #[prost(string, repeated, tag = "1")]
1282        pub alpn_protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1283    }
1284    #[allow(clippy::derive_partial_eq_without_eq)]
1285    #[derive(Clone, PartialEq, ::prost::Oneof)]
1286    pub enum HealthChecker {
1287        #[prost(message, tag = "8")]
1288        HttpHealthCheck(HttpHealthCheck),
1289        #[prost(message, tag = "9")]
1290        TcpHealthCheck(TcpHealthCheck),
1291        #[prost(message, tag = "11")]
1292        GrpcHealthCheck(GrpcHealthCheck),
1293        #[prost(message, tag = "13")]
1294        CustomHealthCheck(CustomHealthCheck),
1295    }
1296}
1297#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1298#[repr(i32)]
1299pub enum HealthStatus {
1300    Unknown = 0,
1301    Healthy = 1,
1302    Unhealthy = 2,
1303    Draining = 3,
1304    Timeout = 4,
1305    Degraded = 5,
1306}
1307impl HealthStatus {
1308    /// String value of the enum field names used in the ProtoBuf definition.
1309    ///
1310    /// The values are not transformed in any way and thus are considered stable
1311    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1312    pub fn as_str_name(&self) -> &'static str {
1313        match self {
1314            HealthStatus::Unknown => "UNKNOWN",
1315            HealthStatus::Healthy => "HEALTHY",
1316            HealthStatus::Unhealthy => "UNHEALTHY",
1317            HealthStatus::Draining => "DRAINING",
1318            HealthStatus::Timeout => "TIMEOUT",
1319            HealthStatus::Degraded => "DEGRADED",
1320        }
1321    }
1322    /// Creates an enum from field names used in the ProtoBuf definition.
1323    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1324        match value {
1325            "UNKNOWN" => Some(Self::Unknown),
1326            "HEALTHY" => Some(Self::Healthy),
1327            "UNHEALTHY" => Some(Self::Unhealthy),
1328            "DRAINING" => Some(Self::Draining),
1329            "TIMEOUT" => Some(Self::Timeout),
1330            "DEGRADED" => Some(Self::Degraded),
1331            _ => None,
1332        }
1333    }
1334}