1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ResourceMonitor {
4 #[prost(string, tag = "1")]
8 pub name: ::prost::alloc::string::String,
9 #[prost(oneof = "resource_monitor::ConfigType", tags = "3")]
12 pub config_type: ::core::option::Option<resource_monitor::ConfigType>,
13}
14pub mod resource_monitor {
16 #[derive(Clone, PartialEq, ::prost::Oneof)]
19 pub enum ConfigType {
20 #[prost(message, tag = "3")]
21 TypedConfig(super::super::super::super::super::google::protobuf::Any),
22 }
23}
24impl ::prost::Name for ResourceMonitor {
25 const NAME: &'static str = "ResourceMonitor";
26 const PACKAGE: &'static str = "envoy.config.overload.v3";
27 fn full_name() -> ::prost::alloc::string::String {
28 "envoy.config.overload.v3.ResourceMonitor".into()
29 }
30 fn type_url() -> ::prost::alloc::string::String {
31 "type.googleapis.com/envoy.config.overload.v3.ResourceMonitor".into()
32 }
33}
34#[derive(Clone, Copy, PartialEq, ::prost::Message)]
35pub struct ThresholdTrigger {
36 #[prost(double, tag = "1")]
39 pub value: f64,
40}
41impl ::prost::Name for ThresholdTrigger {
42 const NAME: &'static str = "ThresholdTrigger";
43 const PACKAGE: &'static str = "envoy.config.overload.v3";
44 fn full_name() -> ::prost::alloc::string::String {
45 "envoy.config.overload.v3.ThresholdTrigger".into()
46 }
47 fn type_url() -> ::prost::alloc::string::String {
48 "type.googleapis.com/envoy.config.overload.v3.ThresholdTrigger".into()
49 }
50}
51#[derive(Clone, Copy, PartialEq, ::prost::Message)]
52pub struct ScaledTrigger {
53 #[prost(double, tag = "1")]
57 pub scaling_threshold: f64,
58 #[prost(double, tag = "2")]
60 pub saturation_threshold: f64,
61}
62impl ::prost::Name for ScaledTrigger {
63 const NAME: &'static str = "ScaledTrigger";
64 const PACKAGE: &'static str = "envoy.config.overload.v3";
65 fn full_name() -> ::prost::alloc::string::String {
66 "envoy.config.overload.v3.ScaledTrigger".into()
67 }
68 fn type_url() -> ::prost::alloc::string::String {
69 "type.googleapis.com/envoy.config.overload.v3.ScaledTrigger".into()
70 }
71}
72#[derive(Clone, PartialEq, ::prost::Message)]
73pub struct Trigger {
74 #[prost(string, tag = "1")]
76 pub name: ::prost::alloc::string::String,
77 #[prost(oneof = "trigger::TriggerOneof", tags = "2, 3")]
78 pub trigger_oneof: ::core::option::Option<trigger::TriggerOneof>,
79}
80pub mod trigger {
82 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
83 pub enum TriggerOneof {
84 #[prost(message, tag = "2")]
85 Threshold(super::ThresholdTrigger),
86 #[prost(message, tag = "3")]
87 Scaled(super::ScaledTrigger),
88 }
89}
90impl ::prost::Name for Trigger {
91 const NAME: &'static str = "Trigger";
92 const PACKAGE: &'static str = "envoy.config.overload.v3";
93 fn full_name() -> ::prost::alloc::string::String {
94 "envoy.config.overload.v3.Trigger".into()
95 }
96 fn type_url() -> ::prost::alloc::string::String {
97 "type.googleapis.com/envoy.config.overload.v3.Trigger".into()
98 }
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
104pub struct ScaleTimersOverloadActionConfig {
105 #[prost(message, repeated, tag = "1")]
107 pub timer_scale_factors: ::prost::alloc::vec::Vec<
108 scale_timers_overload_action_config::ScaleTimer,
109 >,
110}
111pub mod scale_timers_overload_action_config {
113 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
114 pub struct ScaleTimer {
115 #[prost(enumeration = "TimerType", tag = "1")]
117 pub timer: i32,
118 #[prost(oneof = "scale_timer::OverloadAdjust", tags = "2, 3")]
119 pub overload_adjust: ::core::option::Option<scale_timer::OverloadAdjust>,
120 }
121 pub mod scale_timer {
123 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
124 pub enum OverloadAdjust {
125 #[prost(message, tag = "2")]
127 MinTimeout(
128 super::super::super::super::super::super::google::protobuf::Duration,
129 ),
130 #[prost(message, tag = "3")]
132 MinScale(super::super::super::super::super::r#type::v3::Percent),
133 }
134 }
135 impl ::prost::Name for ScaleTimer {
136 const NAME: &'static str = "ScaleTimer";
137 const PACKAGE: &'static str = "envoy.config.overload.v3";
138 fn full_name() -> ::prost::alloc::string::String {
139 "envoy.config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer".into()
140 }
141 fn type_url() -> ::prost::alloc::string::String {
142 "type.googleapis.com/envoy.config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer"
143 .into()
144 }
145 }
146 #[derive(
147 Clone,
148 Copy,
149 Debug,
150 PartialEq,
151 Eq,
152 Hash,
153 PartialOrd,
154 Ord,
155 ::prost::Enumeration
156 )]
157 #[repr(i32)]
158 pub enum TimerType {
159 Unspecified = 0,
161 HttpDownstreamConnectionIdle = 1,
165 HttpDownstreamStreamIdle = 2,
170 TransportSocketConnect = 3,
175 }
176 impl TimerType {
177 pub fn as_str_name(&self) -> &'static str {
182 match self {
183 Self::Unspecified => "UNSPECIFIED",
184 Self::HttpDownstreamConnectionIdle => "HTTP_DOWNSTREAM_CONNECTION_IDLE",
185 Self::HttpDownstreamStreamIdle => "HTTP_DOWNSTREAM_STREAM_IDLE",
186 Self::TransportSocketConnect => "TRANSPORT_SOCKET_CONNECT",
187 }
188 }
189 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
191 match value {
192 "UNSPECIFIED" => Some(Self::Unspecified),
193 "HTTP_DOWNSTREAM_CONNECTION_IDLE" => {
194 Some(Self::HttpDownstreamConnectionIdle)
195 }
196 "HTTP_DOWNSTREAM_STREAM_IDLE" => Some(Self::HttpDownstreamStreamIdle),
197 "TRANSPORT_SOCKET_CONNECT" => Some(Self::TransportSocketConnect),
198 _ => None,
199 }
200 }
201 }
202}
203impl ::prost::Name for ScaleTimersOverloadActionConfig {
204 const NAME: &'static str = "ScaleTimersOverloadActionConfig";
205 const PACKAGE: &'static str = "envoy.config.overload.v3";
206 fn full_name() -> ::prost::alloc::string::String {
207 "envoy.config.overload.v3.ScaleTimersOverloadActionConfig".into()
208 }
209 fn type_url() -> ::prost::alloc::string::String {
210 "type.googleapis.com/envoy.config.overload.v3.ScaleTimersOverloadActionConfig"
211 .into()
212 }
213}
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct OverloadAction {
216 #[prost(string, tag = "1")]
220 pub name: ::prost::alloc::string::String,
221 #[prost(message, repeated, tag = "2")]
229 pub triggers: ::prost::alloc::vec::Vec<Trigger>,
230 #[prost(message, optional, tag = "3")]
232 pub typed_config: ::core::option::Option<
233 super::super::super::super::google::protobuf::Any,
234 >,
235}
236impl ::prost::Name for OverloadAction {
237 const NAME: &'static str = "OverloadAction";
238 const PACKAGE: &'static str = "envoy.config.overload.v3";
239 fn full_name() -> ::prost::alloc::string::String {
240 "envoy.config.overload.v3.OverloadAction".into()
241 }
242 fn type_url() -> ::prost::alloc::string::String {
243 "type.googleapis.com/envoy.config.overload.v3.OverloadAction".into()
244 }
245}
246#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct LoadShedPoint {
251 #[prost(string, tag = "1")]
256 pub name: ::prost::alloc::string::String,
257 #[prost(message, repeated, tag = "2")]
264 pub triggers: ::prost::alloc::vec::Vec<Trigger>,
265}
266impl ::prost::Name for LoadShedPoint {
267 const NAME: &'static str = "LoadShedPoint";
268 const PACKAGE: &'static str = "envoy.config.overload.v3";
269 fn full_name() -> ::prost::alloc::string::String {
270 "envoy.config.overload.v3.LoadShedPoint".into()
271 }
272 fn type_url() -> ::prost::alloc::string::String {
273 "type.googleapis.com/envoy.config.overload.v3.LoadShedPoint".into()
274 }
275}
276#[derive(Clone, Copy, PartialEq, ::prost::Message)]
279pub struct BufferFactoryConfig {
280 #[prost(uint32, tag = "1")]
295 pub minimum_account_to_track_power_of_two: u32,
296}
297impl ::prost::Name for BufferFactoryConfig {
298 const NAME: &'static str = "BufferFactoryConfig";
299 const PACKAGE: &'static str = "envoy.config.overload.v3";
300 fn full_name() -> ::prost::alloc::string::String {
301 "envoy.config.overload.v3.BufferFactoryConfig".into()
302 }
303 fn type_url() -> ::prost::alloc::string::String {
304 "type.googleapis.com/envoy.config.overload.v3.BufferFactoryConfig".into()
305 }
306}
307#[derive(Clone, PartialEq, ::prost::Message)]
309pub struct OverloadManager {
310 #[prost(message, optional, tag = "1")]
312 pub refresh_interval: ::core::option::Option<
313 super::super::super::super::google::protobuf::Duration,
314 >,
315 #[prost(message, repeated, tag = "2")]
317 pub resource_monitors: ::prost::alloc::vec::Vec<ResourceMonitor>,
318 #[prost(message, repeated, tag = "3")]
320 pub actions: ::prost::alloc::vec::Vec<OverloadAction>,
321 #[prost(message, repeated, tag = "5")]
323 pub loadshed_points: ::prost::alloc::vec::Vec<LoadShedPoint>,
324 #[prost(message, optional, tag = "4")]
326 pub buffer_factory_config: ::core::option::Option<BufferFactoryConfig>,
327}
328impl ::prost::Name for OverloadManager {
329 const NAME: &'static str = "OverloadManager";
330 const PACKAGE: &'static str = "envoy.config.overload.v3";
331 fn full_name() -> ::prost::alloc::string::String {
332 "envoy.config.overload.v3.OverloadManager".into()
333 }
334 fn type_url() -> ::prost::alloc::string::String {
335 "type.googleapis.com/envoy.config.overload.v3.OverloadManager".into()
336 }
337}