cx_api/generated/
com.coralogixapis.slo.v1.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Metric {
6    #[prost(string, tag = "1")]
7    pub query: ::prost::alloc::string::String,
8}
9#[derive(serde::Serialize, serde::Deserialize)]
10#[serde(rename_all = "snake_case")]
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct RequestBasedMetricSli {
13    #[prost(message, optional, tag = "1")]
14    pub good_events: ::core::option::Option<Metric>,
15    #[prost(message, optional, tag = "2")]
16    pub total_events: ::core::option::Option<Metric>,
17}
18#[derive(serde::Serialize, serde::Deserialize)]
19#[serde(rename_all = "snake_case")]
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct WindowBasedMetricSli {
22    #[prost(message, optional, tag = "1")]
23    pub query: ::core::option::Option<Metric>,
24    #[prost(enumeration = "WindowSloWindow", tag = "2")]
25    pub window: i32,
26    #[prost(enumeration = "ComparisonOperator", tag = "3")]
27    pub comparison_operator: i32,
28    #[prost(float, tag = "4")]
29    pub threshold: f32,
30    #[prost(enumeration = "MissingDataStrategy", tag = "5")]
31    pub missing_data_strategy: i32,
32}
33#[derive(serde::Serialize, serde::Deserialize)]
34#[serde(rename_all = "snake_case")]
35#[derive(Clone, Copy, PartialEq, ::prost::Message)]
36pub struct Revision {
37    #[prost(int32, tag = "1")]
38    pub revision: i32,
39    #[prost(message, optional, tag = "2")]
40    pub update_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
41}
42#[derive(serde::Serialize, serde::Deserialize)]
43#[serde(rename_all = "snake_case")]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct Grouping {
46    #[prost(string, repeated, tag = "1")]
47    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
48}
49#[derive(serde::Serialize, serde::Deserialize)]
50#[serde(rename_all = "snake_case")]
51#[derive(Clone, PartialEq, ::prost::Message)]
52pub struct Slo {
53    #[prost(string, optional, tag = "1")]
54    pub id: ::core::option::Option<::prost::alloc::string::String>,
55    #[prost(string, tag = "2")]
56    pub name: ::prost::alloc::string::String,
57    #[prost(string, optional, tag = "3")]
58    pub description: ::core::option::Option<::prost::alloc::string::String>,
59    #[prost(string, optional, tag = "4")]
60    pub creator: ::core::option::Option<::prost::alloc::string::String>,
61    #[prost(map = "string, string", tag = "5")]
62    pub labels: ::std::collections::HashMap<
63        ::prost::alloc::string::String,
64        ::prost::alloc::string::String,
65    >,
66    #[prost(message, optional, tag = "6")]
67    pub revision: ::core::option::Option<Revision>,
68    #[prost(message, optional, tag = "7")]
69    pub grouping: ::core::option::Option<Grouping>,
70    #[prost(message, optional, tag = "8")]
71    pub create_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
72    #[prost(message, optional, tag = "9")]
73    pub update_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
74    #[prost(float, tag = "10")]
75    pub target_threshold_percentage: f32,
76    #[prost(string, optional, tag = "14")]
77    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
78    #[prost(oneof = "slo::Window", tags = "11")]
79    pub window: ::core::option::Option<slo::Window>,
80    #[prost(oneof = "slo::Sli", tags = "12, 13")]
81    pub sli: ::core::option::Option<slo::Sli>,
82}
83/// Nested message and enum types in `Slo`.
84pub mod slo {
85    #[derive(serde::Serialize, serde::Deserialize)]
86    #[serde(rename_all = "snake_case")]
87    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
88    pub enum Window {
89        #[prost(enumeration = "super::SloTimeFrame", tag = "11")]
90        SloTimeFrame(i32),
91    }
92    #[derive(serde::Serialize, serde::Deserialize)]
93    #[serde(rename_all = "snake_case")]
94    #[derive(Clone, PartialEq, ::prost::Oneof)]
95    pub enum Sli {
96        #[prost(message, tag = "12")]
97        RequestBasedMetricSli(super::RequestBasedMetricSli),
98        #[prost(message, tag = "13")]
99        WindowBasedMetricSli(super::WindowBasedMetricSli),
100    }
101}
102#[derive(serde::Serialize, serde::Deserialize)]
103#[serde(rename_all = "snake_case")]
104#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct SloFilterField {
106    #[prost(oneof = "slo_filter_field::Field", tags = "1, 2")]
107    pub field: ::core::option::Option<slo_filter_field::Field>,
108}
109/// Nested message and enum types in `SloFilterField`.
110pub mod slo_filter_field {
111    #[derive(serde::Serialize, serde::Deserialize)]
112    #[serde(rename_all = "snake_case")]
113    #[derive(Clone, PartialEq, ::prost::Oneof)]
114    pub enum Field {
115        #[prost(enumeration = "super::SloConstantFilterField", tag = "1")]
116        ConstFilter(i32),
117        #[prost(string, tag = "2")]
118        LabelName(::prost::alloc::string::String),
119    }
120}
121#[derive(serde::Serialize, serde::Deserialize)]
122#[serde(rename_all = "snake_case")]
123#[derive(Clone, PartialEq, ::prost::Message)]
124pub struct IsFilterPredicate {
125    #[prost(string, repeated, tag = "1")]
126    pub is: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
127}
128#[derive(serde::Serialize, serde::Deserialize)]
129#[serde(rename_all = "snake_case")]
130#[derive(Clone, PartialEq, ::prost::Message)]
131pub struct SloFilterPredicate {
132    #[prost(oneof = "slo_filter_predicate::Predicate", tags = "1")]
133    pub predicate: ::core::option::Option<slo_filter_predicate::Predicate>,
134}
135/// Nested message and enum types in `SloFilterPredicate`.
136pub mod slo_filter_predicate {
137    #[derive(serde::Serialize, serde::Deserialize)]
138    #[serde(rename_all = "snake_case")]
139    #[derive(Clone, PartialEq, ::prost::Oneof)]
140    pub enum Predicate {
141        #[prost(message, tag = "1")]
142        Is(super::IsFilterPredicate),
143    }
144}
145#[derive(serde::Serialize, serde::Deserialize)]
146#[serde(rename_all = "snake_case")]
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct SloFilter {
149    #[prost(message, optional, tag = "1")]
150    pub field: ::core::option::Option<SloFilterField>,
151    #[prost(message, optional, tag = "2")]
152    pub predicate: ::core::option::Option<SloFilterPredicate>,
153}
154#[derive(serde::Serialize, serde::Deserialize)]
155#[serde(rename_all = "snake_case")]
156#[derive(Clone, PartialEq, ::prost::Message)]
157pub struct SloFilters {
158    #[prost(message, repeated, tag = "1")]
159    pub filters: ::prost::alloc::vec::Vec<SloFilter>,
160}
161#[derive(serde::Serialize, serde::Deserialize)]
162#[serde(rename_all = "snake_case")]
163#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
164#[repr(i32)]
165pub enum ComparisonOperator {
166    Unspecified = 0,
167    GreaterThan = 1,
168    GreaterThanOrEquals = 2,
169    LessThan = 3,
170    LessThanOrEquals = 4,
171}
172impl ComparisonOperator {
173    /// String value of the enum field names used in the ProtoBuf definition.
174    ///
175    /// The values are not transformed in any way and thus are considered stable
176    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
177    pub fn as_str_name(&self) -> &'static str {
178        match self {
179            Self::Unspecified => "COMPARISON_OPERATOR_UNSPECIFIED",
180            Self::GreaterThan => "COMPARISON_OPERATOR_GREATER_THAN",
181            Self::GreaterThanOrEquals => "COMPARISON_OPERATOR_GREATER_THAN_OR_EQUALS",
182            Self::LessThan => "COMPARISON_OPERATOR_LESS_THAN",
183            Self::LessThanOrEquals => "COMPARISON_OPERATOR_LESS_THAN_OR_EQUALS",
184        }
185    }
186    /// Creates an enum from field names used in the ProtoBuf definition.
187    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
188        match value {
189            "COMPARISON_OPERATOR_UNSPECIFIED" => Some(Self::Unspecified),
190            "COMPARISON_OPERATOR_GREATER_THAN" => Some(Self::GreaterThan),
191            "COMPARISON_OPERATOR_GREATER_THAN_OR_EQUALS" => {
192                Some(Self::GreaterThanOrEquals)
193            }
194            "COMPARISON_OPERATOR_LESS_THAN" => Some(Self::LessThan),
195            "COMPARISON_OPERATOR_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
196            _ => None,
197        }
198    }
199}
200#[derive(serde::Serialize, serde::Deserialize)]
201#[serde(rename_all = "snake_case")]
202#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
203#[repr(i32)]
204pub enum WindowSloWindow {
205    Unspecified = 0,
206    WindowSloWindow1Minute = 1,
207    WindowSloWindow5Minutes = 2,
208}
209impl WindowSloWindow {
210    /// String value of the enum field names used in the ProtoBuf definition.
211    ///
212    /// The values are not transformed in any way and thus are considered stable
213    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
214    pub fn as_str_name(&self) -> &'static str {
215        match self {
216            Self::Unspecified => "WINDOW_SLO_WINDOW_UNSPECIFIED",
217            Self::WindowSloWindow1Minute => "WINDOW_SLO_WINDOW_1_MINUTE",
218            Self::WindowSloWindow5Minutes => "WINDOW_SLO_WINDOW_5_MINUTES",
219        }
220    }
221    /// Creates an enum from field names used in the ProtoBuf definition.
222    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
223        match value {
224            "WINDOW_SLO_WINDOW_UNSPECIFIED" => Some(Self::Unspecified),
225            "WINDOW_SLO_WINDOW_1_MINUTE" => Some(Self::WindowSloWindow1Minute),
226            "WINDOW_SLO_WINDOW_5_MINUTES" => Some(Self::WindowSloWindow5Minutes),
227            _ => None,
228        }
229    }
230}
231#[derive(serde::Serialize, serde::Deserialize)]
232#[serde(rename_all = "snake_case")]
233#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
234#[repr(i32)]
235pub enum MissingDataStrategy {
236    Uncounted = 0,
237    Good = 1,
238    Bad = 2,
239}
240impl MissingDataStrategy {
241    /// String value of the enum field names used in the ProtoBuf definition.
242    ///
243    /// The values are not transformed in any way and thus are considered stable
244    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
245    pub fn as_str_name(&self) -> &'static str {
246        match self {
247            Self::Uncounted => "MISSING_DATA_STRATEGY_UNCOUNTED",
248            Self::Good => "MISSING_DATA_STRATEGY_GOOD",
249            Self::Bad => "MISSING_DATA_STRATEGY_BAD",
250        }
251    }
252    /// Creates an enum from field names used in the ProtoBuf definition.
253    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
254        match value {
255            "MISSING_DATA_STRATEGY_UNCOUNTED" => Some(Self::Uncounted),
256            "MISSING_DATA_STRATEGY_GOOD" => Some(Self::Good),
257            "MISSING_DATA_STRATEGY_BAD" => Some(Self::Bad),
258            _ => None,
259        }
260    }
261}
262#[derive(serde::Serialize, serde::Deserialize)]
263#[serde(rename_all = "snake_case")]
264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
265#[repr(i32)]
266pub enum SloTimeFrame {
267    Unspecified = 0,
268    SloTimeFrame7Days = 1,
269    SloTimeFrame14Days = 2,
270    SloTimeFrame21Days = 3,
271    SloTimeFrame28Days = 4,
272}
273impl SloTimeFrame {
274    /// String value of the enum field names used in the ProtoBuf definition.
275    ///
276    /// The values are not transformed in any way and thus are considered stable
277    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
278    pub fn as_str_name(&self) -> &'static str {
279        match self {
280            Self::Unspecified => "SLO_TIME_FRAME_UNSPECIFIED",
281            Self::SloTimeFrame7Days => "SLO_TIME_FRAME_7_DAYS",
282            Self::SloTimeFrame14Days => "SLO_TIME_FRAME_14_DAYS",
283            Self::SloTimeFrame21Days => "SLO_TIME_FRAME_21_DAYS",
284            Self::SloTimeFrame28Days => "SLO_TIME_FRAME_28_DAYS",
285        }
286    }
287    /// Creates an enum from field names used in the ProtoBuf definition.
288    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
289        match value {
290            "SLO_TIME_FRAME_UNSPECIFIED" => Some(Self::Unspecified),
291            "SLO_TIME_FRAME_7_DAYS" => Some(Self::SloTimeFrame7Days),
292            "SLO_TIME_FRAME_14_DAYS" => Some(Self::SloTimeFrame14Days),
293            "SLO_TIME_FRAME_21_DAYS" => Some(Self::SloTimeFrame21Days),
294            "SLO_TIME_FRAME_28_DAYS" => Some(Self::SloTimeFrame28Days),
295            _ => None,
296        }
297    }
298}
299#[derive(serde::Serialize, serde::Deserialize)]
300#[serde(rename_all = "snake_case")]
301#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
302#[repr(i32)]
303pub enum SloConstantFilterField {
304    SloConstFilterFieldUnspecified = 0,
305    SloConstFilterFieldUserName = 1,
306    SloConstFilterFieldSloName = 2,
307}
308impl SloConstantFilterField {
309    /// String value of the enum field names used in the ProtoBuf definition.
310    ///
311    /// The values are not transformed in any way and thus are considered stable
312    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
313    pub fn as_str_name(&self) -> &'static str {
314        match self {
315            Self::SloConstFilterFieldUnspecified => "SLO_CONST_FILTER_FIELD_UNSPECIFIED",
316            Self::SloConstFilterFieldUserName => "SLO_CONST_FILTER_FIELD_USER_NAME",
317            Self::SloConstFilterFieldSloName => "SLO_CONST_FILTER_FIELD_SLO_NAME",
318        }
319    }
320    /// Creates an enum from field names used in the ProtoBuf definition.
321    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
322        match value {
323            "SLO_CONST_FILTER_FIELD_UNSPECIFIED" => {
324                Some(Self::SloConstFilterFieldUnspecified)
325            }
326            "SLO_CONST_FILTER_FIELD_USER_NAME" => Some(Self::SloConstFilterFieldUserName),
327            "SLO_CONST_FILTER_FIELD_SLO_NAME" => Some(Self::SloConstFilterFieldSloName),
328            _ => None,
329        }
330    }
331}
332#[derive(serde::Serialize, serde::Deserialize)]
333#[serde(rename_all = "snake_case")]
334#[derive(Clone, Copy, PartialEq, ::prost::Message)]
335pub struct SloMetricTimeWindow {
336    #[prost(oneof = "slo_metric_time_window::Type", tags = "1")]
337    pub r#type: ::core::option::Option<slo_metric_time_window::Type>,
338}
339/// Nested message and enum types in `SloMetricTimeWindow`.
340pub mod slo_metric_time_window {
341    #[derive(serde::Serialize, serde::Deserialize)]
342    #[serde(rename_all = "snake_case")]
343    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
344    pub enum Type {
345        #[prost(enumeration = "super::SloMetricTimeWindowValue", tag = "1")]
346        SloMetricTimeWindowSpecificValue(i32),
347    }
348}
349#[derive(serde::Serialize, serde::Deserialize)]
350#[serde(rename_all = "snake_case")]
351#[derive(Clone, PartialEq, ::prost::Message)]
352pub struct SloMetricFilter {
353    #[prost(oneof = "slo_metric_filter::Type", tags = "1")]
354    pub r#type: ::core::option::Option<slo_metric_filter::Type>,
355}
356/// Nested message and enum types in `SloMetricFilter`.
357pub mod slo_metric_filter {
358    #[derive(serde::Serialize, serde::Deserialize)]
359    #[serde(rename_all = "snake_case")]
360    #[derive(Clone, PartialEq, ::prost::Oneof)]
361    pub enum Type {
362        #[prost(message, tag = "1")]
363        Promql(::prost::alloc::string::String),
364    }
365}
366#[derive(serde::Serialize, serde::Deserialize)]
367#[serde(rename_all = "snake_case")]
368#[derive(Clone, Copy, PartialEq, ::prost::Message)]
369pub struct SloMetricMissingValues {
370    #[prost(oneof = "slo_metric_missing_values::MissingValues", tags = "1, 2")]
371    pub missing_values: ::core::option::Option<slo_metric_missing_values::MissingValues>,
372}
373/// Nested message and enum types in `SloMetricMissingValues`.
374pub mod slo_metric_missing_values {
375    #[derive(serde::Serialize, serde::Deserialize)]
376    #[serde(rename_all = "snake_case")]
377    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
378    pub enum MissingValues {
379        #[prost(message, tag = "1")]
380        ReplaceWithZero(bool),
381        #[prost(message, tag = "2")]
382        MinNonNullValuesPct(u32),
383    }
384}
385#[derive(serde::Serialize, serde::Deserialize)]
386#[serde(rename_all = "snake_case")]
387#[derive(Clone, PartialEq, ::prost::Message)]
388pub struct BurnRateMetricTypeDual {
389    #[prost(message, optional, tag = "1")]
390    pub long_metric_filter: ::core::option::Option<SloMetricFilter>,
391    #[prost(message, optional, tag = "2")]
392    pub short_metric_filter: ::core::option::Option<SloMetricFilter>,
393}
394#[derive(serde::Serialize, serde::Deserialize)]
395#[serde(rename_all = "snake_case")]
396#[derive(Clone, PartialEq, ::prost::Message)]
397pub struct BurnRateMetricTypeSingle {
398    #[prost(message, optional, tag = "1")]
399    pub metric_filter: ::core::option::Option<SloMetricFilter>,
400}
401#[derive(serde::Serialize, serde::Deserialize)]
402#[serde(rename_all = "snake_case")]
403#[derive(Clone, PartialEq, ::prost::Message)]
404pub struct ErrorBudgetMetricType {
405    #[prost(message, optional, tag = "1")]
406    pub metric_filter: ::core::option::Option<SloMetricFilter>,
407}
408#[derive(serde::Serialize, serde::Deserialize)]
409#[serde(rename_all = "snake_case")]
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct BurnRateAlertTypeDual {
412    #[prost(message, optional, tag = "1")]
413    pub long_window: ::core::option::Option<::prost_wkt_types::Duration>,
414    #[prost(message, optional, tag = "2")]
415    pub short_window: ::core::option::Option<::prost_wkt_types::Duration>,
416    #[prost(message, repeated, tag = "3")]
417    pub thresholds: ::prost::alloc::vec::Vec<f64>,
418}
419#[derive(serde::Serialize, serde::Deserialize)]
420#[serde(rename_all = "snake_case")]
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct BurnRateAlertTypeSingle {
423    #[prost(message, optional, tag = "1")]
424    pub window: ::core::option::Option<::prost_wkt_types::Duration>,
425    #[prost(message, repeated, tag = "2")]
426    pub thresholds: ::prost::alloc::vec::Vec<f64>,
427}
428#[derive(serde::Serialize, serde::Deserialize)]
429#[serde(rename_all = "snake_case")]
430#[derive(Clone, PartialEq, ::prost::Message)]
431pub struct BurnRateAlertDefinition {
432    #[prost(oneof = "burn_rate_alert_definition::BurnRate", tags = "2, 3")]
433    pub burn_rate: ::core::option::Option<burn_rate_alert_definition::BurnRate>,
434}
435/// Nested message and enum types in `BurnRateAlertDefinition`.
436pub mod burn_rate_alert_definition {
437    #[derive(serde::Serialize, serde::Deserialize)]
438    #[serde(rename_all = "snake_case")]
439    #[derive(Clone, PartialEq, ::prost::Oneof)]
440    pub enum BurnRate {
441        #[prost(message, tag = "2")]
442        Dual(super::BurnRateAlertTypeDual),
443        #[prost(message, tag = "3")]
444        Single(super::BurnRateAlertTypeSingle),
445    }
446}
447#[derive(serde::Serialize, serde::Deserialize)]
448#[serde(rename_all = "snake_case")]
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct SloDefinition {
451    #[prost(string, tag = "1")]
452    pub slo_id: ::prost::alloc::string::String,
453}
454#[derive(serde::Serialize, serde::Deserialize)]
455#[serde(rename_all = "snake_case")]
456#[derive(Clone, Copy, PartialEq, ::prost::Message)]
457pub struct ErrorBudgetAlertDefinition {}
458#[derive(serde::Serialize, serde::Deserialize)]
459#[serde(rename_all = "snake_case")]
460#[derive(Clone, Copy, PartialEq, ::prost::Message)]
461pub struct MoreThanConditionOperator {}
462#[derive(serde::Serialize, serde::Deserialize)]
463#[serde(rename_all = "snake_case")]
464#[derive(Clone, Copy, PartialEq, ::prost::Message)]
465pub struct MoreThanOrEqualsConditionOperator {}
466#[derive(serde::Serialize, serde::Deserialize)]
467#[serde(rename_all = "snake_case")]
468#[derive(Clone, Copy, PartialEq, ::prost::Message)]
469pub struct LessThanConditionOperator {
470    #[prost(message, optional, tag = "1")]
471    pub undetected_values_management: ::core::option::Option<UndetectedValuesManagement>,
472}
473#[derive(serde::Serialize, serde::Deserialize)]
474#[serde(rename_all = "snake_case")]
475#[derive(Clone, Copy, PartialEq, ::prost::Message)]
476pub struct LessThanOrEqualsConditionOperator {
477    #[prost(message, optional, tag = "1")]
478    pub undetected_values_management: ::core::option::Option<UndetectedValuesManagement>,
479}
480#[derive(serde::Serialize, serde::Deserialize)]
481#[serde(rename_all = "snake_case")]
482#[derive(Clone, Copy, PartialEq, ::prost::Message)]
483pub struct UndetectedValuesManagement {
484    #[prost(message, optional, tag = "1")]
485    pub trigger_undetected_values: ::core::option::Option<bool>,
486    #[prost(enumeration = "AutoRetireTimeframe", optional, tag = "2")]
487    pub auto_retire_timeframe: ::core::option::Option<i32>,
488}
489#[derive(serde::Serialize, serde::Deserialize)]
490#[serde(rename_all = "snake_case")]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct SloAlertValidityResult {
493    #[prost(string, tag = "1")]
494    pub id: ::prost::alloc::string::String,
495    #[prost(string, tag = "2")]
496    pub name: ::prost::alloc::string::String,
497    #[prost(string, optional, tag = "3")]
498    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
499    #[prost(string, tag = "4")]
500    pub alert_version_id: ::prost::alloc::string::String,
501}
502#[derive(serde::Serialize, serde::Deserialize)]
503#[serde(rename_all = "snake_case")]
504#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
505#[repr(i32)]
506pub enum SloMetricThresholdConditionType {
507    MetricThresholdConditionTypeMoreThanOrUnspecified = 0,
508    MetricThresholdConditionTypeMoreThanOrEquals = 1,
509}
510impl SloMetricThresholdConditionType {
511    /// String value of the enum field names used in the ProtoBuf definition.
512    ///
513    /// The values are not transformed in any way and thus are considered stable
514    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
515    pub fn as_str_name(&self) -> &'static str {
516        match self {
517            Self::MetricThresholdConditionTypeMoreThanOrUnspecified => {
518                "METRIC_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_UNSPECIFIED"
519            }
520            Self::MetricThresholdConditionTypeMoreThanOrEquals => {
521                "METRIC_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_EQUALS"
522            }
523        }
524    }
525    /// Creates an enum from field names used in the ProtoBuf definition.
526    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
527        match value {
528            "METRIC_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_UNSPECIFIED" => {
529                Some(Self::MetricThresholdConditionTypeMoreThanOrUnspecified)
530            }
531            "METRIC_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_EQUALS" => {
532                Some(Self::MetricThresholdConditionTypeMoreThanOrEquals)
533            }
534            _ => None,
535        }
536    }
537}
538#[derive(serde::Serialize, serde::Deserialize)]
539#[serde(rename_all = "snake_case")]
540#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
541#[repr(i32)]
542pub enum SloMetricTimeWindowValue {
543    Unspecified = 0,
544    SloMetricTimeWindowValue1Minute = 1,
545}
546impl SloMetricTimeWindowValue {
547    /// String value of the enum field names used in the ProtoBuf definition.
548    ///
549    /// The values are not transformed in any way and thus are considered stable
550    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
551    pub fn as_str_name(&self) -> &'static str {
552        match self {
553            Self::Unspecified => "SLO_METRIC_TIME_WINDOW_VALUE_UNSPECIFIED",
554            Self::SloMetricTimeWindowValue1Minute => {
555                "SLO_METRIC_TIME_WINDOW_VALUE_1_MINUTE"
556            }
557        }
558    }
559    /// Creates an enum from field names used in the ProtoBuf definition.
560    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
561        match value {
562            "SLO_METRIC_TIME_WINDOW_VALUE_UNSPECIFIED" => Some(Self::Unspecified),
563            "SLO_METRIC_TIME_WINDOW_VALUE_1_MINUTE" => {
564                Some(Self::SloMetricTimeWindowValue1Minute)
565            }
566            _ => None,
567        }
568    }
569}
570#[derive(serde::Serialize, serde::Deserialize)]
571#[serde(rename_all = "snake_case")]
572#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
573#[repr(i32)]
574pub enum AutoRetireTimeframe {
575    NeverOrUnspecified = 0,
576    Minutes5 = 1,
577    Minutes10 = 2,
578    Hour1 = 3,
579    Hours2 = 4,
580    Hours6 = 5,
581    Hours12 = 6,
582    Hours24 = 7,
583}
584impl AutoRetireTimeframe {
585    /// String value of the enum field names used in the ProtoBuf definition.
586    ///
587    /// The values are not transformed in any way and thus are considered stable
588    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
589    pub fn as_str_name(&self) -> &'static str {
590        match self {
591            Self::NeverOrUnspecified => "AUTO_RETIRE_TIMEFRAME_NEVER_OR_UNSPECIFIED",
592            Self::Minutes5 => "AUTO_RETIRE_TIMEFRAME_MINUTES_5",
593            Self::Minutes10 => "AUTO_RETIRE_TIMEFRAME_MINUTES_10",
594            Self::Hour1 => "AUTO_RETIRE_TIMEFRAME_HOUR_1",
595            Self::Hours2 => "AUTO_RETIRE_TIMEFRAME_HOURS_2",
596            Self::Hours6 => "AUTO_RETIRE_TIMEFRAME_HOURS_6",
597            Self::Hours12 => "AUTO_RETIRE_TIMEFRAME_HOURS_12",
598            Self::Hours24 => "AUTO_RETIRE_TIMEFRAME_HOURS_24",
599        }
600    }
601    /// Creates an enum from field names used in the ProtoBuf definition.
602    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
603        match value {
604            "AUTO_RETIRE_TIMEFRAME_NEVER_OR_UNSPECIFIED" => {
605                Some(Self::NeverOrUnspecified)
606            }
607            "AUTO_RETIRE_TIMEFRAME_MINUTES_5" => Some(Self::Minutes5),
608            "AUTO_RETIRE_TIMEFRAME_MINUTES_10" => Some(Self::Minutes10),
609            "AUTO_RETIRE_TIMEFRAME_HOUR_1" => Some(Self::Hour1),
610            "AUTO_RETIRE_TIMEFRAME_HOURS_2" => Some(Self::Hours2),
611            "AUTO_RETIRE_TIMEFRAME_HOURS_6" => Some(Self::Hours6),
612            "AUTO_RETIRE_TIMEFRAME_HOURS_12" => Some(Self::Hours12),
613            "AUTO_RETIRE_TIMEFRAME_HOURS_24" => Some(Self::Hours24),
614            _ => None,
615        }
616    }
617}
618#[derive(serde::Serialize, serde::Deserialize)]
619#[serde(rename_all = "snake_case")]
620#[derive(Clone, PartialEq, ::prost::Message)]
621pub struct ResponseStatus {
622    #[prost(enumeration = "super::super::super::super::google::rpc::Code", tag = "1")]
623    pub status_code: i32,
624    #[prost(string, optional, tag = "2")]
625    pub message: ::core::option::Option<::prost::alloc::string::String>,
626    #[prost(map = "string, string", tag = "3")]
627    pub details: ::std::collections::HashMap<
628        ::prost::alloc::string::String,
629        ::prost::alloc::string::String,
630    >,
631}
632#[derive(serde::Serialize, serde::Deserialize)]
633#[serde(rename_all = "snake_case")]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct ReplaceSloAlertsValidationsRequest {
636    #[prost(message, optional, tag = "1")]
637    pub slo: ::core::option::Option<Slo>,
638}
639#[derive(serde::Serialize, serde::Deserialize)]
640#[serde(rename_all = "snake_case")]
641#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct ReplaceSloAlertsValidationsResponse {
643    #[prost(message, repeated, tag = "1")]
644    pub alerts_validation_result: ::prost::alloc::vec::Vec<SloAlertValidityResult>,
645}
646#[derive(serde::Serialize, serde::Deserialize)]
647#[serde(rename_all = "snake_case")]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct CreateSloRequest {
650    #[prost(message, optional, tag = "1")]
651    pub slo: ::core::option::Option<Slo>,
652    #[deprecated]
653    #[prost(bool, optional, tag = "2")]
654    pub silence_data_validations: ::core::option::Option<bool>,
655}
656#[derive(serde::Serialize, serde::Deserialize)]
657#[serde(rename_all = "snake_case")]
658#[derive(Clone, PartialEq, ::prost::Message)]
659pub struct CreateSloResponse {
660    #[prost(message, optional, tag = "1")]
661    pub slo: ::core::option::Option<Slo>,
662}
663#[derive(serde::Serialize, serde::Deserialize)]
664#[serde(rename_all = "snake_case")]
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct ReplaceSloRequest {
667    #[prost(message, optional, tag = "1")]
668    pub slo: ::core::option::Option<Slo>,
669    #[deprecated]
670    #[prost(bool, optional, tag = "2")]
671    pub silence_data_validations: ::core::option::Option<bool>,
672}
673#[derive(serde::Serialize, serde::Deserialize)]
674#[serde(rename_all = "snake_case")]
675#[derive(Clone, PartialEq, ::prost::Message)]
676pub struct ReplaceSloResponse {
677    #[prost(message, optional, tag = "1")]
678    pub slo: ::core::option::Option<Slo>,
679    #[prost(string, repeated, tag = "2")]
680    pub effected_slo_alert_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
681}
682#[derive(serde::Serialize, serde::Deserialize)]
683#[serde(rename_all = "snake_case")]
684#[derive(Clone, PartialEq, ::prost::Message)]
685pub struct DeleteSloRequest {
686    #[prost(string, tag = "1")]
687    pub id: ::prost::alloc::string::String,
688}
689#[derive(serde::Serialize, serde::Deserialize)]
690#[serde(rename_all = "snake_case")]
691#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct DeleteSloResponse {
693    #[prost(string, repeated, tag = "1")]
694    pub effected_slo_alert_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
695}
696#[derive(serde::Serialize, serde::Deserialize)]
697#[serde(rename_all = "snake_case")]
698#[derive(Clone, PartialEq, ::prost::Message)]
699pub struct GetSloRequest {
700    #[prost(string, tag = "1")]
701    pub id: ::prost::alloc::string::String,
702}
703#[derive(serde::Serialize, serde::Deserialize)]
704#[serde(rename_all = "snake_case")]
705#[derive(Clone, PartialEq, ::prost::Message)]
706pub struct GetSloResponse {
707    #[prost(message, optional, tag = "1")]
708    pub slo: ::core::option::Option<Slo>,
709}
710#[derive(serde::Serialize, serde::Deserialize)]
711#[serde(rename_all = "snake_case")]
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct ListSlosRequest {
714    #[prost(message, optional, tag = "1")]
715    pub filters: ::core::option::Option<SloFilters>,
716}
717#[derive(serde::Serialize, serde::Deserialize)]
718#[serde(rename_all = "snake_case")]
719#[derive(Clone, PartialEq, ::prost::Message)]
720pub struct ListSlosResponse {
721    #[prost(message, repeated, tag = "1")]
722    pub slos: ::prost::alloc::vec::Vec<Slo>,
723}
724#[derive(serde::Serialize, serde::Deserialize)]
725#[serde(rename_all = "snake_case")]
726#[derive(Clone, PartialEq, ::prost::Message)]
727pub struct BatchGetSlosRequest {
728    #[prost(string, repeated, tag = "1")]
729    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
730}
731#[derive(serde::Serialize, serde::Deserialize)]
732#[serde(rename_all = "snake_case")]
733#[derive(Clone, PartialEq, ::prost::Message)]
734pub struct BatchGetSlosResponse {
735    #[prost(message, repeated, tag = "1")]
736    pub slos: ::prost::alloc::vec::Vec<Slo>,
737    #[prost(string, repeated, tag = "2")]
738    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
739}
740#[derive(serde::Serialize, serde::Deserialize)]
741#[serde(rename_all = "snake_case")]
742#[derive(Clone, PartialEq, ::prost::Message)]
743pub struct SloExecutionRequest {
744    #[prost(oneof = "slo_execution_request::Request", tags = "1, 2, 3")]
745    pub request: ::core::option::Option<slo_execution_request::Request>,
746}
747/// Nested message and enum types in `SloExecutionRequest`.
748pub mod slo_execution_request {
749    #[derive(serde::Serialize, serde::Deserialize)]
750    #[serde(rename_all = "snake_case")]
751    #[derive(Clone, PartialEq, ::prost::Oneof)]
752    pub enum Request {
753        #[prost(message, tag = "1")]
754        CreateSloRequest(super::CreateSloRequest),
755        #[prost(message, tag = "2")]
756        ReplaceSloRequest(super::ReplaceSloRequest),
757        #[prost(message, tag = "3")]
758        DeleteSloRequest(super::DeleteSloRequest),
759    }
760}
761#[derive(serde::Serialize, serde::Deserialize)]
762#[serde(rename_all = "snake_case")]
763#[derive(Clone, PartialEq, ::prost::Message)]
764pub struct SloExecutionResponse {
765    #[prost(oneof = "slo_execution_response::Response", tags = "1, 2, 3")]
766    pub response: ::core::option::Option<slo_execution_response::Response>,
767}
768/// Nested message and enum types in `SloExecutionResponse`.
769pub mod slo_execution_response {
770    #[derive(serde::Serialize, serde::Deserialize)]
771    #[serde(rename_all = "snake_case")]
772    #[derive(Clone, PartialEq, ::prost::Oneof)]
773    pub enum Response {
774        #[prost(message, tag = "1")]
775        CreateSloResponse(super::CreateSloResponse),
776        #[prost(message, tag = "2")]
777        ReplaceSloResponse(super::ReplaceSloResponse),
778        #[prost(message, tag = "3")]
779        DeleteSloResponse(super::DeleteSloResponse),
780    }
781}
782#[derive(serde::Serialize, serde::Deserialize)]
783#[serde(rename_all = "snake_case")]
784#[derive(Clone, PartialEq, ::prost::Message)]
785pub struct BatchExecuteSloRequest {
786    #[prost(message, repeated, tag = "1")]
787    pub requests: ::prost::alloc::vec::Vec<SloExecutionRequest>,
788}
789#[derive(serde::Serialize, serde::Deserialize)]
790#[serde(rename_all = "snake_case")]
791#[derive(Clone, PartialEq, ::prost::Message)]
792pub struct BatchExecuteSloResponse {
793    #[prost(message, repeated, tag = "1")]
794    pub matching_responses: ::prost::alloc::vec::Vec<SloExecutionResponse>,
795    #[prost(message, optional, tag = "2")]
796    pub status: ::core::option::Option<ResponseStatus>,
797}
798#[derive(serde::Serialize, serde::Deserialize)]
799#[serde(rename_all = "snake_case")]
800#[derive(Clone, Copy, PartialEq, ::prost::Message)]
801pub struct GetZeroStateRequest {}
802#[derive(serde::Serialize, serde::Deserialize)]
803#[serde(rename_all = "snake_case")]
804#[derive(Clone, Copy, PartialEq, ::prost::Message)]
805pub struct GetZeroStateResponse {
806    #[prost(bool, tag = "1")]
807    pub zero_state: bool,
808}
809/// Generated client implementations.
810pub mod slos_service_client {
811    #![allow(
812        unused_variables,
813        dead_code,
814        missing_docs,
815        clippy::wildcard_imports,
816        clippy::let_unit_value,
817    )]
818    use tonic::codegen::*;
819    use tonic::codegen::http::Uri;
820    #[derive(Debug, Clone)]
821    pub struct SlosServiceClient<T> {
822        inner: tonic::client::Grpc<T>,
823    }
824    impl SlosServiceClient<tonic::transport::Channel> {
825        /// Attempt to create a new client by connecting to a given endpoint.
826        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
827        where
828            D: TryInto<tonic::transport::Endpoint>,
829            D::Error: Into<StdError>,
830        {
831            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
832            Ok(Self::new(conn))
833        }
834    }
835    impl<T> SlosServiceClient<T>
836    where
837        T: tonic::client::GrpcService<tonic::body::BoxBody>,
838        T::Error: Into<StdError>,
839        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
840        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
841    {
842        pub fn new(inner: T) -> Self {
843            let inner = tonic::client::Grpc::new(inner);
844            Self { inner }
845        }
846        pub fn with_origin(inner: T, origin: Uri) -> Self {
847            let inner = tonic::client::Grpc::with_origin(inner, origin);
848            Self { inner }
849        }
850        pub fn with_interceptor<F>(
851            inner: T,
852            interceptor: F,
853        ) -> SlosServiceClient<InterceptedService<T, F>>
854        where
855            F: tonic::service::Interceptor,
856            T::ResponseBody: Default,
857            T: tonic::codegen::Service<
858                http::Request<tonic::body::BoxBody>,
859                Response = http::Response<
860                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
861                >,
862            >,
863            <T as tonic::codegen::Service<
864                http::Request<tonic::body::BoxBody>,
865            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
866        {
867            SlosServiceClient::new(InterceptedService::new(inner, interceptor))
868        }
869        /// Compress requests with the given encoding.
870        ///
871        /// This requires the server to support it otherwise it might respond with an
872        /// error.
873        #[must_use]
874        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
875            self.inner = self.inner.send_compressed(encoding);
876            self
877        }
878        /// Enable decompressing responses.
879        #[must_use]
880        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
881            self.inner = self.inner.accept_compressed(encoding);
882            self
883        }
884        /// Limits the maximum size of a decoded message.
885        ///
886        /// Default: `4MB`
887        #[must_use]
888        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
889            self.inner = self.inner.max_decoding_message_size(limit);
890            self
891        }
892        /// Limits the maximum size of an encoded message.
893        ///
894        /// Default: `usize::MAX`
895        #[must_use]
896        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
897            self.inner = self.inner.max_encoding_message_size(limit);
898            self
899        }
900        pub async fn create_slo(
901            &mut self,
902            request: impl tonic::IntoRequest<super::CreateSloRequest>,
903        ) -> std::result::Result<
904            tonic::Response<super::CreateSloResponse>,
905            tonic::Status,
906        > {
907            self.inner
908                .ready()
909                .await
910                .map_err(|e| {
911                    tonic::Status::unknown(
912                        format!("Service was not ready: {}", e.into()),
913                    )
914                })?;
915            let codec = tonic::codec::ProstCodec::default();
916            let path = http::uri::PathAndQuery::from_static(
917                "/com.coralogixapis.slo.v1.SlosService/CreateSlo",
918            );
919            let mut req = request.into_request();
920            req.extensions_mut()
921                .insert(
922                    GrpcMethod::new("com.coralogixapis.slo.v1.SlosService", "CreateSlo"),
923                );
924            self.inner.unary(req, path, codec).await
925        }
926        pub async fn replace_slo(
927            &mut self,
928            request: impl tonic::IntoRequest<super::ReplaceSloRequest>,
929        ) -> std::result::Result<
930            tonic::Response<super::ReplaceSloResponse>,
931            tonic::Status,
932        > {
933            self.inner
934                .ready()
935                .await
936                .map_err(|e| {
937                    tonic::Status::unknown(
938                        format!("Service was not ready: {}", e.into()),
939                    )
940                })?;
941            let codec = tonic::codec::ProstCodec::default();
942            let path = http::uri::PathAndQuery::from_static(
943                "/com.coralogixapis.slo.v1.SlosService/ReplaceSlo",
944            );
945            let mut req = request.into_request();
946            req.extensions_mut()
947                .insert(
948                    GrpcMethod::new("com.coralogixapis.slo.v1.SlosService", "ReplaceSlo"),
949                );
950            self.inner.unary(req, path, codec).await
951        }
952        pub async fn validate_replace_slo_alerts(
953            &mut self,
954            request: impl tonic::IntoRequest<super::ReplaceSloAlertsValidationsRequest>,
955        ) -> std::result::Result<
956            tonic::Response<super::ReplaceSloAlertsValidationsResponse>,
957            tonic::Status,
958        > {
959            self.inner
960                .ready()
961                .await
962                .map_err(|e| {
963                    tonic::Status::unknown(
964                        format!("Service was not ready: {}", e.into()),
965                    )
966                })?;
967            let codec = tonic::codec::ProstCodec::default();
968            let path = http::uri::PathAndQuery::from_static(
969                "/com.coralogixapis.slo.v1.SlosService/ValidateReplaceSloAlerts",
970            );
971            let mut req = request.into_request();
972            req.extensions_mut()
973                .insert(
974                    GrpcMethod::new(
975                        "com.coralogixapis.slo.v1.SlosService",
976                        "ValidateReplaceSloAlerts",
977                    ),
978                );
979            self.inner.unary(req, path, codec).await
980        }
981        pub async fn delete_slo(
982            &mut self,
983            request: impl tonic::IntoRequest<super::DeleteSloRequest>,
984        ) -> std::result::Result<
985            tonic::Response<super::DeleteSloResponse>,
986            tonic::Status,
987        > {
988            self.inner
989                .ready()
990                .await
991                .map_err(|e| {
992                    tonic::Status::unknown(
993                        format!("Service was not ready: {}", e.into()),
994                    )
995                })?;
996            let codec = tonic::codec::ProstCodec::default();
997            let path = http::uri::PathAndQuery::from_static(
998                "/com.coralogixapis.slo.v1.SlosService/DeleteSlo",
999            );
1000            let mut req = request.into_request();
1001            req.extensions_mut()
1002                .insert(
1003                    GrpcMethod::new("com.coralogixapis.slo.v1.SlosService", "DeleteSlo"),
1004                );
1005            self.inner.unary(req, path, codec).await
1006        }
1007        pub async fn get_slo(
1008            &mut self,
1009            request: impl tonic::IntoRequest<super::GetSloRequest>,
1010        ) -> std::result::Result<tonic::Response<super::GetSloResponse>, tonic::Status> {
1011            self.inner
1012                .ready()
1013                .await
1014                .map_err(|e| {
1015                    tonic::Status::unknown(
1016                        format!("Service was not ready: {}", e.into()),
1017                    )
1018                })?;
1019            let codec = tonic::codec::ProstCodec::default();
1020            let path = http::uri::PathAndQuery::from_static(
1021                "/com.coralogixapis.slo.v1.SlosService/GetSlo",
1022            );
1023            let mut req = request.into_request();
1024            req.extensions_mut()
1025                .insert(
1026                    GrpcMethod::new("com.coralogixapis.slo.v1.SlosService", "GetSlo"),
1027                );
1028            self.inner.unary(req, path, codec).await
1029        }
1030        pub async fn list_slos(
1031            &mut self,
1032            request: impl tonic::IntoRequest<super::ListSlosRequest>,
1033        ) -> std::result::Result<
1034            tonic::Response<super::ListSlosResponse>,
1035            tonic::Status,
1036        > {
1037            self.inner
1038                .ready()
1039                .await
1040                .map_err(|e| {
1041                    tonic::Status::unknown(
1042                        format!("Service was not ready: {}", e.into()),
1043                    )
1044                })?;
1045            let codec = tonic::codec::ProstCodec::default();
1046            let path = http::uri::PathAndQuery::from_static(
1047                "/com.coralogixapis.slo.v1.SlosService/ListSlos",
1048            );
1049            let mut req = request.into_request();
1050            req.extensions_mut()
1051                .insert(
1052                    GrpcMethod::new("com.coralogixapis.slo.v1.SlosService", "ListSlos"),
1053                );
1054            self.inner.unary(req, path, codec).await
1055        }
1056        pub async fn get_zero_state(
1057            &mut self,
1058            request: impl tonic::IntoRequest<super::GetZeroStateRequest>,
1059        ) -> std::result::Result<
1060            tonic::Response<super::GetZeroStateResponse>,
1061            tonic::Status,
1062        > {
1063            self.inner
1064                .ready()
1065                .await
1066                .map_err(|e| {
1067                    tonic::Status::unknown(
1068                        format!("Service was not ready: {}", e.into()),
1069                    )
1070                })?;
1071            let codec = tonic::codec::ProstCodec::default();
1072            let path = http::uri::PathAndQuery::from_static(
1073                "/com.coralogixapis.slo.v1.SlosService/GetZeroState",
1074            );
1075            let mut req = request.into_request();
1076            req.extensions_mut()
1077                .insert(
1078                    GrpcMethod::new(
1079                        "com.coralogixapis.slo.v1.SlosService",
1080                        "GetZeroState",
1081                    ),
1082                );
1083            self.inner.unary(req, path, codec).await
1084        }
1085        pub async fn batch_get_slos(
1086            &mut self,
1087            request: impl tonic::IntoRequest<super::BatchGetSlosRequest>,
1088        ) -> std::result::Result<
1089            tonic::Response<super::BatchGetSlosResponse>,
1090            tonic::Status,
1091        > {
1092            self.inner
1093                .ready()
1094                .await
1095                .map_err(|e| {
1096                    tonic::Status::unknown(
1097                        format!("Service was not ready: {}", e.into()),
1098                    )
1099                })?;
1100            let codec = tonic::codec::ProstCodec::default();
1101            let path = http::uri::PathAndQuery::from_static(
1102                "/com.coralogixapis.slo.v1.SlosService/BatchGetSlos",
1103            );
1104            let mut req = request.into_request();
1105            req.extensions_mut()
1106                .insert(
1107                    GrpcMethod::new(
1108                        "com.coralogixapis.slo.v1.SlosService",
1109                        "BatchGetSlos",
1110                    ),
1111                );
1112            self.inner.unary(req, path, codec).await
1113        }
1114        pub async fn batch_execute_slo(
1115            &mut self,
1116            request: impl tonic::IntoRequest<super::BatchExecuteSloRequest>,
1117        ) -> std::result::Result<
1118            tonic::Response<super::BatchExecuteSloResponse>,
1119            tonic::Status,
1120        > {
1121            self.inner
1122                .ready()
1123                .await
1124                .map_err(|e| {
1125                    tonic::Status::unknown(
1126                        format!("Service was not ready: {}", e.into()),
1127                    )
1128                })?;
1129            let codec = tonic::codec::ProstCodec::default();
1130            let path = http::uri::PathAndQuery::from_static(
1131                "/com.coralogixapis.slo.v1.SlosService/BatchExecuteSlo",
1132            );
1133            let mut req = request.into_request();
1134            req.extensions_mut()
1135                .insert(
1136                    GrpcMethod::new(
1137                        "com.coralogixapis.slo.v1.SlosService",
1138                        "BatchExecuteSlo",
1139                    ),
1140                );
1141            self.inner.unary(req, path, codec).await
1142        }
1143    }
1144}