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}
93pub 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 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 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}
143pub 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}
166pub 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 pub fn as_str_name(&self) -> &'static str {
201 match self {
202 RoutingPriority::Default => "DEFAULT",
203 RoutingPriority::High => "HIGH",
204 }
205 }
206 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 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 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 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 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}
308pub 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 pub fn as_str_name(&self) -> &'static str {
322 match self {
323 Version::V1 => "V1",
324 Version::V2 => "V2",
325 }
326 }
327 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}
351pub 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 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 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}
406pub 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}
429pub 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 pub fn as_str_name(&self) -> &'static str {
443 match self {
444 Protocol::Tcp => "TCP",
445 Protocol::Udp => "UDP",
446 }
447 }
448 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}
492pub 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}
523pub 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 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 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 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 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 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 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}
733pub 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 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 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}
815pub 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 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 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}
929pub 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}
959pub 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 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 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}
1009pub 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 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}
1080pub 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}
1113pub 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}
1129pub 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}
1188pub 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 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 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 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 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}