1#[derive(::serde::Serialize, ::serde::Deserialize)]
4#[derive(Ord, PartialOrd)]
5#[derive(Eq)]
6#[derive(Hash)]
7#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct Request {
9 #[prost(
10 oneof = "request::RequestType",
11 tags = "1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55"
12 )]
13 pub request_type: ::core::option::Option<request::RequestType>,
14}
15pub mod request {
17 #[derive(::serde::Serialize, ::serde::Deserialize)]
18 #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
19 #[allow(clippy::large_enum_variant)]
20 #[derive(Hash, Eq, Ord, PartialOrd)]
21 #[derive(Clone, PartialEq, ::prost::Oneof)]
22 pub enum RequestType {
23 #[prost(string, tag = "1")]
30 SaveState(::prost::alloc::string::String),
31 #[prost(string, tag = "2")]
33 LoadState(::prost::alloc::string::String),
34 #[prost(message, tag = "4")]
36 ListWorkers(super::ListWorkers),
37 #[prost(message, tag = "5")]
39 ListFrontends(super::FrontendFilters),
40 #[prost(message, tag = "6")]
42 ListListeners(super::ListListeners),
43 #[prost(string, tag = "7")]
48 LaunchWorker(::prost::alloc::string::String),
49 #[prost(message, tag = "8")]
51 UpgradeMain(super::UpgradeMain),
52 #[prost(uint32, tag = "9")]
54 UpgradeWorker(u32),
55 #[prost(message, tag = "10")]
57 SubscribeEvents(super::SubscribeEvents),
58 #[prost(string, tag = "11")]
62 ReloadConfiguration(::prost::alloc::string::String),
63 #[prost(message, tag = "12")]
65 Status(super::Status),
66 #[prost(message, tag = "13")]
68 AddCluster(super::Cluster),
69 #[prost(string, tag = "14")]
71 RemoveCluster(::prost::alloc::string::String),
72 #[prost(message, tag = "15")]
74 AddHttpFrontend(super::RequestHttpFrontend),
75 #[prost(message, tag = "16")]
77 RemoveHttpFrontend(super::RequestHttpFrontend),
78 #[prost(message, tag = "17")]
80 AddHttpsFrontend(super::RequestHttpFrontend),
81 #[prost(message, tag = "18")]
83 RemoveHttpsFrontend(super::RequestHttpFrontend),
84 #[prost(message, tag = "19")]
86 AddCertificate(super::AddCertificate),
87 #[prost(message, tag = "20")]
89 ReplaceCertificate(super::ReplaceCertificate),
90 #[prost(message, tag = "21")]
92 RemoveCertificate(super::RemoveCertificate),
93 #[prost(message, tag = "22")]
95 AddTcpFrontend(super::RequestTcpFrontend),
96 #[prost(message, tag = "23")]
98 RemoveTcpFrontend(super::RequestTcpFrontend),
99 #[prost(message, tag = "24")]
101 AddBackend(super::AddBackend),
102 #[prost(message, tag = "25")]
104 RemoveBackend(super::RemoveBackend),
105 #[prost(message, tag = "26")]
107 AddHttpListener(super::HttpListenerConfig),
108 #[prost(message, tag = "27")]
110 AddHttpsListener(super::HttpsListenerConfig),
111 #[prost(message, tag = "28")]
113 AddTcpListener(super::TcpListenerConfig),
114 #[prost(message, tag = "29")]
116 RemoveListener(super::RemoveListener),
117 #[prost(message, tag = "30")]
119 ActivateListener(super::ActivateListener),
120 #[prost(message, tag = "31")]
122 DeactivateListener(super::DeactivateListener),
123 #[prost(string, tag = "35")]
125 QueryClusterById(::prost::alloc::string::String),
126 #[prost(message, tag = "36")]
128 QueryClustersByDomain(super::QueryClusterByDomain),
129 #[prost(message, tag = "37")]
131 QueryClustersHashes(super::QueryClustersHashes),
132 #[prost(message, tag = "38")]
134 QueryMetrics(super::QueryMetricsOptions),
135 #[prost(message, tag = "39")]
137 SoftStop(super::SoftStop),
138 #[prost(message, tag = "40")]
140 HardStop(super::HardStop),
141 #[prost(enumeration = "super::MetricsConfiguration", tag = "41")]
143 ConfigureMetrics(i32),
144 #[prost(string, tag = "42")]
146 Logging(::prost::alloc::string::String),
147 #[prost(message, tag = "43")]
149 ReturnListenSockets(super::ReturnListenSockets),
150 #[prost(message, tag = "44")]
152 QueryCertificatesFromTheState(super::QueryCertificatesFilters),
153 #[prost(message, tag = "45")]
155 QueryCertificatesFromWorkers(super::QueryCertificatesFilters),
156 #[prost(message, tag = "46")]
159 CountRequests(super::CountRequests),
160 #[prost(message, tag = "47")]
162 UpdateHttpListener(super::UpdateHttpListenerConfig),
163 #[prost(message, tag = "48")]
165 UpdateHttpsListener(super::UpdateHttpsListenerConfig),
166 #[prost(message, tag = "49")]
168 UpdateTcpListener(super::UpdateTcpListenerConfig),
169 #[prost(uint64, tag = "50")]
173 SetMaxConnectionsPerIp(u64),
174 #[prost(message, tag = "51")]
177 QueryMaxConnectionsPerIp(super::QueryMaxConnectionsPerIp),
178 #[prost(message, tag = "52")]
183 SetHealthCheck(super::SetHealthCheck),
184 #[prost(string, tag = "53")]
186 RemoveHealthCheck(::prost::alloc::string::String),
187 #[prost(message, tag = "54")]
189 QueryHealthChecks(super::QueryHealthChecks),
190 #[prost(message, tag = "55")]
197 SetMetricDetail(super::SetMetricDetail),
198 }
199}
200#[derive(::serde::Serialize, ::serde::Deserialize)]
201#[derive(Ord, PartialOrd)]
202#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
203pub struct QueryHealthChecks {
204 #[prost(string, optional, tag = "1")]
205 pub cluster_id: ::core::option::Option<::prost::alloc::string::String>,
206}
207#[derive(::serde::Serialize, ::serde::Deserialize)]
208#[derive(Ord, PartialOrd)]
209#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
210pub struct SetHealthCheck {
211 #[prost(string, required, tag = "1")]
212 pub cluster_id: ::prost::alloc::string::String,
213 #[prost(message, required, tag = "2")]
214 pub config: HealthCheckConfig,
215}
216#[derive(::serde::Serialize, ::serde::Deserialize)]
217#[derive(Ord, PartialOrd)]
218#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
219pub struct ListWorkers {}
220#[derive(::serde::Serialize, ::serde::Deserialize)]
221#[derive(Ord, PartialOrd)]
222#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
223pub struct ListListeners {}
224#[derive(::serde::Serialize, ::serde::Deserialize)]
225#[derive(Ord, PartialOrd)]
226#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
227pub struct UpgradeMain {}
228#[derive(::serde::Serialize, ::serde::Deserialize)]
229#[derive(Ord, PartialOrd)]
230#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
231pub struct SubscribeEvents {}
232#[derive(::serde::Serialize, ::serde::Deserialize)]
233#[derive(Ord, PartialOrd)]
234#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
235pub struct Status {}
236#[derive(::serde::Serialize, ::serde::Deserialize)]
237#[derive(Ord, PartialOrd)]
238#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
239pub struct QueryClustersHashes {}
240#[derive(::serde::Serialize, ::serde::Deserialize)]
241#[derive(Ord, PartialOrd)]
242#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
243pub struct SoftStop {}
244#[derive(::serde::Serialize, ::serde::Deserialize)]
245#[derive(Ord, PartialOrd)]
246#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
247pub struct HardStop {}
248#[derive(::serde::Serialize, ::serde::Deserialize)]
249#[derive(Ord, PartialOrd)]
250#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
251pub struct ReturnListenSockets {}
252#[derive(::serde::Serialize, ::serde::Deserialize)]
253#[derive(Ord, PartialOrd)]
254#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
255pub struct CountRequests {}
256#[derive(::serde::Serialize, ::serde::Deserialize)]
257#[derive(Ord, PartialOrd)]
258#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
259pub struct QueryMaxConnectionsPerIp {}
260#[derive(::serde::Serialize, ::serde::Deserialize)]
265#[derive(Ord, PartialOrd)]
266#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
267pub struct AlpnProtocols {
268 #[prost(string, repeated, tag = "1")]
269 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
270}
271#[derive(::serde::Serialize, ::serde::Deserialize)]
277#[derive(Ord, PartialOrd)]
278#[derive(Hash, Eq)]
279#[derive(Clone, PartialEq, ::prost::Message)]
280pub struct UpdateHttpListenerConfig {
281 #[prost(message, required, tag = "1")]
283 pub address: SocketAddress,
284 #[prost(message, optional, tag = "2")]
285 pub public_address: ::core::option::Option<SocketAddress>,
286 #[prost(bool, optional, tag = "3")]
287 pub expect_proxy: ::core::option::Option<bool>,
288 #[prost(string, optional, tag = "4")]
289 pub sticky_name: ::core::option::Option<::prost::alloc::string::String>,
290 #[prost(uint32, optional, tag = "5")]
292 pub front_timeout: ::core::option::Option<u32>,
293 #[prost(uint32, optional, tag = "6")]
295 pub back_timeout: ::core::option::Option<u32>,
296 #[prost(uint32, optional, tag = "7")]
298 pub connect_timeout: ::core::option::Option<u32>,
299 #[prost(uint32, optional, tag = "8")]
301 pub request_timeout: ::core::option::Option<u32>,
302 #[prost(message, optional, tag = "9")]
306 pub http_answers: ::core::option::Option<CustomHttpAnswers>,
307 #[prost(uint32, optional, tag = "20")]
311 pub h2_max_rst_stream_per_window: ::core::option::Option<u32>,
312 #[prost(uint32, optional, tag = "21")]
314 pub h2_max_ping_per_window: ::core::option::Option<u32>,
315 #[prost(uint32, optional, tag = "22")]
317 pub h2_max_settings_per_window: ::core::option::Option<u32>,
318 #[prost(uint32, optional, tag = "23")]
320 pub h2_max_empty_data_per_window: ::core::option::Option<u32>,
321 #[prost(uint32, optional, tag = "24")]
323 pub h2_max_continuation_frames: ::core::option::Option<u32>,
324 #[prost(uint32, optional, tag = "25")]
326 pub h2_max_glitch_count: ::core::option::Option<u32>,
327 #[prost(uint32, optional, tag = "26")]
329 pub h2_initial_connection_window: ::core::option::Option<u32>,
330 #[prost(uint32, optional, tag = "27")]
332 pub h2_max_concurrent_streams: ::core::option::Option<u32>,
333 #[prost(uint32, optional, tag = "28")]
335 pub h2_stream_shrink_ratio: ::core::option::Option<u32>,
336 #[prost(uint64, optional, tag = "29")]
338 pub h2_max_rst_stream_lifetime: ::core::option::Option<u64>,
339 #[prost(uint64, optional, tag = "30")]
341 pub h2_max_rst_stream_abusive_lifetime: ::core::option::Option<u64>,
342 #[prost(uint64, optional, tag = "31")]
344 pub h2_max_rst_stream_emitted_lifetime: ::core::option::Option<u64>,
345 #[prost(uint32, optional, tag = "32")]
347 pub h2_max_header_list_size: ::core::option::Option<u32>,
348 #[prost(uint32, optional, tag = "33")]
350 pub h2_max_header_table_size: ::core::option::Option<u32>,
351 #[prost(uint32, optional, tag = "34")]
353 pub h2_stream_idle_timeout_seconds: ::core::option::Option<u32>,
354 #[prost(uint32, optional, tag = "35")]
356 pub h2_graceful_shutdown_deadline_seconds: ::core::option::Option<u32>,
357 #[prost(uint32, optional, tag = "36")]
359 pub h2_max_window_update_stream0_per_window: ::core::option::Option<u32>,
360 #[prost(string, optional, tag = "37")]
362 pub sozu_id_header: ::core::option::Option<::prost::alloc::string::String>,
363 #[prost(btree_map = "string, string", tag = "38")]
369 pub answers: ::prost::alloc::collections::BTreeMap<
370 ::prost::alloc::string::String,
371 ::prost::alloc::string::String,
372 >,
373 #[prost(bool, optional, tag = "39")]
376 pub elide_x_real_ip: ::core::option::Option<bool>,
377 #[prost(bool, optional, tag = "40")]
380 pub send_x_real_ip: ::core::option::Option<bool>,
381}
382#[derive(::serde::Serialize, ::serde::Deserialize)]
390#[derive(Ord, PartialOrd)]
391#[derive(Hash, Eq)]
392#[derive(Clone, PartialEq, ::prost::Message)]
393pub struct UpdateHttpsListenerConfig {
394 #[prost(message, required, tag = "1")]
396 pub address: SocketAddress,
397 #[prost(message, optional, tag = "2")]
398 pub public_address: ::core::option::Option<SocketAddress>,
399 #[prost(bool, optional, tag = "3")]
400 pub expect_proxy: ::core::option::Option<bool>,
401 #[prost(string, optional, tag = "4")]
402 pub sticky_name: ::core::option::Option<::prost::alloc::string::String>,
403 #[prost(uint32, optional, tag = "5")]
405 pub front_timeout: ::core::option::Option<u32>,
406 #[prost(uint32, optional, tag = "6")]
408 pub back_timeout: ::core::option::Option<u32>,
409 #[prost(uint32, optional, tag = "7")]
411 pub connect_timeout: ::core::option::Option<u32>,
412 #[prost(uint32, optional, tag = "8")]
414 pub request_timeout: ::core::option::Option<u32>,
415 #[prost(message, optional, tag = "9")]
419 pub http_answers: ::core::option::Option<CustomHttpAnswers>,
420 #[prost(message, optional, tag = "10")]
425 pub alpn_protocols: ::core::option::Option<AlpnProtocols>,
426 #[prost(bool, optional, tag = "11")]
428 pub strict_sni_binding: ::core::option::Option<bool>,
429 #[prost(bool, optional, tag = "12")]
431 pub disable_http11: ::core::option::Option<bool>,
432 #[prost(uint32, optional, tag = "20")]
436 pub h2_max_rst_stream_per_window: ::core::option::Option<u32>,
437 #[prost(uint32, optional, tag = "21")]
439 pub h2_max_ping_per_window: ::core::option::Option<u32>,
440 #[prost(uint32, optional, tag = "22")]
442 pub h2_max_settings_per_window: ::core::option::Option<u32>,
443 #[prost(uint32, optional, tag = "23")]
445 pub h2_max_empty_data_per_window: ::core::option::Option<u32>,
446 #[prost(uint32, optional, tag = "24")]
448 pub h2_max_continuation_frames: ::core::option::Option<u32>,
449 #[prost(uint32, optional, tag = "25")]
451 pub h2_max_glitch_count: ::core::option::Option<u32>,
452 #[prost(uint32, optional, tag = "26")]
454 pub h2_initial_connection_window: ::core::option::Option<u32>,
455 #[prost(uint32, optional, tag = "27")]
457 pub h2_max_concurrent_streams: ::core::option::Option<u32>,
458 #[prost(uint32, optional, tag = "28")]
460 pub h2_stream_shrink_ratio: ::core::option::Option<u32>,
461 #[prost(uint64, optional, tag = "29")]
463 pub h2_max_rst_stream_lifetime: ::core::option::Option<u64>,
464 #[prost(uint64, optional, tag = "30")]
466 pub h2_max_rst_stream_abusive_lifetime: ::core::option::Option<u64>,
467 #[prost(uint64, optional, tag = "31")]
469 pub h2_max_rst_stream_emitted_lifetime: ::core::option::Option<u64>,
470 #[prost(uint32, optional, tag = "32")]
472 pub h2_max_header_list_size: ::core::option::Option<u32>,
473 #[prost(uint32, optional, tag = "33")]
475 pub h2_max_header_table_size: ::core::option::Option<u32>,
476 #[prost(uint32, optional, tag = "34")]
478 pub h2_stream_idle_timeout_seconds: ::core::option::Option<u32>,
479 #[prost(uint32, optional, tag = "35")]
481 pub h2_graceful_shutdown_deadline_seconds: ::core::option::Option<u32>,
482 #[prost(uint32, optional, tag = "36")]
484 pub h2_max_window_update_stream0_per_window: ::core::option::Option<u32>,
485 #[prost(string, optional, tag = "37")]
487 pub sozu_id_header: ::core::option::Option<::prost::alloc::string::String>,
488 #[prost(btree_map = "string, string", tag = "38")]
494 pub answers: ::prost::alloc::collections::BTreeMap<
495 ::prost::alloc::string::String,
496 ::prost::alloc::string::String,
497 >,
498 #[prost(bool, optional, tag = "39")]
501 pub elide_x_real_ip: ::core::option::Option<bool>,
502 #[prost(bool, optional, tag = "40")]
505 pub send_x_real_ip: ::core::option::Option<bool>,
506 #[prost(message, optional, tag = "41")]
514 pub hsts: ::core::option::Option<HstsConfig>,
515}
516#[derive(::serde::Serialize, ::serde::Deserialize)]
521#[derive(Ord, PartialOrd)]
522#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
523pub struct UpdateTcpListenerConfig {
524 #[prost(message, required, tag = "1")]
526 pub address: SocketAddress,
527 #[prost(message, optional, tag = "2")]
528 pub public_address: ::core::option::Option<SocketAddress>,
529 #[prost(bool, optional, tag = "3")]
530 pub expect_proxy: ::core::option::Option<bool>,
531 #[prost(uint32, optional, tag = "4")]
533 pub front_timeout: ::core::option::Option<u32>,
534 #[prost(uint32, optional, tag = "5")]
536 pub back_timeout: ::core::option::Option<u32>,
537 #[prost(uint32, optional, tag = "6")]
539 pub connect_timeout: ::core::option::Option<u32>,
540}
541#[derive(::serde::Serialize, ::serde::Deserialize)]
543#[derive(Ord, PartialOrd)]
544#[derive(Hash, Eq)]
545#[derive(Clone, PartialEq, ::prost::Message)]
546pub struct HttpListenerConfig {
547 #[prost(message, required, tag = "1")]
548 pub address: SocketAddress,
549 #[prost(message, optional, tag = "2")]
550 pub public_address: ::core::option::Option<SocketAddress>,
551 #[prost(bool, required, tag = "5", default = "false")]
552 pub expect_proxy: bool,
553 #[prost(string, required, tag = "6")]
554 pub sticky_name: ::prost::alloc::string::String,
555 #[prost(uint32, required, tag = "7", default = "60")]
557 pub front_timeout: u32,
558 #[prost(uint32, required, tag = "8", default = "30")]
560 pub back_timeout: u32,
561 #[prost(uint32, required, tag = "9", default = "3")]
563 pub connect_timeout: u32,
564 #[prost(uint32, required, tag = "10", default = "10")]
566 pub request_timeout: u32,
567 #[prost(bool, required, tag = "11", default = "false")]
569 pub active: bool,
570 #[prost(message, optional, tag = "12")]
574 pub http_answers: ::core::option::Option<CustomHttpAnswers>,
575 #[prost(uint32, optional, tag = "13")]
579 pub h2_max_rst_stream_per_window: ::core::option::Option<u32>,
580 #[prost(uint32, optional, tag = "14")]
582 pub h2_max_ping_per_window: ::core::option::Option<u32>,
583 #[prost(uint32, optional, tag = "15")]
585 pub h2_max_settings_per_window: ::core::option::Option<u32>,
586 #[prost(uint32, optional, tag = "16")]
588 pub h2_max_empty_data_per_window: ::core::option::Option<u32>,
589 #[prost(uint32, optional, tag = "17")]
591 pub h2_max_continuation_frames: ::core::option::Option<u32>,
592 #[prost(uint32, optional, tag = "18")]
594 pub h2_max_glitch_count: ::core::option::Option<u32>,
595 #[prost(uint32, optional, tag = "19")]
599 pub h2_initial_connection_window: ::core::option::Option<u32>,
600 #[prost(uint32, optional, tag = "20")]
603 pub h2_max_concurrent_streams: ::core::option::Option<u32>,
604 #[prost(uint32, optional, tag = "21")]
607 pub h2_stream_shrink_ratio: ::core::option::Option<u32>,
608 #[prost(uint64, optional, tag = "22")]
611 pub h2_max_rst_stream_lifetime: ::core::option::Option<u64>,
612 #[prost(uint64, optional, tag = "23")]
616 pub h2_max_rst_stream_abusive_lifetime: ::core::option::Option<u64>,
617 #[prost(uint64, optional, tag = "27")]
625 pub h2_max_rst_stream_emitted_lifetime: ::core::option::Option<u64>,
626 #[prost(uint32, optional, tag = "24")]
629 pub h2_max_header_list_size: ::core::option::Option<u32>,
630 #[prost(uint32, optional, tag = "25")]
638 pub h2_stream_idle_timeout_seconds: ::core::option::Option<u32>,
639 #[prost(uint32, optional, tag = "26")]
643 pub h2_max_header_table_size: ::core::option::Option<u32>,
644 #[prost(uint32, optional, tag = "28")]
648 pub h2_graceful_shutdown_deadline_seconds: ::core::option::Option<u32>,
649 #[prost(uint32, optional, tag = "29")]
654 pub h2_max_window_update_stream0_per_window: ::core::option::Option<u32>,
655 #[prost(string, optional, tag = "30")]
659 pub sozu_id_header: ::core::option::Option<::prost::alloc::string::String>,
660 #[prost(btree_map = "string, string", tag = "31")]
665 #[serde(default)]
666 pub answers: ::prost::alloc::collections::BTreeMap<
667 ::prost::alloc::string::String,
668 ::prost::alloc::string::String,
669 >,
670 #[prost(bool, optional, tag = "32", default = "false")]
674 pub elide_x_real_ip: ::core::option::Option<bool>,
675 #[prost(bool, optional, tag = "33", default = "false")]
680 pub send_x_real_ip: ::core::option::Option<bool>,
681}
682#[derive(::serde::Serialize, ::serde::Deserialize)]
684#[derive(Ord, PartialOrd)]
685#[derive(Hash, Eq)]
686#[derive(Clone, PartialEq, ::prost::Message)]
687pub struct HttpsListenerConfig {
688 #[prost(message, required, tag = "1")]
689 pub address: SocketAddress,
690 #[prost(message, optional, tag = "2")]
691 pub public_address: ::core::option::Option<SocketAddress>,
692 #[prost(bool, required, tag = "5", default = "false")]
693 pub expect_proxy: bool,
694 #[prost(string, required, tag = "6")]
695 pub sticky_name: ::prost::alloc::string::String,
696 #[prost(uint32, required, tag = "7", default = "60")]
698 pub front_timeout: u32,
699 #[prost(uint32, required, tag = "8", default = "30")]
701 pub back_timeout: u32,
702 #[prost(uint32, required, tag = "9", default = "3")]
704 pub connect_timeout: u32,
705 #[prost(uint32, required, tag = "10", default = "10")]
707 pub request_timeout: u32,
708 #[prost(bool, required, tag = "11", default = "false")]
710 pub active: bool,
711 #[prost(enumeration = "TlsVersion", repeated, packed = "false", tag = "12")]
713 pub versions: ::prost::alloc::vec::Vec<i32>,
714 #[prost(string, repeated, tag = "13")]
715 pub cipher_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
716 #[prost(string, repeated, tag = "14")]
717 pub cipher_suites: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
718 #[prost(string, repeated, tag = "15")]
719 pub signature_algorithms: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
720 #[prost(string, repeated, tag = "16")]
721 pub groups_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
722 #[prost(string, optional, tag = "17")]
723 pub certificate: ::core::option::Option<::prost::alloc::string::String>,
724 #[prost(string, repeated, tag = "18")]
725 pub certificate_chain: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
726 #[prost(string, optional, tag = "19")]
727 pub key: ::core::option::Option<::prost::alloc::string::String>,
728 #[prost(uint64, required, tag = "20")]
732 pub send_tls13_tickets: u64,
733 #[prost(message, optional, tag = "21")]
737 pub http_answers: ::core::option::Option<CustomHttpAnswers>,
738 #[prost(string, repeated, tag = "22")]
741 #[serde(default)]
742 pub alpn_protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
743 #[prost(uint32, optional, tag = "23")]
747 pub h2_max_rst_stream_per_window: ::core::option::Option<u32>,
748 #[prost(uint32, optional, tag = "24")]
750 pub h2_max_ping_per_window: ::core::option::Option<u32>,
751 #[prost(uint32, optional, tag = "25")]
753 pub h2_max_settings_per_window: ::core::option::Option<u32>,
754 #[prost(uint32, optional, tag = "26")]
756 pub h2_max_empty_data_per_window: ::core::option::Option<u32>,
757 #[prost(uint32, optional, tag = "27")]
759 pub h2_max_continuation_frames: ::core::option::Option<u32>,
760 #[prost(uint32, optional, tag = "28")]
762 pub h2_max_glitch_count: ::core::option::Option<u32>,
763 #[prost(uint32, optional, tag = "29")]
767 pub h2_initial_connection_window: ::core::option::Option<u32>,
768 #[prost(uint32, optional, tag = "30")]
771 pub h2_max_concurrent_streams: ::core::option::Option<u32>,
772 #[prost(uint32, optional, tag = "31")]
775 pub h2_stream_shrink_ratio: ::core::option::Option<u32>,
776 #[prost(uint64, optional, tag = "32")]
779 pub h2_max_rst_stream_lifetime: ::core::option::Option<u64>,
780 #[prost(uint64, optional, tag = "33")]
784 pub h2_max_rst_stream_abusive_lifetime: ::core::option::Option<u64>,
785 #[prost(uint64, optional, tag = "39")]
793 pub h2_max_rst_stream_emitted_lifetime: ::core::option::Option<u64>,
794 #[prost(uint32, optional, tag = "34")]
797 pub h2_max_header_list_size: ::core::option::Option<u32>,
798 #[prost(bool, optional, tag = "35")]
804 pub strict_sni_binding: ::core::option::Option<bool>,
805 #[prost(bool, optional, tag = "36")]
811 pub disable_http11: ::core::option::Option<bool>,
812 #[prost(uint32, optional, tag = "37")]
820 pub h2_stream_idle_timeout_seconds: ::core::option::Option<u32>,
821 #[prost(uint32, optional, tag = "38")]
825 pub h2_max_header_table_size: ::core::option::Option<u32>,
826 #[prost(uint32, optional, tag = "40")]
830 pub h2_graceful_shutdown_deadline_seconds: ::core::option::Option<u32>,
831 #[prost(uint32, optional, tag = "41")]
836 pub h2_max_window_update_stream0_per_window: ::core::option::Option<u32>,
837 #[prost(string, optional, tag = "42")]
841 pub sozu_id_header: ::core::option::Option<::prost::alloc::string::String>,
842 #[prost(btree_map = "string, string", tag = "43")]
847 #[serde(default)]
848 pub answers: ::prost::alloc::collections::BTreeMap<
849 ::prost::alloc::string::String,
850 ::prost::alloc::string::String,
851 >,
852 #[prost(bool, optional, tag = "44", default = "false")]
856 pub elide_x_real_ip: ::core::option::Option<bool>,
857 #[prost(bool, optional, tag = "45", default = "false")]
862 pub send_x_real_ip: ::core::option::Option<bool>,
863 #[prost(message, optional, tag = "46")]
870 pub hsts: ::core::option::Option<HstsConfig>,
871}
872#[derive(::serde::Serialize, ::serde::Deserialize)]
874#[derive(Ord, PartialOrd)]
875#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
876pub struct TcpListenerConfig {
877 #[prost(message, required, tag = "1")]
878 pub address: SocketAddress,
879 #[prost(message, optional, tag = "2")]
880 pub public_address: ::core::option::Option<SocketAddress>,
881 #[prost(bool, required, tag = "3", default = "false")]
882 pub expect_proxy: bool,
883 #[prost(uint32, required, tag = "4", default = "60")]
885 pub front_timeout: u32,
886 #[prost(uint32, required, tag = "5", default = "30")]
888 pub back_timeout: u32,
889 #[prost(uint32, required, tag = "6", default = "3")]
891 pub connect_timeout: u32,
892 #[prost(bool, required, tag = "7", default = "false")]
894 pub active: bool,
895}
896#[derive(::serde::Serialize, ::serde::Deserialize)]
916#[derive(Ord, PartialOrd)]
917#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
918pub struct HstsConfig {
919 #[prost(bool, optional, tag = "1")]
923 pub enabled: ::core::option::Option<bool>,
924 #[prost(uint32, optional, tag = "2")]
928 pub max_age: ::core::option::Option<u32>,
929 #[prost(bool, optional, tag = "3")]
931 pub include_subdomains: ::core::option::Option<bool>,
932 #[prost(bool, optional, tag = "4")]
935 pub preload: ::core::option::Option<bool>,
936 #[prost(bool, optional, tag = "5")]
953 pub force_replace_backend: ::core::option::Option<bool>,
954}
955#[derive(::serde::Serialize, ::serde::Deserialize)]
957#[derive(Ord, PartialOrd)]
958#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
959pub struct CustomHttpAnswers {
960 #[prost(string, optional, tag = "1")]
962 pub answer_301: ::core::option::Option<::prost::alloc::string::String>,
963 #[prost(string, optional, tag = "2")]
965 pub answer_400: ::core::option::Option<::prost::alloc::string::String>,
966 #[prost(string, optional, tag = "3")]
968 pub answer_401: ::core::option::Option<::prost::alloc::string::String>,
969 #[prost(string, optional, tag = "4")]
971 pub answer_404: ::core::option::Option<::prost::alloc::string::String>,
972 #[prost(string, optional, tag = "5")]
974 pub answer_408: ::core::option::Option<::prost::alloc::string::String>,
975 #[prost(string, optional, tag = "6")]
977 pub answer_413: ::core::option::Option<::prost::alloc::string::String>,
978 #[prost(string, optional, tag = "11")]
980 pub answer_421: ::core::option::Option<::prost::alloc::string::String>,
981 #[prost(string, optional, tag = "7")]
983 pub answer_502: ::core::option::Option<::prost::alloc::string::String>,
984 #[prost(string, optional, tag = "8")]
986 pub answer_503: ::core::option::Option<::prost::alloc::string::String>,
987 #[prost(string, optional, tag = "9")]
989 pub answer_504: ::core::option::Option<::prost::alloc::string::String>,
990 #[prost(string, optional, tag = "10")]
992 pub answer_507: ::core::option::Option<::prost::alloc::string::String>,
993 #[prost(string, optional, tag = "12")]
995 pub answer_429: ::core::option::Option<::prost::alloc::string::String>,
996}
997#[derive(::serde::Serialize, ::serde::Deserialize)]
998#[derive(Ord, PartialOrd)]
999#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1000pub struct ActivateListener {
1001 #[prost(message, required, tag = "1")]
1002 pub address: SocketAddress,
1003 #[prost(enumeration = "ListenerType", required, tag = "2")]
1004 pub proxy: i32,
1005 #[prost(bool, required, tag = "3")]
1006 pub from_scm: bool,
1007}
1008#[derive(::serde::Serialize, ::serde::Deserialize)]
1009#[derive(Ord, PartialOrd)]
1010#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1011pub struct DeactivateListener {
1012 #[prost(message, required, tag = "1")]
1013 pub address: SocketAddress,
1014 #[prost(enumeration = "ListenerType", required, tag = "2")]
1015 pub proxy: i32,
1016 #[prost(bool, required, tag = "3")]
1017 pub to_scm: bool,
1018}
1019#[derive(::serde::Serialize, ::serde::Deserialize)]
1020#[derive(Ord, PartialOrd)]
1021#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1022pub struct RemoveListener {
1023 #[prost(message, required, tag = "1")]
1024 pub address: SocketAddress,
1025 #[prost(enumeration = "ListenerType", required, tag = "2")]
1026 pub proxy: i32,
1027}
1028#[derive(::serde::Serialize, ::serde::Deserialize)]
1030#[derive(Ord, PartialOrd)]
1031#[derive(Hash, Eq)]
1032#[derive(Clone, PartialEq, ::prost::Message)]
1033pub struct ListenersList {
1034 #[prost(btree_map = "string, message", tag = "1")]
1036 pub http_listeners: ::prost::alloc::collections::BTreeMap<
1037 ::prost::alloc::string::String,
1038 HttpListenerConfig,
1039 >,
1040 #[prost(btree_map = "string, message", tag = "2")]
1042 pub https_listeners: ::prost::alloc::collections::BTreeMap<
1043 ::prost::alloc::string::String,
1044 HttpsListenerConfig,
1045 >,
1046 #[prost(btree_map = "string, message", tag = "3")]
1048 pub tcp_listeners: ::prost::alloc::collections::BTreeMap<
1049 ::prost::alloc::string::String,
1050 TcpListenerConfig,
1051 >,
1052}
1053#[derive(::serde::Serialize, ::serde::Deserialize)]
1059#[derive(Ord, PartialOrd)]
1060#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1061pub struct Header {
1062 #[prost(enumeration = "HeaderPosition", required, tag = "1")]
1063 pub position: i32,
1064 #[prost(string, required, tag = "2")]
1065 pub key: ::prost::alloc::string::String,
1066 #[prost(string, required, tag = "3")]
1068 pub val: ::prost::alloc::string::String,
1069}
1070#[derive(::serde::Serialize, ::serde::Deserialize)]
1072#[derive(Ord, PartialOrd)]
1073#[derive(Hash, Eq)]
1074#[derive(Clone, PartialEq, ::prost::Message)]
1075pub struct RequestHttpFrontend {
1076 #[prost(string, optional, tag = "1")]
1077 pub cluster_id: ::core::option::Option<::prost::alloc::string::String>,
1078 #[prost(message, required, tag = "2")]
1079 pub address: SocketAddress,
1080 #[prost(string, required, tag = "3")]
1081 pub hostname: ::prost::alloc::string::String,
1082 #[prost(message, required, tag = "4")]
1083 pub path: PathRule,
1084 #[prost(string, optional, tag = "5")]
1085 pub method: ::core::option::Option<::prost::alloc::string::String>,
1086 #[prost(enumeration = "RulePosition", required, tag = "6", default = "Tree")]
1087 pub position: i32,
1088 #[prost(btree_map = "string, string", tag = "7")]
1090 pub tags: ::prost::alloc::collections::BTreeMap<
1091 ::prost::alloc::string::String,
1092 ::prost::alloc::string::String,
1093 >,
1094 #[prost(enumeration = "RedirectPolicy", optional, tag = "8", default = "Forward")]
1096 pub redirect: ::core::option::Option<i32>,
1097 #[prost(bool, optional, tag = "9")]
1101 pub required_auth: ::core::option::Option<bool>,
1102 #[prost(enumeration = "RedirectScheme", optional, tag = "10", default = "UseSame")]
1105 pub redirect_scheme: ::core::option::Option<i32>,
1106 #[prost(string, optional, tag = "11")]
1109 pub redirect_template: ::core::option::Option<::prost::alloc::string::String>,
1110 #[prost(string, optional, tag = "12")]
1114 pub rewrite_host: ::core::option::Option<::prost::alloc::string::String>,
1115 #[prost(string, optional, tag = "13")]
1117 pub rewrite_path: ::core::option::Option<::prost::alloc::string::String>,
1118 #[prost(uint32, optional, tag = "14")]
1120 pub rewrite_port: ::core::option::Option<u32>,
1121 #[prost(message, repeated, tag = "15")]
1124 #[serde(default)]
1125 pub headers: ::prost::alloc::vec::Vec<Header>,
1126 #[prost(message, optional, tag = "16")]
1136 pub hsts: ::core::option::Option<HstsConfig>,
1137}
1138#[derive(::serde::Serialize, ::serde::Deserialize)]
1139#[derive(Ord, PartialOrd)]
1140#[derive(Hash, Eq)]
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct RequestTcpFrontend {
1143 #[prost(string, required, tag = "1")]
1144 pub cluster_id: ::prost::alloc::string::String,
1145 #[prost(message, required, tag = "2")]
1147 pub address: SocketAddress,
1148 #[prost(btree_map = "string, string", tag = "3")]
1150 pub tags: ::prost::alloc::collections::BTreeMap<
1151 ::prost::alloc::string::String,
1152 ::prost::alloc::string::String,
1153 >,
1154}
1155#[derive(::serde::Serialize, ::serde::Deserialize)]
1157#[derive(Ord, PartialOrd)]
1158#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1159pub struct FrontendFilters {
1160 #[prost(bool, required, tag = "1")]
1161 pub http: bool,
1162 #[prost(bool, required, tag = "2")]
1163 pub https: bool,
1164 #[prost(bool, required, tag = "3")]
1165 pub tcp: bool,
1166 #[prost(string, optional, tag = "4")]
1167 pub domain: ::core::option::Option<::prost::alloc::string::String>,
1168}
1169#[derive(::serde::Serialize, ::serde::Deserialize)]
1171#[derive(Ord, PartialOrd)]
1172#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1173pub struct PathRule {
1174 #[prost(enumeration = "PathRuleKind", required, tag = "1")]
1176 pub kind: i32,
1177 #[prost(string, required, tag = "2")]
1179 pub value: ::prost::alloc::string::String,
1180}
1181#[derive(::serde::Serialize, ::serde::Deserialize)]
1183#[derive(Ord, PartialOrd)]
1184#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1185pub struct AddCertificate {
1186 #[prost(message, required, tag = "1")]
1187 pub address: SocketAddress,
1188 #[prost(message, required, tag = "2")]
1189 pub certificate: CertificateAndKey,
1190 #[prost(int64, optional, tag = "3")]
1192 pub expired_at: ::core::option::Option<i64>,
1193}
1194#[derive(::serde::Serialize, ::serde::Deserialize)]
1195#[derive(Ord, PartialOrd)]
1196#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1197pub struct RemoveCertificate {
1198 #[prost(message, required, tag = "1")]
1199 pub address: SocketAddress,
1200 #[prost(string, required, tag = "2")]
1202 pub fingerprint: ::prost::alloc::string::String,
1203}
1204#[derive(::serde::Serialize, ::serde::Deserialize)]
1205#[derive(Ord, PartialOrd)]
1206#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1207pub struct ReplaceCertificate {
1208 #[prost(message, required, tag = "1")]
1209 pub address: SocketAddress,
1210 #[prost(message, required, tag = "2")]
1211 pub new_certificate: CertificateAndKey,
1212 #[prost(string, required, tag = "3")]
1214 pub old_fingerprint: ::prost::alloc::string::String,
1215 #[prost(int64, optional, tag = "4")]
1217 pub new_expired_at: ::core::option::Option<i64>,
1218}
1219#[derive(::serde::Serialize, ::serde::Deserialize)]
1220#[derive(Ord, PartialOrd)]
1221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1222pub struct CertificateAndKey {
1223 #[prost(string, required, tag = "1")]
1224 pub certificate: ::prost::alloc::string::String,
1225 #[prost(string, repeated, tag = "2")]
1226 pub certificate_chain: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1227 #[prost(string, required, tag = "3")]
1228 pub key: ::prost::alloc::string::String,
1229 #[prost(enumeration = "TlsVersion", repeated, packed = "false", tag = "4")]
1230 pub versions: ::prost::alloc::vec::Vec<i32>,
1231 #[prost(string, repeated, tag = "5")]
1234 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1235}
1236#[derive(::serde::Serialize, ::serde::Deserialize)]
1240#[derive(Ord, PartialOrd)]
1241#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1242pub struct QueryCertificatesFilters {
1243 #[prost(string, optional, tag = "1")]
1245 pub domain: ::core::option::Option<::prost::alloc::string::String>,
1246 #[prost(string, optional, tag = "2")]
1248 pub fingerprint: ::core::option::Option<::prost::alloc::string::String>,
1249}
1250#[derive(::serde::Serialize, ::serde::Deserialize)]
1252#[derive(Ord, PartialOrd)]
1253#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1254pub struct CertificateSummary {
1255 #[prost(string, required, tag = "1")]
1256 pub domain: ::prost::alloc::string::String,
1257 #[prost(string, required, tag = "2")]
1259 pub fingerprint: ::prost::alloc::string::String,
1260}
1261#[derive(::serde::Serialize, ::serde::Deserialize)]
1263#[derive(Ord, PartialOrd)]
1264#[derive(Hash, Eq)]
1265#[derive(Clone, PartialEq, ::prost::Message)]
1266pub struct ListOfCertificatesByAddress {
1267 #[prost(message, repeated, tag = "1")]
1268 pub certificates: ::prost::alloc::vec::Vec<CertificatesByAddress>,
1269}
1270#[derive(::serde::Serialize, ::serde::Deserialize)]
1272#[derive(Ord, PartialOrd)]
1273#[derive(Hash, Eq)]
1274#[derive(Clone, PartialEq, ::prost::Message)]
1275pub struct CertificatesByAddress {
1276 #[prost(message, required, tag = "1")]
1277 pub address: SocketAddress,
1278 #[prost(message, repeated, tag = "2")]
1279 pub certificate_summaries: ::prost::alloc::vec::Vec<CertificateSummary>,
1280}
1281#[derive(::serde::Serialize, ::serde::Deserialize)]
1283#[derive(Ord, PartialOrd)]
1284#[derive(Hash, Eq)]
1285#[derive(Clone, PartialEq, ::prost::Message)]
1286pub struct CertificatesWithFingerprints {
1287 #[prost(btree_map = "string, message", tag = "1")]
1289 pub certs: ::prost::alloc::collections::BTreeMap<
1290 ::prost::alloc::string::String,
1291 CertificateAndKey,
1292 >,
1293}
1294#[derive(::serde::Serialize, ::serde::Deserialize)]
1296#[derive(Ord, PartialOrd)]
1297#[derive(Hash, Eq)]
1298#[derive(Clone, PartialEq, ::prost::Message)]
1299pub struct Cluster {
1300 #[prost(string, required, tag = "1")]
1301 pub cluster_id: ::prost::alloc::string::String,
1302 #[prost(bool, required, tag = "2")]
1304 pub sticky_session: bool,
1305 #[prost(bool, required, tag = "3")]
1306 pub https_redirect: bool,
1307 #[prost(enumeration = "ProxyProtocolConfig", optional, tag = "4")]
1308 pub proxy_protocol: ::core::option::Option<i32>,
1309 #[prost(
1310 enumeration = "LoadBalancingAlgorithms",
1311 required,
1312 tag = "5",
1313 default = "RoundRobin"
1314 )]
1315 pub load_balancing: i32,
1316 #[prost(string, optional, tag = "6")]
1317 pub answer_503: ::core::option::Option<::prost::alloc::string::String>,
1318 #[prost(enumeration = "LoadMetric", optional, tag = "7")]
1319 pub load_metric: ::core::option::Option<i32>,
1320 #[prost(bool, optional, tag = "8")]
1324 pub http2: ::core::option::Option<bool>,
1325 #[prost(btree_map = "string, string", tag = "9")]
1328 #[serde(default)]
1329 pub answers: ::prost::alloc::collections::BTreeMap<
1330 ::prost::alloc::string::String,
1331 ::prost::alloc::string::String,
1332 >,
1333 #[prost(uint32, optional, tag = "10")]
1338 pub https_redirect_port: ::core::option::Option<u32>,
1339 #[prost(string, repeated, tag = "11")]
1346 #[serde(default)]
1347 pub authorized_hashes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1348 #[prost(string, optional, tag = "12")]
1352 pub www_authenticate: ::core::option::Option<::prost::alloc::string::String>,
1353 #[prost(uint64, optional, tag = "13")]
1360 pub max_connections_per_ip: ::core::option::Option<u64>,
1361 #[prost(uint32, optional, tag = "14")]
1365 pub retry_after: ::core::option::Option<u32>,
1366 #[prost(message, optional, tag = "15")]
1371 pub health_check: ::core::option::Option<HealthCheckConfig>,
1372}
1373#[derive(::serde::Serialize, ::serde::Deserialize)]
1374#[derive(Ord, PartialOrd)]
1375#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1376pub struct HealthCheckConfig {
1377 #[prost(string, required, tag = "1")]
1378 pub uri: ::prost::alloc::string::String,
1379 #[prost(uint32, required, tag = "2", default = "10")]
1380 pub interval: u32,
1381 #[prost(uint32, required, tag = "3", default = "5")]
1382 pub timeout: u32,
1383 #[prost(uint32, required, tag = "4", default = "3")]
1384 pub healthy_threshold: u32,
1385 #[prost(uint32, required, tag = "5", default = "3")]
1386 pub unhealthy_threshold: u32,
1387 #[prost(uint32, required, tag = "6", default = "0")]
1395 pub expected_status: u32,
1396}
1397#[derive(::serde::Serialize, ::serde::Deserialize)]
1399#[derive(Ord, PartialOrd)]
1400#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1401pub struct AddBackend {
1402 #[prost(string, required, tag = "1")]
1403 pub cluster_id: ::prost::alloc::string::String,
1404 #[prost(string, required, tag = "2")]
1405 pub backend_id: ::prost::alloc::string::String,
1406 #[prost(message, required, tag = "3")]
1408 pub address: SocketAddress,
1409 #[prost(string, optional, tag = "4")]
1410 pub sticky_id: ::core::option::Option<::prost::alloc::string::String>,
1411 #[prost(message, optional, tag = "5")]
1412 pub load_balancing_parameters: ::core::option::Option<LoadBalancingParams>,
1413 #[prost(bool, optional, tag = "6")]
1414 pub backup: ::core::option::Option<bool>,
1415}
1416#[derive(::serde::Serialize, ::serde::Deserialize)]
1418#[derive(Ord, PartialOrd)]
1419#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1420pub struct RemoveBackend {
1421 #[prost(string, required, tag = "1")]
1422 pub cluster_id: ::prost::alloc::string::String,
1423 #[prost(string, required, tag = "2")]
1424 pub backend_id: ::prost::alloc::string::String,
1425 #[prost(message, required, tag = "3")]
1427 pub address: SocketAddress,
1428}
1429#[derive(::serde::Serialize, ::serde::Deserialize)]
1430#[derive(Ord, PartialOrd)]
1431#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1432pub struct LoadBalancingParams {
1433 #[prost(int32, required, tag = "1")]
1434 pub weight: i32,
1435}
1436#[derive(::serde::Serialize, ::serde::Deserialize)]
1437#[derive(Ord, PartialOrd)]
1438#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1439pub struct QueryClusterByDomain {
1440 #[prost(string, required, tag = "1")]
1441 pub hostname: ::prost::alloc::string::String,
1442 #[prost(string, optional, tag = "2")]
1443 pub path: ::core::option::Option<::prost::alloc::string::String>,
1444}
1445#[derive(::serde::Serialize, ::serde::Deserialize)]
1447#[derive(Ord, PartialOrd)]
1448#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1449pub struct QueryMetricsOptions {
1450 #[prost(bool, required, tag = "1")]
1452 pub list: bool,
1453 #[prost(string, repeated, tag = "2")]
1455 pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1456 #[prost(string, repeated, tag = "3")]
1458 pub backend_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1459 #[prost(string, repeated, tag = "4")]
1461 pub metric_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1462 #[prost(bool, required, tag = "5")]
1464 pub no_clusters: bool,
1465 #[prost(bool, required, tag = "6")]
1467 pub workers: bool,
1468}
1469#[derive(::serde::Serialize, ::serde::Deserialize)]
1471#[derive(Ord, PartialOrd)]
1472#[derive(Hash, Eq)]
1473#[derive(Clone, PartialEq, ::prost::Message)]
1474pub struct Response {
1475 #[prost(enumeration = "ResponseStatus", required, tag = "1", default = "Failure")]
1477 pub status: i32,
1478 #[prost(string, required, tag = "2")]
1480 pub message: ::prost::alloc::string::String,
1481 #[prost(message, optional, tag = "3")]
1483 pub content: ::core::option::Option<ResponseContent>,
1484}
1485#[derive(::serde::Serialize, ::serde::Deserialize)]
1487#[derive(Ord, PartialOrd)]
1488#[derive(Hash, Eq)]
1489#[derive(Clone, PartialEq, ::prost::Message)]
1490pub struct ResponseContent {
1491 #[prost(
1492 oneof = "response_content::ContentType",
1493 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17"
1494 )]
1495 pub content_type: ::core::option::Option<response_content::ContentType>,
1496}
1497pub mod response_content {
1499 #[derive(::serde::Serialize, ::serde::Deserialize)]
1500 #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
1501 #[derive(Hash, Eq, Ord, PartialOrd)]
1502 #[derive(Clone, PartialEq, ::prost::Oneof)]
1503 pub enum ContentType {
1504 #[prost(message, tag = "1")]
1506 Workers(super::WorkerInfos),
1507 #[prost(message, tag = "2")]
1509 Metrics(super::AggregatedMetrics),
1510 #[prost(message, tag = "3")]
1512 WorkerResponses(super::WorkerResponses),
1513 #[prost(message, tag = "4")]
1515 Event(super::Event),
1516 #[prost(message, tag = "5")]
1518 FrontendList(super::ListedFrontends),
1519 #[prost(message, tag = "6")]
1521 ListenersList(super::ListenersList),
1522 #[prost(message, tag = "7")]
1524 WorkerMetrics(super::WorkerMetrics),
1525 #[prost(message, tag = "8")]
1527 AvailableMetrics(super::AvailableMetrics),
1528 #[prost(message, tag = "9")]
1530 Clusters(super::ClusterInformations),
1531 #[prost(message, tag = "10")]
1533 ClusterHashes(super::ClusterHashes),
1534 #[prost(message, tag = "11")]
1536 CertificatesByAddress(super::ListOfCertificatesByAddress),
1537 #[prost(message, tag = "12")]
1539 CertificatesWithFingerprints(super::CertificatesWithFingerprints),
1540 #[prost(message, tag = "13")]
1542 RequestCounts(super::RequestCounts),
1543 #[prost(message, tag = "14")]
1545 MaxConnectionsPerIpLimit(super::MaxConnectionsPerIpLimit),
1546 #[prost(message, tag = "15")]
1549 HealthChecksList(super::HealthChecksList),
1550 #[prost(message, tag = "16")]
1554 MetricDetailStatus(super::MetricDetailStatus),
1555 #[prost(message, tag = "17")]
1565 WorkerMetricDetailStatus(super::WorkerMetricDetailStatus),
1566 }
1567}
1568#[derive(::serde::Serialize, ::serde::Deserialize)]
1569#[derive(Ord, PartialOrd)]
1570#[derive(Hash, Eq)]
1571#[derive(Clone, PartialEq, ::prost::Message)]
1572pub struct HealthChecksList {
1573 #[prost(btree_map = "string, message", tag = "1")]
1574 pub map: ::prost::alloc::collections::BTreeMap<
1575 ::prost::alloc::string::String,
1576 HealthCheckConfig,
1577 >,
1578}
1579#[derive(::serde::Serialize, ::serde::Deserialize)]
1581#[derive(Ord, PartialOrd)]
1582#[derive(Hash, Eq)]
1583#[derive(Clone, PartialEq, ::prost::Message)]
1584pub struct WorkerResponses {
1585 #[prost(btree_map = "string, message", tag = "1")]
1586 pub map: ::prost::alloc::collections::BTreeMap<
1587 ::prost::alloc::string::String,
1588 ResponseContent,
1589 >,
1590}
1591#[derive(::serde::Serialize, ::serde::Deserialize)]
1593#[derive(Ord, PartialOrd)]
1594#[derive(Hash, Eq)]
1595#[derive(Clone, PartialEq, ::prost::Message)]
1596pub struct ListedFrontends {
1597 #[prost(message, repeated, tag = "1")]
1598 pub http_frontends: ::prost::alloc::vec::Vec<RequestHttpFrontend>,
1599 #[prost(message, repeated, tag = "2")]
1600 pub https_frontends: ::prost::alloc::vec::Vec<RequestHttpFrontend>,
1601 #[prost(message, repeated, tag = "3")]
1602 pub tcp_frontends: ::prost::alloc::vec::Vec<RequestTcpFrontend>,
1603}
1604#[derive(::serde::Serialize, ::serde::Deserialize)]
1605#[derive(Ord, PartialOrd)]
1606#[derive(Hash, Eq)]
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct ClusterInformations {
1609 #[prost(message, repeated, tag = "1")]
1610 pub vec: ::prost::alloc::vec::Vec<ClusterInformation>,
1611}
1612#[derive(::serde::Serialize, ::serde::Deserialize)]
1615#[derive(Ord, PartialOrd)]
1616#[derive(Hash, Eq)]
1617#[derive(Clone, PartialEq, ::prost::Message)]
1618pub struct ClusterInformation {
1619 #[prost(message, optional, tag = "1")]
1620 pub configuration: ::core::option::Option<Cluster>,
1621 #[prost(message, repeated, tag = "2")]
1622 pub http_frontends: ::prost::alloc::vec::Vec<RequestHttpFrontend>,
1623 #[prost(message, repeated, tag = "3")]
1624 pub https_frontends: ::prost::alloc::vec::Vec<RequestHttpFrontend>,
1625 #[prost(message, repeated, tag = "4")]
1626 pub tcp_frontends: ::prost::alloc::vec::Vec<RequestTcpFrontend>,
1627 #[prost(message, repeated, tag = "5")]
1628 pub backends: ::prost::alloc::vec::Vec<AddBackend>,
1629}
1630#[derive(::serde::Serialize, ::serde::Deserialize)]
1632#[derive(Ord, PartialOrd)]
1633#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1634pub struct Event {
1635 #[prost(enumeration = "EventKind", required, tag = "1")]
1636 pub kind: i32,
1637 #[prost(string, optional, tag = "2")]
1638 pub cluster_id: ::core::option::Option<::prost::alloc::string::String>,
1639 #[prost(string, optional, tag = "3")]
1640 pub backend_id: ::core::option::Option<::prost::alloc::string::String>,
1641 #[prost(message, optional, tag = "4")]
1642 pub address: ::core::option::Option<SocketAddress>,
1643 #[prost(message, optional, tag = "5")]
1652 pub metric_detail: ::core::option::Option<MetricDetailTransition>,
1653}
1654#[derive(::serde::Serialize, ::serde::Deserialize)]
1662#[derive(Ord, PartialOrd)]
1663#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1664pub struct MetricDetailTransition {
1665 #[prost(enumeration = "MetricDetail", required, tag = "1")]
1667 pub previous_effective: i32,
1668 #[prost(enumeration = "MetricDetail", required, tag = "2")]
1670 pub effective: i32,
1671 #[prost(string, required, tag = "3")]
1678 pub transition_kind: ::prost::alloc::string::String,
1679 #[prost(string, optional, tag = "4")]
1683 pub client_id: ::core::option::Option<::prost::alloc::string::String>,
1684}
1685#[derive(::serde::Serialize, ::serde::Deserialize)]
1686#[derive(Ord, PartialOrd)]
1687#[derive(Hash, Eq)]
1688#[derive(Clone, PartialEq, ::prost::Message)]
1689pub struct ClusterHashes {
1690 #[prost(btree_map = "string, uint64", tag = "1")]
1692 pub map: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, u64>,
1693}
1694#[derive(::serde::Serialize, ::serde::Deserialize)]
1696#[derive(Ord, PartialOrd)]
1697#[derive(Hash, Eq)]
1698#[derive(Clone, PartialEq, ::prost::Message)]
1699pub struct WorkerInfos {
1700 #[prost(message, repeated, tag = "1")]
1701 pub vec: ::prost::alloc::vec::Vec<WorkerInfo>,
1702}
1703#[derive(::serde::Serialize, ::serde::Deserialize)]
1705#[derive(Ord, PartialOrd)]
1706#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1707pub struct WorkerInfo {
1708 #[prost(uint32, required, tag = "1")]
1709 pub id: u32,
1710 #[prost(int32, required, tag = "2")]
1711 pub pid: i32,
1712 #[prost(enumeration = "RunState", required, tag = "3")]
1713 pub run_state: i32,
1714}
1715#[derive(::serde::Serialize, ::serde::Deserialize)]
1717#[derive(Ord, PartialOrd)]
1718#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1719pub struct AvailableMetrics {
1720 #[prost(string, repeated, tag = "1")]
1721 pub proxy_metrics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1722 #[prost(string, repeated, tag = "2")]
1723 pub cluster_metrics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1724}
1725#[derive(::serde::Serialize, ::serde::Deserialize)]
1727#[derive(Ord, PartialOrd)]
1728#[derive(Hash, Eq)]
1729#[derive(Clone, PartialEq, ::prost::Message)]
1730pub struct AggregatedMetrics {
1731 #[prost(btree_map = "string, message", tag = "1")]
1734 pub main: ::prost::alloc::collections::BTreeMap<
1735 ::prost::alloc::string::String,
1736 FilteredMetrics,
1737 >,
1738 #[prost(btree_map = "string, message", tag = "2")]
1741 pub workers: ::prost::alloc::collections::BTreeMap<
1742 ::prost::alloc::string::String,
1743 WorkerMetrics,
1744 >,
1745 #[prost(btree_map = "string, message", tag = "3")]
1748 pub clusters: ::prost::alloc::collections::BTreeMap<
1749 ::prost::alloc::string::String,
1750 ClusterMetrics,
1751 >,
1752 #[prost(btree_map = "string, message", tag = "4")]
1755 pub proxying: ::prost::alloc::collections::BTreeMap<
1756 ::prost::alloc::string::String,
1757 FilteredMetrics,
1758 >,
1759}
1760#[derive(::serde::Serialize, ::serde::Deserialize)]
1763#[derive(Ord, PartialOrd)]
1764#[derive(Hash, Eq)]
1765#[derive(Clone, PartialEq, ::prost::Message)]
1766pub struct WorkerMetrics {
1767 #[prost(btree_map = "string, message", tag = "1")]
1769 pub proxy: ::prost::alloc::collections::BTreeMap<
1770 ::prost::alloc::string::String,
1771 FilteredMetrics,
1772 >,
1773 #[prost(btree_map = "string, message", tag = "2")]
1775 pub clusters: ::prost::alloc::collections::BTreeMap<
1776 ::prost::alloc::string::String,
1777 ClusterMetrics,
1778 >,
1779}
1780#[derive(::serde::Serialize, ::serde::Deserialize)]
1782#[derive(Ord, PartialOrd)]
1783#[derive(Hash, Eq)]
1784#[derive(Clone, PartialEq, ::prost::Message)]
1785pub struct ClusterMetrics {
1786 #[prost(btree_map = "string, message", tag = "1")]
1788 pub cluster: ::prost::alloc::collections::BTreeMap<
1789 ::prost::alloc::string::String,
1790 FilteredMetrics,
1791 >,
1792 #[prost(message, repeated, tag = "2")]
1794 pub backends: ::prost::alloc::vec::Vec<BackendMetrics>,
1795}
1796#[derive(::serde::Serialize, ::serde::Deserialize)]
1797#[derive(Ord, PartialOrd)]
1798#[derive(Hash, Eq)]
1799#[derive(Clone, PartialEq, ::prost::Message)]
1800pub struct BackendMetrics {
1801 #[prost(string, required, tag = "1")]
1802 pub backend_id: ::prost::alloc::string::String,
1803 #[prost(btree_map = "string, message", tag = "2")]
1804 pub metrics: ::prost::alloc::collections::BTreeMap<
1805 ::prost::alloc::string::String,
1806 FilteredMetrics,
1807 >,
1808}
1809#[derive(::serde::Serialize, ::serde::Deserialize)]
1811#[derive(Ord, PartialOrd)]
1812#[derive(Hash, Eq)]
1813#[derive(Clone, PartialEq, ::prost::Message)]
1814pub struct FilteredMetrics {
1815 #[prost(oneof = "filtered_metrics::Inner", tags = "1, 2, 3, 4, 5, 6")]
1816 pub inner: ::core::option::Option<filtered_metrics::Inner>,
1817}
1818pub mod filtered_metrics {
1820 #[derive(::serde::Serialize, ::serde::Deserialize)]
1821 #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
1822 #[derive(Hash, Eq, Ord, PartialOrd)]
1823 #[derive(Clone, PartialEq, ::prost::Oneof)]
1824 pub enum Inner {
1825 #[prost(uint64, tag = "1")]
1827 Gauge(u64),
1828 #[prost(int64, tag = "2")]
1830 Count(i64),
1831 #[prost(uint64, tag = "3")]
1833 Time(u64),
1834 #[prost(message, tag = "4")]
1835 Percentiles(super::Percentiles),
1836 #[prost(message, tag = "5")]
1837 TimeSerie(super::FilteredTimeSerie),
1838 #[prost(message, tag = "6")]
1839 Histogram(super::FilteredHistogram),
1840 }
1841}
1842#[derive(::serde::Serialize, ::serde::Deserialize)]
1843#[derive(Ord, PartialOrd)]
1844#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1845pub struct FilteredTimeSerie {
1846 #[prost(uint32, required, tag = "1")]
1847 pub last_second: u32,
1848 #[prost(uint32, repeated, packed = "false", tag = "2")]
1849 pub last_minute: ::prost::alloc::vec::Vec<u32>,
1850 #[prost(uint32, repeated, packed = "false", tag = "3")]
1851 pub last_hour: ::prost::alloc::vec::Vec<u32>,
1852}
1853#[derive(::serde::Serialize, ::serde::Deserialize)]
1854#[derive(Ord, PartialOrd)]
1855#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1856pub struct Percentiles {
1857 #[prost(uint64, required, tag = "1")]
1858 pub samples: u64,
1859 #[prost(uint64, required, tag = "2")]
1860 pub p_50: u64,
1861 #[prost(uint64, required, tag = "3")]
1862 pub p_90: u64,
1863 #[prost(uint64, required, tag = "4")]
1864 pub p_99: u64,
1865 #[prost(uint64, required, tag = "5")]
1866 pub p_99_9: u64,
1867 #[prost(uint64, required, tag = "6")]
1868 pub p_99_99: u64,
1869 #[prost(uint64, required, tag = "7")]
1870 pub p_99_999: u64,
1871 #[prost(uint64, required, tag = "8")]
1872 pub p_100: u64,
1873 #[prost(uint64, required, tag = "9")]
1874 pub sum: u64,
1875}
1876#[derive(::serde::Serialize, ::serde::Deserialize)]
1878#[derive(Ord, PartialOrd)]
1879#[derive(Hash, Eq)]
1880#[derive(Clone, PartialEq, ::prost::Message)]
1881pub struct FilteredHistogram {
1882 #[prost(uint64, required, tag = "1")]
1883 pub sum: u64,
1884 #[prost(uint64, required, tag = "2")]
1885 pub count: u64,
1886 #[prost(message, repeated, tag = "3")]
1887 pub buckets: ::prost::alloc::vec::Vec<Bucket>,
1888}
1889#[derive(::serde::Serialize, ::serde::Deserialize)]
1891#[derive(Ord, PartialOrd)]
1892#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1893pub struct Bucket {
1894 #[prost(uint64, required, tag = "1")]
1895 pub count: u64,
1896 #[prost(uint64, required, tag = "2")]
1898 pub le: u64,
1899}
1900#[derive(::serde::Serialize, ::serde::Deserialize)]
1901#[derive(Ord, PartialOrd)]
1902#[derive(Hash, Eq)]
1903#[derive(Clone, PartialEq, ::prost::Message)]
1904pub struct RequestCounts {
1905 #[prost(btree_map = "string, int32", tag = "1")]
1906 pub map: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, i32>,
1907}
1908#[derive(::serde::Serialize, ::serde::Deserialize)]
1911#[derive(Ord, PartialOrd)]
1912#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1913pub struct MaxConnectionsPerIpLimit {
1914 #[prost(uint64, required, tag = "1")]
1915 pub limit: u64,
1916}
1917#[derive(::serde::Serialize, ::serde::Deserialize)]
1921#[derive(Ord, PartialOrd)]
1922#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1923pub struct SocketAddress {
1924 #[prost(message, required, tag = "1")]
1925 pub ip: IpAddress,
1926 #[prost(uint32, required, tag = "2")]
1927 pub port: u32,
1928}
1929#[derive(::serde::Serialize, ::serde::Deserialize)]
1930#[derive(Ord, PartialOrd)]
1931#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1932pub struct IpAddress {
1933 #[prost(oneof = "ip_address::Inner", tags = "1, 2")]
1934 pub inner: ::core::option::Option<ip_address::Inner>,
1935}
1936pub mod ip_address {
1938 #[derive(::serde::Serialize, ::serde::Deserialize)]
1939 #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
1940 #[derive(Ord, PartialOrd)]
1941 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
1942 pub enum Inner {
1943 #[prost(fixed32, tag = "1")]
1944 V4(u32),
1945 #[prost(message, tag = "2")]
1946 V6(super::Uint128),
1947 }
1948}
1949#[derive(::serde::Serialize, ::serde::Deserialize)]
1951#[derive(Ord, PartialOrd)]
1952#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1953pub struct Uint128 {
1954 #[prost(uint64, required, tag = "1")]
1956 pub low: u64,
1957 #[prost(uint64, required, tag = "2")]
1959 pub high: u64,
1960}
1961#[derive(::serde::Serialize, ::serde::Deserialize)]
1963#[derive(Ord, PartialOrd)]
1964#[derive(Hash, Eq)]
1965#[derive(Clone, PartialEq, ::prost::Message)]
1966pub struct WorkerRequest {
1967 #[prost(string, required, tag = "1")]
1968 pub id: ::prost::alloc::string::String,
1969 #[prost(message, required, tag = "2")]
1970 pub content: Request,
1971}
1972#[derive(::serde::Serialize, ::serde::Deserialize)]
1974#[derive(Ord, PartialOrd)]
1975#[derive(Hash, Eq)]
1976#[derive(Clone, PartialEq, ::prost::Message)]
1977pub struct WorkerResponse {
1978 #[prost(string, required, tag = "1")]
1979 pub id: ::prost::alloc::string::String,
1980 #[prost(enumeration = "ResponseStatus", required, tag = "2")]
1981 pub status: i32,
1982 #[prost(string, required, tag = "3")]
1984 pub message: ::prost::alloc::string::String,
1985 #[prost(message, optional, tag = "4")]
1986 pub content: ::core::option::Option<ResponseContent>,
1987}
1988#[derive(::serde::Serialize, ::serde::Deserialize)]
2034#[derive(Ord, PartialOrd)]
2035#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2036pub struct SetMetricDetail {
2037 #[prost(string, required, tag = "1")]
2041 pub client_id: ::prost::alloc::string::String,
2042 #[prost(enumeration = "MetricDetail", optional, tag = "2")]
2044 pub detail: ::core::option::Option<i32>,
2045 #[prost(uint32, optional, tag = "3")]
2050 pub ttl_seconds: ::core::option::Option<u32>,
2051 #[prost(bool, optional, tag = "4")]
2054 pub clear: ::core::option::Option<bool>,
2055 #[prost(string, optional, tag = "5")]
2058 pub reason: ::core::option::Option<::prost::alloc::string::String>,
2059 #[prost(int32, optional, tag = "6")]
2071 pub peer_pid: ::core::option::Option<i32>,
2072 #[prost(string, optional, tag = "7")]
2073 pub peer_session_ulid: ::core::option::Option<::prost::alloc::string::String>,
2074}
2075#[derive(::serde::Serialize, ::serde::Deserialize)]
2080#[derive(Ord, PartialOrd)]
2081#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2082pub struct WorkerMetricDetailStatus {
2083 #[prost(enumeration = "MetricDetail", required, tag = "1")]
2086 pub configured: i32,
2087 #[prost(enumeration = "MetricDetail", required, tag = "2")]
2089 pub effective: i32,
2090 #[prost(enumeration = "MetricDetail", required, tag = "3")]
2092 pub previous_effective: i32,
2093 #[prost(uint32, required, tag = "4")]
2096 pub active_lease_count: u32,
2097}
2098#[derive(::serde::Serialize, ::serde::Deserialize)]
2102#[derive(Ord, PartialOrd)]
2103#[derive(Hash, Eq)]
2104#[derive(Clone, PartialEq, ::prost::Message)]
2105pub struct MetricDetailStatus {
2106 #[prost(enumeration = "MetricDetail", required, tag = "1")]
2109 pub configured: i32,
2110 #[prost(enumeration = "MetricDetail", required, tag = "2")]
2112 pub effective: i32,
2113 #[prost(enumeration = "MetricDetail", required, tag = "3")]
2115 pub previous_effective: i32,
2116 #[prost(btree_map = "string, message", tag = "4")]
2119 pub workers: ::prost::alloc::collections::BTreeMap<
2120 ::prost::alloc::string::String,
2121 WorkerMetricDetailStatus,
2122 >,
2123}
2124#[derive(::serde::Serialize, ::serde::Deserialize)]
2126#[derive(Ord, PartialOrd)]
2127#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2128pub struct ServerMetricsConfig {
2129 #[prost(string, required, tag = "1")]
2130 pub address: ::prost::alloc::string::String,
2131 #[prost(bool, required, tag = "2")]
2132 pub tagged_metrics: bool,
2133 #[prost(string, optional, tag = "3")]
2134 pub prefix: ::core::option::Option<::prost::alloc::string::String>,
2135 #[prost(enumeration = "MetricDetail", optional, tag = "4")]
2138 pub detail: ::core::option::Option<i32>,
2139}
2140#[derive(::serde::Serialize, ::serde::Deserialize)]
2143#[derive(Ord, PartialOrd)]
2144#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2145pub struct ServerConfig {
2146 #[prost(uint64, required, tag = "1", default = "10000")]
2147 pub max_connections: u64,
2148 #[prost(uint32, required, tag = "2", default = "60")]
2149 pub front_timeout: u32,
2150 #[prost(uint32, required, tag = "3", default = "30")]
2151 pub back_timeout: u32,
2152 #[prost(uint32, required, tag = "4", default = "3")]
2153 pub connect_timeout: u32,
2154 #[prost(uint32, required, tag = "5", default = "1800")]
2155 pub zombie_check_interval: u32,
2156 #[prost(uint32, required, tag = "6", default = "60")]
2157 pub accept_queue_timeout: u32,
2158 #[prost(uint64, required, tag = "7", default = "1")]
2159 pub min_buffers: u64,
2160 #[prost(uint64, required, tag = "8", default = "1000")]
2161 pub max_buffers: u64,
2162 #[prost(uint64, required, tag = "9", default = "16393")]
2163 pub buffer_size: u64,
2164 #[prost(string, required, tag = "10", default = "info")]
2165 pub log_level: ::prost::alloc::string::String,
2166 #[prost(string, required, tag = "11", default = "stdout")]
2167 pub log_target: ::prost::alloc::string::String,
2168 #[prost(string, optional, tag = "12")]
2169 pub access_logs_target: ::core::option::Option<::prost::alloc::string::String>,
2170 #[prost(uint64, required, tag = "13", default = "1000000")]
2171 pub command_buffer_size: u64,
2172 #[prost(uint64, required, tag = "14", default = "2000000")]
2173 pub max_command_buffer_size: u64,
2174 #[prost(message, optional, tag = "15")]
2175 pub metrics: ::core::option::Option<ServerMetricsConfig>,
2176 #[prost(enumeration = "ProtobufAccessLogFormat", required, tag = "16")]
2177 pub access_log_format: i32,
2178 #[prost(bool, required, tag = "17")]
2179 pub log_colored: bool,
2180 #[prost(string, optional, tag = "18")]
2186 pub audit_logs_target: ::core::option::Option<::prost::alloc::string::String>,
2187 #[prost(string, optional, tag = "19")]
2190 pub audit_logs_json_target: ::core::option::Option<::prost::alloc::string::String>,
2191 #[prost(uint64, optional, tag = "20")]
2199 pub slab_entries_per_connection: ::core::option::Option<u64>,
2200 #[prost(uint64, optional, tag = "21")]
2210 pub basic_auth_max_credential_bytes: ::core::option::Option<u64>,
2211 #[prost(bool, optional, tag = "22", default = "false")]
2215 pub evict_on_queue_full: ::core::option::Option<bool>,
2216 #[prost(uint64, optional, tag = "23", default = "0")]
2224 pub max_connections_per_ip: ::core::option::Option<u64>,
2225 #[prost(uint32, optional, tag = "24", default = "60")]
2232 pub retry_after: ::core::option::Option<u32>,
2233 #[prost(uint64, optional, tag = "25")]
2245 pub splice_pipe_capacity_bytes: ::core::option::Option<u64>,
2246}
2247#[derive(::serde::Serialize, ::serde::Deserialize)]
2249#[derive(Ord, PartialOrd)]
2250#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2251pub struct ListenersCount {
2252 #[prost(string, repeated, tag = "1")]
2254 pub http: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2255 #[prost(string, repeated, tag = "2")]
2257 pub tls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2258 #[prost(string, repeated, tag = "3")]
2260 pub tcp: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2261}
2262#[derive(::serde::Serialize, ::serde::Deserialize)]
2265#[derive(Ord, PartialOrd)]
2266#[derive(Hash, Eq)]
2267#[derive(Clone, PartialEq, ::prost::Message)]
2268pub struct InitialState {
2269 #[prost(message, repeated, tag = "1")]
2270 pub requests: ::prost::alloc::vec::Vec<WorkerRequest>,
2271}
2272#[derive(::serde::Serialize, ::serde::Deserialize)]
2273#[derive(Ord, PartialOrd)]
2274#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2275pub struct OpenTelemetry {
2276 #[prost(string, required, tag = "1")]
2277 pub trace_id: ::prost::alloc::string::String,
2278 #[prost(string, required, tag = "2")]
2279 pub span_id: ::prost::alloc::string::String,
2280 #[prost(string, optional, tag = "3")]
2281 pub parent_span_id: ::core::option::Option<::prost::alloc::string::String>,
2282}
2283#[derive(::serde::Serialize, ::serde::Deserialize)]
2285#[derive(Ord, PartialOrd)]
2286#[derive(Hash, Eq)]
2287#[derive(Clone, PartialEq, ::prost::Message)]
2288pub struct ProtobufAccessLog {
2289 #[prost(string, optional, tag = "1")]
2291 pub message: ::core::option::Option<::prost::alloc::string::String>,
2292 #[prost(message, required, tag = "2")]
2294 pub request_id: Uint128,
2295 #[prost(string, optional, tag = "3")]
2297 pub cluster_id: ::core::option::Option<::prost::alloc::string::String>,
2298 #[prost(string, optional, tag = "4")]
2300 pub backend_id: ::core::option::Option<::prost::alloc::string::String>,
2301 #[prost(message, optional, tag = "5")]
2303 pub session_address: ::core::option::Option<SocketAddress>,
2304 #[prost(message, optional, tag = "6")]
2306 pub backend_address: ::core::option::Option<SocketAddress>,
2307 #[prost(string, required, tag = "7")]
2309 pub protocol: ::prost::alloc::string::String,
2310 #[prost(message, required, tag = "8")]
2312 pub endpoint: ProtobufEndpoint,
2313 #[prost(uint64, optional, tag = "9")]
2315 pub client_rtt: ::core::option::Option<u64>,
2316 #[prost(uint64, optional, tag = "10")]
2318 pub server_rtt: ::core::option::Option<u64>,
2319 #[prost(uint64, required, tag = "13")]
2321 pub service_time: u64,
2322 #[prost(uint64, required, tag = "14")]
2324 pub bytes_in: u64,
2325 #[prost(uint64, required, tag = "15")]
2327 pub bytes_out: u64,
2328 #[prost(string, optional, tag = "16")]
2330 pub user_agent: ::core::option::Option<::prost::alloc::string::String>,
2331 #[prost(btree_map = "string, string", tag = "17")]
2333 pub tags: ::prost::alloc::collections::BTreeMap<
2334 ::prost::alloc::string::String,
2335 ::prost::alloc::string::String,
2336 >,
2337 #[prost(string, required, tag = "18")]
2339 pub tag: ::prost::alloc::string::String,
2340 #[prost(message, required, tag = "19")]
2342 pub time: Uint128,
2343 #[prost(uint64, optional, tag = "20")]
2347 pub request_time: ::core::option::Option<u64>,
2348 #[prost(uint64, optional, tag = "21")]
2350 pub response_time: ::core::option::Option<u64>,
2351 #[prost(message, optional, tag = "22")]
2353 pub otel: ::core::option::Option<OpenTelemetry>,
2354 #[prost(message, optional, tag = "23")]
2358 pub session_id: ::core::option::Option<Uint128>,
2359 #[prost(string, optional, tag = "24")]
2364 pub x_request_id: ::core::option::Option<::prost::alloc::string::String>,
2365 #[prost(string, optional, tag = "25")]
2369 pub tls_version: ::core::option::Option<::prost::alloc::string::String>,
2370 #[prost(string, optional, tag = "26")]
2375 pub tls_cipher: ::core::option::Option<::prost::alloc::string::String>,
2376 #[prost(string, optional, tag = "27")]
2380 pub tls_sni: ::core::option::Option<::prost::alloc::string::String>,
2381 #[prost(string, optional, tag = "28")]
2384 pub tls_alpn: ::core::option::Option<::prost::alloc::string::String>,
2385 #[prost(string, optional, tag = "29")]
2390 pub xff_chain: ::core::option::Option<::prost::alloc::string::String>,
2391}
2392#[derive(::serde::Serialize, ::serde::Deserialize)]
2393#[derive(Ord, PartialOrd)]
2394#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2395pub struct ProtobufEndpoint {
2396 #[prost(oneof = "protobuf_endpoint::Inner", tags = "1, 2")]
2397 pub inner: ::core::option::Option<protobuf_endpoint::Inner>,
2398}
2399pub mod protobuf_endpoint {
2401 #[derive(::serde::Serialize, ::serde::Deserialize)]
2402 #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2403 #[derive(Ord, PartialOrd)]
2404 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2405 pub enum Inner {
2406 #[prost(message, tag = "1")]
2407 Http(super::HttpEndpoint),
2408 #[prost(message, tag = "2")]
2409 Tcp(super::TcpEndpoint),
2410 }
2411}
2412#[derive(::serde::Serialize, ::serde::Deserialize)]
2413#[derive(Ord, PartialOrd)]
2414#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2415pub struct HttpEndpoint {
2416 #[prost(string, optional, tag = "1")]
2417 pub method: ::core::option::Option<::prost::alloc::string::String>,
2418 #[prost(string, optional, tag = "2")]
2419 pub authority: ::core::option::Option<::prost::alloc::string::String>,
2420 #[prost(string, optional, tag = "3")]
2421 pub path: ::core::option::Option<::prost::alloc::string::String>,
2422 #[prost(uint32, optional, tag = "4")]
2425 pub status: ::core::option::Option<u32>,
2426 #[prost(string, optional, tag = "5")]
2427 pub reason: ::core::option::Option<::prost::alloc::string::String>,
2428}
2429#[derive(::serde::Serialize, ::serde::Deserialize)]
2430#[derive(Ord, PartialOrd)]
2431#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2432pub struct TcpEndpoint {}
2433#[derive(::serde::Serialize, ::serde::Deserialize)]
2434#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2435#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2436#[repr(i32)]
2437pub enum ListenerType {
2438 Http = 0,
2439 Https = 1,
2440 Tcp = 2,
2441}
2442impl ListenerType {
2443 pub fn as_str_name(&self) -> &'static str {
2448 match self {
2449 Self::Http => "HTTP",
2450 Self::Https => "HTTPS",
2451 Self::Tcp => "TCP",
2452 }
2453 }
2454 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2456 match value {
2457 "HTTP" => Some(Self::Http),
2458 "HTTPS" => Some(Self::Https),
2459 "TCP" => Some(Self::Tcp),
2460 _ => None,
2461 }
2462 }
2463}
2464#[derive(::serde::Serialize, ::serde::Deserialize)]
2477#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2478#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2479#[repr(i32)]
2480pub enum RedirectPolicy {
2481 Forward = 0,
2482 Permanent = 1,
2483 Unauthorized = 2,
2484 Found = 3,
2485 PermanentRedirect = 4,
2486}
2487impl RedirectPolicy {
2488 pub fn as_str_name(&self) -> &'static str {
2493 match self {
2494 Self::Forward => "FORWARD",
2495 Self::Permanent => "PERMANENT",
2496 Self::Unauthorized => "UNAUTHORIZED",
2497 Self::Found => "FOUND",
2498 Self::PermanentRedirect => "PERMANENT_REDIRECT",
2499 }
2500 }
2501 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2503 match value {
2504 "FORWARD" => Some(Self::Forward),
2505 "PERMANENT" => Some(Self::Permanent),
2506 "UNAUTHORIZED" => Some(Self::Unauthorized),
2507 "FOUND" => Some(Self::Found),
2508 "PERMANENT_REDIRECT" => Some(Self::PermanentRedirect),
2509 _ => None,
2510 }
2511 }
2512}
2513#[derive(::serde::Serialize, ::serde::Deserialize)]
2517#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2518#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2519#[repr(i32)]
2520pub enum RedirectScheme {
2521 UseSame = 0,
2522 UseHttp = 1,
2523 UseHttps = 2,
2524}
2525impl RedirectScheme {
2526 pub fn as_str_name(&self) -> &'static str {
2531 match self {
2532 Self::UseSame => "USE_SAME",
2533 Self::UseHttp => "USE_HTTP",
2534 Self::UseHttps => "USE_HTTPS",
2535 }
2536 }
2537 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2539 match value {
2540 "USE_SAME" => Some(Self::UseSame),
2541 "USE_HTTP" => Some(Self::UseHttp),
2542 "USE_HTTPS" => Some(Self::UseHttps),
2543 _ => None,
2544 }
2545 }
2546}
2547#[derive(::serde::Serialize, ::serde::Deserialize)]
2552#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2553#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2554#[repr(i32)]
2555pub enum HeaderPosition {
2556 Unspecified = 0,
2562 Request = 1,
2563 Response = 2,
2564 Both = 3,
2565}
2566impl HeaderPosition {
2567 pub fn as_str_name(&self) -> &'static str {
2572 match self {
2573 Self::Unspecified => "HEADER_POSITION_UNSPECIFIED",
2574 Self::Request => "REQUEST",
2575 Self::Response => "RESPONSE",
2576 Self::Both => "BOTH",
2577 }
2578 }
2579 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2581 match value {
2582 "HEADER_POSITION_UNSPECIFIED" => Some(Self::Unspecified),
2583 "REQUEST" => Some(Self::Request),
2584 "RESPONSE" => Some(Self::Response),
2585 "BOTH" => Some(Self::Both),
2586 _ => None,
2587 }
2588 }
2589}
2590#[derive(::serde::Serialize, ::serde::Deserialize)]
2592#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2593#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2594#[repr(i32)]
2595pub enum PathRuleKind {
2596 Prefix = 0,
2598 Regex = 1,
2600 Equals = 2,
2602}
2603impl PathRuleKind {
2604 pub fn as_str_name(&self) -> &'static str {
2609 match self {
2610 Self::Prefix => "PREFIX",
2611 Self::Regex => "REGEX",
2612 Self::Equals => "EQUALS",
2613 }
2614 }
2615 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2617 match value {
2618 "PREFIX" => Some(Self::Prefix),
2619 "REGEX" => Some(Self::Regex),
2620 "EQUALS" => Some(Self::Equals),
2621 _ => None,
2622 }
2623 }
2624}
2625#[derive(::serde::Serialize, ::serde::Deserialize)]
2627#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2628#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2629#[repr(i32)]
2630pub enum RulePosition {
2631 Pre = 0,
2632 Post = 1,
2633 Tree = 2,
2634}
2635impl RulePosition {
2636 pub fn as_str_name(&self) -> &'static str {
2641 match self {
2642 Self::Pre => "PRE",
2643 Self::Post => "POST",
2644 Self::Tree => "TREE",
2645 }
2646 }
2647 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2649 match value {
2650 "PRE" => Some(Self::Pre),
2651 "POST" => Some(Self::Post),
2652 "TREE" => Some(Self::Tree),
2653 _ => None,
2654 }
2655 }
2656}
2657#[derive(::serde::Serialize, ::serde::Deserialize)]
2658#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2659#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2660#[repr(i32)]
2661pub enum TlsVersion {
2662 SslV2 = 0,
2663 SslV3 = 1,
2664 TlsV10 = 2,
2665 TlsV11 = 3,
2666 TlsV12 = 4,
2667 TlsV13 = 5,
2668}
2669impl TlsVersion {
2670 pub fn as_str_name(&self) -> &'static str {
2675 match self {
2676 Self::SslV2 => "SSL_V2",
2677 Self::SslV3 => "SSL_V3",
2678 Self::TlsV10 => "TLS_V1_0",
2679 Self::TlsV11 => "TLS_V1_1",
2680 Self::TlsV12 => "TLS_V1_2",
2681 Self::TlsV13 => "TLS_V1_3",
2682 }
2683 }
2684 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2686 match value {
2687 "SSL_V2" => Some(Self::SslV2),
2688 "SSL_V3" => Some(Self::SslV3),
2689 "TLS_V1_0" => Some(Self::TlsV10),
2690 "TLS_V1_1" => Some(Self::TlsV11),
2691 "TLS_V1_2" => Some(Self::TlsV12),
2692 "TLS_V1_3" => Some(Self::TlsV13),
2693 _ => None,
2694 }
2695 }
2696}
2697#[derive(::serde::Serialize, ::serde::Deserialize)]
2698#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2699#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2700#[repr(i32)]
2701pub enum LoadBalancingAlgorithms {
2702 RoundRobin = 0,
2703 Random = 1,
2704 LeastLoaded = 2,
2705 PowerOfTwo = 3,
2706}
2707impl LoadBalancingAlgorithms {
2708 pub fn as_str_name(&self) -> &'static str {
2713 match self {
2714 Self::RoundRobin => "ROUND_ROBIN",
2715 Self::Random => "RANDOM",
2716 Self::LeastLoaded => "LEAST_LOADED",
2717 Self::PowerOfTwo => "POWER_OF_TWO",
2718 }
2719 }
2720 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2722 match value {
2723 "ROUND_ROBIN" => Some(Self::RoundRobin),
2724 "RANDOM" => Some(Self::Random),
2725 "LEAST_LOADED" => Some(Self::LeastLoaded),
2726 "POWER_OF_TWO" => Some(Self::PowerOfTwo),
2727 _ => None,
2728 }
2729 }
2730}
2731#[derive(::serde::Serialize, ::serde::Deserialize)]
2732#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2733#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2734#[repr(i32)]
2735pub enum ProxyProtocolConfig {
2736 ExpectHeader = 0,
2737 SendHeader = 1,
2738 RelayHeader = 2,
2739}
2740impl ProxyProtocolConfig {
2741 pub fn as_str_name(&self) -> &'static str {
2746 match self {
2747 Self::ExpectHeader => "EXPECT_HEADER",
2748 Self::SendHeader => "SEND_HEADER",
2749 Self::RelayHeader => "RELAY_HEADER",
2750 }
2751 }
2752 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2754 match value {
2755 "EXPECT_HEADER" => Some(Self::ExpectHeader),
2756 "SEND_HEADER" => Some(Self::SendHeader),
2757 "RELAY_HEADER" => Some(Self::RelayHeader),
2758 _ => None,
2759 }
2760 }
2761}
2762#[derive(::serde::Serialize, ::serde::Deserialize)]
2764#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2765#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2766#[repr(i32)]
2767pub enum LoadMetric {
2768 Connections = 0,
2770 Requests = 1,
2772 ConnectionTime = 2,
2774}
2775impl LoadMetric {
2776 pub fn as_str_name(&self) -> &'static str {
2781 match self {
2782 Self::Connections => "CONNECTIONS",
2783 Self::Requests => "REQUESTS",
2784 Self::ConnectionTime => "CONNECTION_TIME",
2785 }
2786 }
2787 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2789 match value {
2790 "CONNECTIONS" => Some(Self::Connections),
2791 "REQUESTS" => Some(Self::Requests),
2792 "CONNECTION_TIME" => Some(Self::ConnectionTime),
2793 _ => None,
2794 }
2795 }
2796}
2797#[derive(::serde::Serialize, ::serde::Deserialize)]
2799#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2800#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2801#[repr(i32)]
2802pub enum MetricsConfiguration {
2803 Enabled = 0,
2805 Disabled = 1,
2807 Clear = 2,
2809}
2810impl MetricsConfiguration {
2811 pub fn as_str_name(&self) -> &'static str {
2816 match self {
2817 Self::Enabled => "ENABLED",
2818 Self::Disabled => "DISABLED",
2819 Self::Clear => "CLEAR",
2820 }
2821 }
2822 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2824 match value {
2825 "ENABLED" => Some(Self::Enabled),
2826 "DISABLED" => Some(Self::Disabled),
2827 "CLEAR" => Some(Self::Clear),
2828 _ => None,
2829 }
2830 }
2831}
2832#[derive(::serde::Serialize, ::serde::Deserialize)]
2833#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2834#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2835#[repr(i32)]
2836pub enum EventKind {
2837 BackendDown = 0,
2838 BackendUp = 1,
2839 NoAvailableBackends = 2,
2840 RemovedBackendHasNoConnections = 3,
2841 ClusterAdded = 4,
2848 ClusterRemoved = 5,
2849 FrontendAdded = 6,
2850 FrontendRemoved = 7,
2851 CertificateAdded = 8,
2852 CertificateRemoved = 9,
2853 CertificateReplaced = 10,
2854 ListenerActivated = 11,
2855 ListenerDeactivated = 12,
2856 ConfigurationReloaded = 13,
2857 WorkerKilled = 14,
2858 WorkerRelaunched = 15,
2859 LoggingLevelChanged = 16,
2860 MetricsConfigured = 17,
2861 ListenerUpdated = 18,
2863 StateLoaded = 19,
2867 StateSaved = 20,
2869 ListenerAdded = 21,
2873 ListenerRemoved = 22,
2877 SozuStopRequested = 23,
2881 MainUpgraded = 24,
2883 WorkerUpgraded = 25,
2885 EventsSubscribed = 26,
2888 HealthCheckHealthy = 27,
2894 HealthCheckUnhealthy = 28,
2896 ClusterRecovered = 29,
2900 MetricDetailChanged = 30,
2914}
2915impl EventKind {
2916 pub fn as_str_name(&self) -> &'static str {
2921 match self {
2922 Self::BackendDown => "BACKEND_DOWN",
2923 Self::BackendUp => "BACKEND_UP",
2924 Self::NoAvailableBackends => "NO_AVAILABLE_BACKENDS",
2925 Self::RemovedBackendHasNoConnections => "REMOVED_BACKEND_HAS_NO_CONNECTIONS",
2926 Self::ClusterAdded => "CLUSTER_ADDED",
2927 Self::ClusterRemoved => "CLUSTER_REMOVED",
2928 Self::FrontendAdded => "FRONTEND_ADDED",
2929 Self::FrontendRemoved => "FRONTEND_REMOVED",
2930 Self::CertificateAdded => "CERTIFICATE_ADDED",
2931 Self::CertificateRemoved => "CERTIFICATE_REMOVED",
2932 Self::CertificateReplaced => "CERTIFICATE_REPLACED",
2933 Self::ListenerActivated => "LISTENER_ACTIVATED",
2934 Self::ListenerDeactivated => "LISTENER_DEACTIVATED",
2935 Self::ConfigurationReloaded => "CONFIGURATION_RELOADED",
2936 Self::WorkerKilled => "WORKER_KILLED",
2937 Self::WorkerRelaunched => "WORKER_RELAUNCHED",
2938 Self::LoggingLevelChanged => "LOGGING_LEVEL_CHANGED",
2939 Self::MetricsConfigured => "METRICS_CONFIGURED",
2940 Self::ListenerUpdated => "LISTENER_UPDATED",
2941 Self::StateLoaded => "STATE_LOADED",
2942 Self::StateSaved => "STATE_SAVED",
2943 Self::ListenerAdded => "LISTENER_ADDED",
2944 Self::ListenerRemoved => "LISTENER_REMOVED",
2945 Self::SozuStopRequested => "SOZU_STOP_REQUESTED",
2946 Self::MainUpgraded => "MAIN_UPGRADED",
2947 Self::WorkerUpgraded => "WORKER_UPGRADED",
2948 Self::EventsSubscribed => "EVENTS_SUBSCRIBED",
2949 Self::HealthCheckHealthy => "HEALTH_CHECK_HEALTHY",
2950 Self::HealthCheckUnhealthy => "HEALTH_CHECK_UNHEALTHY",
2951 Self::ClusterRecovered => "CLUSTER_RECOVERED",
2952 Self::MetricDetailChanged => "METRIC_DETAIL_CHANGED",
2953 }
2954 }
2955 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2957 match value {
2958 "BACKEND_DOWN" => Some(Self::BackendDown),
2959 "BACKEND_UP" => Some(Self::BackendUp),
2960 "NO_AVAILABLE_BACKENDS" => Some(Self::NoAvailableBackends),
2961 "REMOVED_BACKEND_HAS_NO_CONNECTIONS" => {
2962 Some(Self::RemovedBackendHasNoConnections)
2963 }
2964 "CLUSTER_ADDED" => Some(Self::ClusterAdded),
2965 "CLUSTER_REMOVED" => Some(Self::ClusterRemoved),
2966 "FRONTEND_ADDED" => Some(Self::FrontendAdded),
2967 "FRONTEND_REMOVED" => Some(Self::FrontendRemoved),
2968 "CERTIFICATE_ADDED" => Some(Self::CertificateAdded),
2969 "CERTIFICATE_REMOVED" => Some(Self::CertificateRemoved),
2970 "CERTIFICATE_REPLACED" => Some(Self::CertificateReplaced),
2971 "LISTENER_ACTIVATED" => Some(Self::ListenerActivated),
2972 "LISTENER_DEACTIVATED" => Some(Self::ListenerDeactivated),
2973 "CONFIGURATION_RELOADED" => Some(Self::ConfigurationReloaded),
2974 "WORKER_KILLED" => Some(Self::WorkerKilled),
2975 "WORKER_RELAUNCHED" => Some(Self::WorkerRelaunched),
2976 "LOGGING_LEVEL_CHANGED" => Some(Self::LoggingLevelChanged),
2977 "METRICS_CONFIGURED" => Some(Self::MetricsConfigured),
2978 "LISTENER_UPDATED" => Some(Self::ListenerUpdated),
2979 "STATE_LOADED" => Some(Self::StateLoaded),
2980 "STATE_SAVED" => Some(Self::StateSaved),
2981 "LISTENER_ADDED" => Some(Self::ListenerAdded),
2982 "LISTENER_REMOVED" => Some(Self::ListenerRemoved),
2983 "SOZU_STOP_REQUESTED" => Some(Self::SozuStopRequested),
2984 "MAIN_UPGRADED" => Some(Self::MainUpgraded),
2985 "WORKER_UPGRADED" => Some(Self::WorkerUpgraded),
2986 "EVENTS_SUBSCRIBED" => Some(Self::EventsSubscribed),
2987 "HEALTH_CHECK_HEALTHY" => Some(Self::HealthCheckHealthy),
2988 "HEALTH_CHECK_UNHEALTHY" => Some(Self::HealthCheckUnhealthy),
2989 "CLUSTER_RECOVERED" => Some(Self::ClusterRecovered),
2990 "METRIC_DETAIL_CHANGED" => Some(Self::MetricDetailChanged),
2991 _ => None,
2992 }
2993 }
2994}
2995#[derive(::serde::Serialize, ::serde::Deserialize)]
2996#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
2997#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2998#[repr(i32)]
2999pub enum ResponseStatus {
3000 Ok = 0,
3001 Processing = 1,
3002 Failure = 2,
3003}
3004impl ResponseStatus {
3005 pub fn as_str_name(&self) -> &'static str {
3010 match self {
3011 Self::Ok => "OK",
3012 Self::Processing => "PROCESSING",
3013 Self::Failure => "FAILURE",
3014 }
3015 }
3016 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3018 match value {
3019 "OK" => Some(Self::Ok),
3020 "PROCESSING" => Some(Self::Processing),
3021 "FAILURE" => Some(Self::Failure),
3022 _ => None,
3023 }
3024 }
3025}
3026#[derive(::serde::Serialize, ::serde::Deserialize)]
3028#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
3029#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3030#[repr(i32)]
3031pub enum RunState {
3032 Running = 0,
3033 Stopping = 1,
3034 Stopped = 2,
3035 NotAnswering = 3,
3036}
3037impl RunState {
3038 pub fn as_str_name(&self) -> &'static str {
3043 match self {
3044 Self::Running => "RUNNING",
3045 Self::Stopping => "STOPPING",
3046 Self::Stopped => "STOPPED",
3047 Self::NotAnswering => "NOT_ANSWERING",
3048 }
3049 }
3050 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3052 match value {
3053 "RUNNING" => Some(Self::Running),
3054 "STOPPING" => Some(Self::Stopping),
3055 "STOPPED" => Some(Self::Stopped),
3056 "NOT_ANSWERING" => Some(Self::NotAnswering),
3057 _ => None,
3058 }
3059 }
3060}
3061#[derive(::serde::Serialize, ::serde::Deserialize)]
3068#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
3069#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3070#[repr(i32)]
3071pub enum MetricDetail {
3072 DetailProcess = 0,
3074 DetailFrontend = 1,
3076 DetailCluster = 2,
3078 DetailBackend = 3,
3080}
3081impl MetricDetail {
3082 pub fn as_str_name(&self) -> &'static str {
3087 match self {
3088 Self::DetailProcess => "DETAIL_PROCESS",
3089 Self::DetailFrontend => "DETAIL_FRONTEND",
3090 Self::DetailCluster => "DETAIL_CLUSTER",
3091 Self::DetailBackend => "DETAIL_BACKEND",
3092 }
3093 }
3094 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3096 match value {
3097 "DETAIL_PROCESS" => Some(Self::DetailProcess),
3098 "DETAIL_FRONTEND" => Some(Self::DetailFrontend),
3099 "DETAIL_CLUSTER" => Some(Self::DetailCluster),
3100 "DETAIL_BACKEND" => Some(Self::DetailBackend),
3101 _ => None,
3102 }
3103 }
3104}
3105#[derive(::serde::Serialize, ::serde::Deserialize)]
3106#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
3107#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3108#[repr(i32)]
3109pub enum ProtobufAccessLogFormat {
3110 Ascii = 1,
3111 Protobuf = 2,
3112}
3113impl ProtobufAccessLogFormat {
3114 pub fn as_str_name(&self) -> &'static str {
3119 match self {
3120 Self::Ascii => "Ascii",
3121 Self::Protobuf => "Protobuf",
3122 }
3123 }
3124 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3126 match value {
3127 "Ascii" => Some(Self::Ascii),
3128 "Protobuf" => Some(Self::Protobuf),
3129 _ => None,
3130 }
3131 }
3132}