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