cx_api/generated/
com.coralogixapis.apm.services.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 SliFilter {
6    #[prost(message, optional, tag = "1")]
7    pub field: ::core::option::Option<::prost::alloc::string::String>,
8    #[prost(enumeration = "CompareType", tag = "2")]
9    pub compare_type: i32,
10    #[prost(message, repeated, tag = "3")]
11    pub field_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
12}
13#[derive(serde::Serialize, serde::Deserialize)]
14#[serde(rename_all = "snake_case")]
15#[derive(Clone, PartialEq, ::prost::Message)]
16pub struct LatencySli {
17    #[prost(message, optional, tag = "1")]
18    pub threshold_microseconds: ::core::option::Option<::prost::alloc::string::String>,
19    #[prost(enumeration = "ThresholdSymbol", tag = "2")]
20    pub threshold_symbol: i32,
21}
22#[derive(serde::Serialize, serde::Deserialize)]
23#[serde(rename_all = "snake_case")]
24#[derive(Clone, Copy, PartialEq, ::prost::Message)]
25pub struct ErrorSli {}
26#[derive(serde::Serialize, serde::Deserialize)]
27#[serde(rename_all = "snake_case")]
28#[derive(Clone, PartialEq, ::prost::Message)]
29pub struct ServiceSlo {
30    #[prost(message, optional, tag = "1")]
31    pub id: ::core::option::Option<::prost::alloc::string::String>,
32    #[prost(message, optional, tag = "2")]
33    pub name: ::core::option::Option<::prost::alloc::string::String>,
34    #[prost(message, optional, tag = "3")]
35    pub service_name: ::core::option::Option<::prost::alloc::string::String>,
36    #[prost(enumeration = "SloStatus", tag = "4")]
37    pub status: i32,
38    #[prost(message, optional, tag = "5")]
39    pub description: ::core::option::Option<::prost::alloc::string::String>,
40    #[prost(message, optional, tag = "6")]
41    pub target_percentage: ::core::option::Option<u32>,
42    #[prost(message, optional, tag = "7")]
43    pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
44    #[prost(message, optional, tag = "8")]
45    pub remaining_error_budget_percentage: ::core::option::Option<u32>,
46    #[prost(message, repeated, tag = "11")]
47    pub filters: ::prost::alloc::vec::Vec<SliFilter>,
48    #[prost(enumeration = "SloPeriod", tag = "12")]
49    pub period: i32,
50    #[prost(oneof = "service_slo::SliType", tags = "9, 10")]
51    pub sli_type: ::core::option::Option<service_slo::SliType>,
52}
53/// Nested message and enum types in `ServiceSlo`.
54pub mod service_slo {
55    #[derive(serde::Serialize, serde::Deserialize)]
56    #[serde(rename_all = "snake_case")]
57    #[derive(Clone, PartialEq, ::prost::Oneof)]
58    pub enum SliType {
59        #[prost(message, tag = "9")]
60        LatencySli(super::LatencySli),
61        #[prost(message, tag = "10")]
62        ErrorSli(super::ErrorSli),
63    }
64}
65#[derive(serde::Serialize, serde::Deserialize)]
66#[serde(rename_all = "snake_case")]
67#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
68#[repr(i32)]
69pub enum CompareType {
70    Unspecified = 0,
71    Is = 1,
72    StartWith = 2,
73    EndsWith = 3,
74    Includes = 4,
75}
76impl CompareType {
77    /// String value of the enum field names used in the ProtoBuf definition.
78    ///
79    /// The values are not transformed in any way and thus are considered stable
80    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
81    pub fn as_str_name(&self) -> &'static str {
82        match self {
83            Self::Unspecified => "COMPARE_TYPE_UNSPECIFIED",
84            Self::Is => "COMPARE_TYPE_IS",
85            Self::StartWith => "COMPARE_TYPE_START_WITH",
86            Self::EndsWith => "COMPARE_TYPE_ENDS_WITH",
87            Self::Includes => "COMPARE_TYPE_INCLUDES",
88        }
89    }
90    /// Creates an enum from field names used in the ProtoBuf definition.
91    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
92        match value {
93            "COMPARE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
94            "COMPARE_TYPE_IS" => Some(Self::Is),
95            "COMPARE_TYPE_START_WITH" => Some(Self::StartWith),
96            "COMPARE_TYPE_ENDS_WITH" => Some(Self::EndsWith),
97            "COMPARE_TYPE_INCLUDES" => Some(Self::Includes),
98            _ => None,
99        }
100    }
101}
102#[derive(serde::Serialize, serde::Deserialize)]
103#[serde(rename_all = "snake_case")]
104#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
105#[repr(i32)]
106pub enum SloStatus {
107    Unspecified = 0,
108    Ok = 1,
109    Breached = 2,
110}
111impl SloStatus {
112    /// String value of the enum field names used in the ProtoBuf definition.
113    ///
114    /// The values are not transformed in any way and thus are considered stable
115    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
116    pub fn as_str_name(&self) -> &'static str {
117        match self {
118            Self::Unspecified => "SLO_STATUS_UNSPECIFIED",
119            Self::Ok => "SLO_STATUS_OK",
120            Self::Breached => "SLO_STATUS_BREACHED",
121        }
122    }
123    /// Creates an enum from field names used in the ProtoBuf definition.
124    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
125        match value {
126            "SLO_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
127            "SLO_STATUS_OK" => Some(Self::Ok),
128            "SLO_STATUS_BREACHED" => Some(Self::Breached),
129            _ => None,
130        }
131    }
132}
133#[derive(serde::Serialize, serde::Deserialize)]
134#[serde(rename_all = "snake_case")]
135#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
136#[repr(i32)]
137pub enum SliMetricType {
138    Unspecified = 0,
139    Error = 1,
140    Latency = 2,
141    Custom = 3,
142}
143impl SliMetricType {
144    /// String value of the enum field names used in the ProtoBuf definition.
145    ///
146    /// The values are not transformed in any way and thus are considered stable
147    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
148    pub fn as_str_name(&self) -> &'static str {
149        match self {
150            Self::Unspecified => "SLI_METRIC_TYPE_UNSPECIFIED",
151            Self::Error => "SLI_METRIC_TYPE_ERROR",
152            Self::Latency => "SLI_METRIC_TYPE_LATENCY",
153            Self::Custom => "SLI_METRIC_TYPE_CUSTOM",
154        }
155    }
156    /// Creates an enum from field names used in the ProtoBuf definition.
157    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
158        match value {
159            "SLI_METRIC_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
160            "SLI_METRIC_TYPE_ERROR" => Some(Self::Error),
161            "SLI_METRIC_TYPE_LATENCY" => Some(Self::Latency),
162            "SLI_METRIC_TYPE_CUSTOM" => Some(Self::Custom),
163            _ => None,
164        }
165    }
166}
167#[derive(serde::Serialize, serde::Deserialize)]
168#[serde(rename_all = "snake_case")]
169#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
170#[repr(i32)]
171pub enum ThresholdSymbol {
172    Unspecified = 0,
173    Greater = 1,
174    GreaterOrEqual = 2,
175    Less = 3,
176    LessOrEqual = 4,
177    Equal = 5,
178    NotEqual = 6,
179}
180impl ThresholdSymbol {
181    /// String value of the enum field names used in the ProtoBuf definition.
182    ///
183    /// The values are not transformed in any way and thus are considered stable
184    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
185    pub fn as_str_name(&self) -> &'static str {
186        match self {
187            Self::Unspecified => "THRESHOLD_SYMBOL_UNSPECIFIED",
188            Self::Greater => "THRESHOLD_SYMBOL_GREATER",
189            Self::GreaterOrEqual => "THRESHOLD_SYMBOL_GREATER_OR_EQUAL",
190            Self::Less => "THRESHOLD_SYMBOL_LESS",
191            Self::LessOrEqual => "THRESHOLD_SYMBOL_LESS_OR_EQUAL",
192            Self::Equal => "THRESHOLD_SYMBOL_EQUAL",
193            Self::NotEqual => "THRESHOLD_SYMBOL_NOT_EQUAL",
194        }
195    }
196    /// Creates an enum from field names used in the ProtoBuf definition.
197    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
198        match value {
199            "THRESHOLD_SYMBOL_UNSPECIFIED" => Some(Self::Unspecified),
200            "THRESHOLD_SYMBOL_GREATER" => Some(Self::Greater),
201            "THRESHOLD_SYMBOL_GREATER_OR_EQUAL" => Some(Self::GreaterOrEqual),
202            "THRESHOLD_SYMBOL_LESS" => Some(Self::Less),
203            "THRESHOLD_SYMBOL_LESS_OR_EQUAL" => Some(Self::LessOrEqual),
204            "THRESHOLD_SYMBOL_EQUAL" => Some(Self::Equal),
205            "THRESHOLD_SYMBOL_NOT_EQUAL" => Some(Self::NotEqual),
206            _ => None,
207        }
208    }
209}
210#[derive(serde::Serialize, serde::Deserialize)]
211#[serde(rename_all = "snake_case")]
212#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
213#[repr(i32)]
214pub enum SloPeriod {
215    Unspecified = 0,
216    SloPeriod7Days = 1,
217    SloPeriod14Days = 2,
218    SloPeriod30Days = 3,
219}
220impl SloPeriod {
221    /// String value of the enum field names used in the ProtoBuf definition.
222    ///
223    /// The values are not transformed in any way and thus are considered stable
224    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
225    pub fn as_str_name(&self) -> &'static str {
226        match self {
227            Self::Unspecified => "SLO_PERIOD_UNSPECIFIED",
228            Self::SloPeriod7Days => "SLO_PERIOD_7_DAYS",
229            Self::SloPeriod14Days => "SLO_PERIOD_14_DAYS",
230            Self::SloPeriod30Days => "SLO_PERIOD_30_DAYS",
231        }
232    }
233    /// Creates an enum from field names used in the ProtoBuf definition.
234    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
235        match value {
236            "SLO_PERIOD_UNSPECIFIED" => Some(Self::Unspecified),
237            "SLO_PERIOD_7_DAYS" => Some(Self::SloPeriod7Days),
238            "SLO_PERIOD_14_DAYS" => Some(Self::SloPeriod14Days),
239            "SLO_PERIOD_30_DAYS" => Some(Self::SloPeriod30Days),
240            _ => None,
241        }
242    }
243}
244#[derive(serde::Serialize, serde::Deserialize)]
245#[serde(rename_all = "snake_case")]
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct GetServiceSloRequest {
248    #[prost(message, optional, tag = "1")]
249    pub id: ::core::option::Option<::prost::alloc::string::String>,
250}
251#[derive(serde::Serialize, serde::Deserialize)]
252#[serde(rename_all = "snake_case")]
253#[derive(Clone, PartialEq, ::prost::Message)]
254pub struct GetServiceSloResponse {
255    #[prost(message, optional, tag = "1")]
256    pub slo: ::core::option::Option<ServiceSlo>,
257}
258#[derive(serde::Serialize, serde::Deserialize)]
259#[serde(rename_all = "snake_case")]
260#[derive(Clone, PartialEq, ::prost::Message)]
261pub struct CreateServiceSloRequest {
262    #[prost(message, optional, tag = "1")]
263    pub slo: ::core::option::Option<ServiceSlo>,
264}
265#[derive(serde::Serialize, serde::Deserialize)]
266#[serde(rename_all = "snake_case")]
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct CreateServiceSloResponse {
269    #[prost(message, optional, tag = "1")]
270    pub slo: ::core::option::Option<ServiceSlo>,
271}
272#[derive(serde::Serialize, serde::Deserialize)]
273#[serde(rename_all = "snake_case")]
274#[derive(Clone, PartialEq, ::prost::Message)]
275pub struct ReplaceServiceSloRequest {
276    #[prost(message, optional, tag = "1")]
277    pub slo: ::core::option::Option<ServiceSlo>,
278}
279#[derive(serde::Serialize, serde::Deserialize)]
280#[serde(rename_all = "snake_case")]
281#[derive(Clone, PartialEq, ::prost::Message)]
282pub struct ReplaceServiceSloResponse {
283    #[prost(message, optional, tag = "1")]
284    pub slo: ::core::option::Option<ServiceSlo>,
285}
286#[derive(serde::Serialize, serde::Deserialize)]
287#[serde(rename_all = "snake_case")]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct DeleteServiceSloRequest {
290    #[prost(message, optional, tag = "1")]
291    pub id: ::core::option::Option<::prost::alloc::string::String>,
292}
293#[derive(serde::Serialize, serde::Deserialize)]
294#[serde(rename_all = "snake_case")]
295#[derive(Clone, Copy, PartialEq, ::prost::Message)]
296pub struct DeleteServiceSloResponse {}
297#[derive(serde::Serialize, serde::Deserialize)]
298#[serde(rename_all = "snake_case")]
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct ListServiceSlosRequest {
301    #[prost(message, optional, tag = "1")]
302    pub order_by: ::core::option::Option<super::super::common::v2::OrderBy>,
303    #[prost(message, repeated, tag = "2")]
304    pub service_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
305}
306#[derive(serde::Serialize, serde::Deserialize)]
307#[serde(rename_all = "snake_case")]
308#[derive(Clone, PartialEq, ::prost::Message)]
309pub struct ListServiceSlosResponse {
310    #[prost(message, repeated, tag = "1")]
311    pub slos: ::prost::alloc::vec::Vec<ServiceSlo>,
312}
313#[derive(serde::Serialize, serde::Deserialize)]
314#[serde(rename_all = "snake_case")]
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct BatchGetServiceSlosRequest {
317    #[prost(message, repeated, tag = "1")]
318    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
319}
320#[derive(serde::Serialize, serde::Deserialize)]
321#[serde(rename_all = "snake_case")]
322#[derive(Clone, PartialEq, ::prost::Message)]
323pub struct BatchGetServiceSlosResponse {
324    #[prost(map = "string, message", tag = "1")]
325    pub slos: ::std::collections::HashMap<::prost::alloc::string::String, ServiceSlo>,
326    #[prost(message, repeated, tag = "2")]
327    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
328}
329/// Generated client implementations.
330pub mod service_slo_service_client {
331    #![allow(
332        unused_variables,
333        dead_code,
334        missing_docs,
335        clippy::wildcard_imports,
336        clippy::let_unit_value,
337    )]
338    use tonic::codegen::*;
339    use tonic::codegen::http::Uri;
340    #[derive(Debug, Clone)]
341    pub struct ServiceSloServiceClient<T> {
342        inner: tonic::client::Grpc<T>,
343    }
344    impl ServiceSloServiceClient<tonic::transport::Channel> {
345        /// Attempt to create a new client by connecting to a given endpoint.
346        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
347        where
348            D: TryInto<tonic::transport::Endpoint>,
349            D::Error: Into<StdError>,
350        {
351            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
352            Ok(Self::new(conn))
353        }
354    }
355    impl<T> ServiceSloServiceClient<T>
356    where
357        T: tonic::client::GrpcService<tonic::body::BoxBody>,
358        T::Error: Into<StdError>,
359        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
360        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
361    {
362        pub fn new(inner: T) -> Self {
363            let inner = tonic::client::Grpc::new(inner);
364            Self { inner }
365        }
366        pub fn with_origin(inner: T, origin: Uri) -> Self {
367            let inner = tonic::client::Grpc::with_origin(inner, origin);
368            Self { inner }
369        }
370        pub fn with_interceptor<F>(
371            inner: T,
372            interceptor: F,
373        ) -> ServiceSloServiceClient<InterceptedService<T, F>>
374        where
375            F: tonic::service::Interceptor,
376            T::ResponseBody: Default,
377            T: tonic::codegen::Service<
378                http::Request<tonic::body::BoxBody>,
379                Response = http::Response<
380                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
381                >,
382            >,
383            <T as tonic::codegen::Service<
384                http::Request<tonic::body::BoxBody>,
385            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
386        {
387            ServiceSloServiceClient::new(InterceptedService::new(inner, interceptor))
388        }
389        /// Compress requests with the given encoding.
390        ///
391        /// This requires the server to support it otherwise it might respond with an
392        /// error.
393        #[must_use]
394        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
395            self.inner = self.inner.send_compressed(encoding);
396            self
397        }
398        /// Enable decompressing responses.
399        #[must_use]
400        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
401            self.inner = self.inner.accept_compressed(encoding);
402            self
403        }
404        /// Limits the maximum size of a decoded message.
405        ///
406        /// Default: `4MB`
407        #[must_use]
408        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
409            self.inner = self.inner.max_decoding_message_size(limit);
410            self
411        }
412        /// Limits the maximum size of an encoded message.
413        ///
414        /// Default: `usize::MAX`
415        #[must_use]
416        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
417            self.inner = self.inner.max_encoding_message_size(limit);
418            self
419        }
420        pub async fn get_service_slo(
421            &mut self,
422            request: impl tonic::IntoRequest<super::GetServiceSloRequest>,
423        ) -> std::result::Result<
424            tonic::Response<super::GetServiceSloResponse>,
425            tonic::Status,
426        > {
427            self.inner
428                .ready()
429                .await
430                .map_err(|e| {
431                    tonic::Status::unknown(
432                        format!("Service was not ready: {}", e.into()),
433                    )
434                })?;
435            let codec = tonic::codec::ProstCodec::default();
436            let path = http::uri::PathAndQuery::from_static(
437                "/com.coralogixapis.apm.services.v1.ServiceSloService/GetServiceSlo",
438            );
439            let mut req = request.into_request();
440            req.extensions_mut()
441                .insert(
442                    GrpcMethod::new(
443                        "com.coralogixapis.apm.services.v1.ServiceSloService",
444                        "GetServiceSlo",
445                    ),
446                );
447            self.inner.unary(req, path, codec).await
448        }
449        pub async fn create_service_slo(
450            &mut self,
451            request: impl tonic::IntoRequest<super::CreateServiceSloRequest>,
452        ) -> std::result::Result<
453            tonic::Response<super::CreateServiceSloResponse>,
454            tonic::Status,
455        > {
456            self.inner
457                .ready()
458                .await
459                .map_err(|e| {
460                    tonic::Status::unknown(
461                        format!("Service was not ready: {}", e.into()),
462                    )
463                })?;
464            let codec = tonic::codec::ProstCodec::default();
465            let path = http::uri::PathAndQuery::from_static(
466                "/com.coralogixapis.apm.services.v1.ServiceSloService/CreateServiceSlo",
467            );
468            let mut req = request.into_request();
469            req.extensions_mut()
470                .insert(
471                    GrpcMethod::new(
472                        "com.coralogixapis.apm.services.v1.ServiceSloService",
473                        "CreateServiceSlo",
474                    ),
475                );
476            self.inner.unary(req, path, codec).await
477        }
478        pub async fn replace_service_slo(
479            &mut self,
480            request: impl tonic::IntoRequest<super::ReplaceServiceSloRequest>,
481        ) -> std::result::Result<
482            tonic::Response<super::ReplaceServiceSloResponse>,
483            tonic::Status,
484        > {
485            self.inner
486                .ready()
487                .await
488                .map_err(|e| {
489                    tonic::Status::unknown(
490                        format!("Service was not ready: {}", e.into()),
491                    )
492                })?;
493            let codec = tonic::codec::ProstCodec::default();
494            let path = http::uri::PathAndQuery::from_static(
495                "/com.coralogixapis.apm.services.v1.ServiceSloService/ReplaceServiceSlo",
496            );
497            let mut req = request.into_request();
498            req.extensions_mut()
499                .insert(
500                    GrpcMethod::new(
501                        "com.coralogixapis.apm.services.v1.ServiceSloService",
502                        "ReplaceServiceSlo",
503                    ),
504                );
505            self.inner.unary(req, path, codec).await
506        }
507        pub async fn delete_service_slo(
508            &mut self,
509            request: impl tonic::IntoRequest<super::DeleteServiceSloRequest>,
510        ) -> std::result::Result<
511            tonic::Response<super::DeleteServiceSloResponse>,
512            tonic::Status,
513        > {
514            self.inner
515                .ready()
516                .await
517                .map_err(|e| {
518                    tonic::Status::unknown(
519                        format!("Service was not ready: {}", e.into()),
520                    )
521                })?;
522            let codec = tonic::codec::ProstCodec::default();
523            let path = http::uri::PathAndQuery::from_static(
524                "/com.coralogixapis.apm.services.v1.ServiceSloService/DeleteServiceSlo",
525            );
526            let mut req = request.into_request();
527            req.extensions_mut()
528                .insert(
529                    GrpcMethod::new(
530                        "com.coralogixapis.apm.services.v1.ServiceSloService",
531                        "DeleteServiceSlo",
532                    ),
533                );
534            self.inner.unary(req, path, codec).await
535        }
536        pub async fn list_service_slos(
537            &mut self,
538            request: impl tonic::IntoRequest<super::ListServiceSlosRequest>,
539        ) -> std::result::Result<
540            tonic::Response<super::ListServiceSlosResponse>,
541            tonic::Status,
542        > {
543            self.inner
544                .ready()
545                .await
546                .map_err(|e| {
547                    tonic::Status::unknown(
548                        format!("Service was not ready: {}", e.into()),
549                    )
550                })?;
551            let codec = tonic::codec::ProstCodec::default();
552            let path = http::uri::PathAndQuery::from_static(
553                "/com.coralogixapis.apm.services.v1.ServiceSloService/ListServiceSlos",
554            );
555            let mut req = request.into_request();
556            req.extensions_mut()
557                .insert(
558                    GrpcMethod::new(
559                        "com.coralogixapis.apm.services.v1.ServiceSloService",
560                        "ListServiceSlos",
561                    ),
562                );
563            self.inner.unary(req, path, codec).await
564        }
565        pub async fn batch_get_service_slos(
566            &mut self,
567            request: impl tonic::IntoRequest<super::BatchGetServiceSlosRequest>,
568        ) -> std::result::Result<
569            tonic::Response<super::BatchGetServiceSlosResponse>,
570            tonic::Status,
571        > {
572            self.inner
573                .ready()
574                .await
575                .map_err(|e| {
576                    tonic::Status::unknown(
577                        format!("Service was not ready: {}", e.into()),
578                    )
579                })?;
580            let codec = tonic::codec::ProstCodec::default();
581            let path = http::uri::PathAndQuery::from_static(
582                "/com.coralogixapis.apm.services.v1.ServiceSloService/BatchGetServiceSlos",
583            );
584            let mut req = request.into_request();
585            req.extensions_mut()
586                .insert(
587                    GrpcMethod::new(
588                        "com.coralogixapis.apm.services.v1.ServiceSloService",
589                        "BatchGetServiceSlos",
590                    ),
591                );
592            self.inner.unary(req, path, codec).await
593        }
594    }
595}