cx_api/generated/
com.coralogixapis.events.v3.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 CxEvent {
6    #[prost(message, optional, tag = "1")]
7    pub cx_event_key: ::core::option::Option<::prost::alloc::string::String>,
8    #[prost(message, optional, tag = "2")]
9    pub cx_event_type: ::core::option::Option<::prost::alloc::string::String>,
10    #[prost(map = "string, string", tag = "3")]
11    pub cx_event_labels: ::std::collections::HashMap<
12        ::prost::alloc::string::String,
13        ::prost::alloc::string::String,
14    >,
15    #[prost(message, optional, tag = "4")]
16    pub company_id: ::core::option::Option<i32>,
17    #[prost(message, optional, tag = "5")]
18    pub cx_event_timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
19    #[prost(message, optional, tag = "9")]
20    pub cx_event_payload_type: ::core::option::Option<::prost::alloc::string::String>,
21    #[prost(message, optional, tag = "6")]
22    pub cx_event_payload: ::core::option::Option<::prost_wkt_types::Struct>,
23    #[prost(message, optional, tag = "7")]
24    pub cx_event_dedup_key: ::core::option::Option<::prost::alloc::string::String>,
25    #[prost(map = "string, string", tag = "8")]
26    pub cx_event_metadata: ::std::collections::HashMap<
27        ::prost::alloc::string::String,
28        ::prost::alloc::string::String,
29    >,
30}
31#[derive(serde::Serialize, serde::Deserialize)]
32#[serde(rename_all = "snake_case")]
33#[derive(Clone, Copy, PartialEq, ::prost::Message)]
34pub struct OrderBy {
35    #[prost(enumeration = "OrderByFields", tag = "1")]
36    pub field_name: i32,
37    #[prost(enumeration = "OrderByDirection", tag = "2")]
38    pub direction: i32,
39}
40#[derive(serde::Serialize, serde::Deserialize)]
41#[serde(rename_all = "snake_case")]
42#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
43#[repr(i32)]
44pub enum OrderByFields {
45    Unspecified = 0,
46    Timestamp = 1,
47}
48impl OrderByFields {
49    /// String value of the enum field names used in the ProtoBuf definition.
50    ///
51    /// The values are not transformed in any way and thus are considered stable
52    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
53    pub fn as_str_name(&self) -> &'static str {
54        match self {
55            Self::Unspecified => "ORDER_BY_FIELDS_UNSPECIFIED",
56            Self::Timestamp => "ORDER_BY_FIELDS_TIMESTAMP",
57        }
58    }
59    /// Creates an enum from field names used in the ProtoBuf definition.
60    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
61        match value {
62            "ORDER_BY_FIELDS_UNSPECIFIED" => Some(Self::Unspecified),
63            "ORDER_BY_FIELDS_TIMESTAMP" => Some(Self::Timestamp),
64            _ => None,
65        }
66    }
67}
68#[derive(serde::Serialize, serde::Deserialize)]
69#[serde(rename_all = "snake_case")]
70#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
71#[repr(i32)]
72pub enum OrderByDirection {
73    Unspecified = 0,
74    Asc = 1,
75    Desc = 2,
76}
77impl OrderByDirection {
78    /// String value of the enum field names used in the ProtoBuf definition.
79    ///
80    /// The values are not transformed in any way and thus are considered stable
81    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
82    pub fn as_str_name(&self) -> &'static str {
83        match self {
84            Self::Unspecified => "ORDER_BY_DIRECTION_UNSPECIFIED",
85            Self::Asc => "ORDER_BY_DIRECTION_ASC",
86            Self::Desc => "ORDER_BY_DIRECTION_DESC",
87        }
88    }
89    /// Creates an enum from field names used in the ProtoBuf definition.
90    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
91        match value {
92            "ORDER_BY_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
93            "ORDER_BY_DIRECTION_ASC" => Some(Self::Asc),
94            "ORDER_BY_DIRECTION_DESC" => Some(Self::Desc),
95            _ => None,
96        }
97    }
98}
99#[derive(serde::Serialize, serde::Deserialize)]
100#[serde(rename_all = "snake_case")]
101#[derive(Clone, Copy, PartialEq, ::prost::Message)]
102pub struct EventsQueryFilter {
103    #[prost(message, optional, tag = "1")]
104    pub timestamp: ::core::option::Option<TimestampRange>,
105}
106#[derive(serde::Serialize, serde::Deserialize)]
107#[serde(rename_all = "snake_case")]
108#[derive(Clone, PartialEq, ::prost::Message)]
109pub struct EventsFilter {
110    #[prost(message, optional, tag = "1")]
111    pub timestamp: ::core::option::Option<TimestampRange>,
112    #[prost(message, repeated, tag = "2")]
113    pub cx_event_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
114    #[prost(message, repeated, tag = "4")]
115    pub cx_event_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
116    #[prost(message, optional, tag = "5")]
117    pub cx_event_metadata_filters: ::core::option::Option<Filters>,
118}
119#[derive(serde::Serialize, serde::Deserialize)]
120#[serde(rename_all = "snake_case")]
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct Filters {
123    #[prost(enumeration = "FilterOperator", tag = "1")]
124    pub operator: i32,
125    #[prost(message, repeated, tag = "2")]
126    pub path_and_values: ::prost::alloc::vec::Vec<FilterPathAndValues>,
127}
128#[derive(serde::Serialize, serde::Deserialize)]
129#[serde(rename_all = "snake_case")]
130#[derive(Clone, PartialEq, ::prost::Message)]
131pub struct FilterPathAndValues {
132    #[prost(message, optional, tag = "1")]
133    pub path: ::core::option::Option<::prost::alloc::string::String>,
134    #[prost(oneof = "filter_path_and_values::Values", tags = "100, 101")]
135    pub values: ::core::option::Option<filter_path_and_values::Values>,
136}
137/// Nested message and enum types in `FilterPathAndValues`.
138pub mod filter_path_and_values {
139    #[derive(serde::Serialize, serde::Deserialize)]
140    #[serde(rename_all = "snake_case")]
141    #[derive(Clone, PartialEq, ::prost::Oneof)]
142    pub enum Values {
143        #[prost(message, tag = "100")]
144        MultipleValues(super::MultipleValues),
145        #[prost(message, tag = "101")]
146        Filters(super::Filters),
147    }
148}
149#[derive(serde::Serialize, serde::Deserialize)]
150#[serde(rename_all = "snake_case")]
151#[derive(Clone, PartialEq, ::prost::Message)]
152pub struct MultipleValues {
153    #[prost(message, repeated, tag = "1")]
154    pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
155    #[prost(enumeration = "FilterMatcher", tag = "2")]
156    pub matcher: i32,
157}
158#[derive(serde::Serialize, serde::Deserialize)]
159#[serde(rename_all = "snake_case")]
160#[derive(Clone, Copy, PartialEq, ::prost::Message)]
161pub struct TimestampRange {
162    #[prost(message, optional, tag = "1")]
163    pub from: ::core::option::Option<::prost_wkt_types::Timestamp>,
164    #[prost(message, optional, tag = "2")]
165    pub to: ::core::option::Option<::prost_wkt_types::Timestamp>,
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 FilterOperator {
172    AndOrUnspecified = 0,
173    Or = 1,
174}
175impl FilterOperator {
176    /// String value of the enum field names used in the ProtoBuf definition.
177    ///
178    /// The values are not transformed in any way and thus are considered stable
179    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
180    pub fn as_str_name(&self) -> &'static str {
181        match self {
182            Self::AndOrUnspecified => "FILTER_OPERATOR_AND_OR_UNSPECIFIED",
183            Self::Or => "FILTER_OPERATOR_OR",
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            "FILTER_OPERATOR_AND_OR_UNSPECIFIED" => Some(Self::AndOrUnspecified),
190            "FILTER_OPERATOR_OR" => Some(Self::Or),
191            _ => None,
192        }
193    }
194}
195#[derive(serde::Serialize, serde::Deserialize)]
196#[serde(rename_all = "snake_case")]
197#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
198#[repr(i32)]
199pub enum FilterMatcher {
200    TextOrUnspecified = 0,
201    Regexp = 1,
202}
203impl FilterMatcher {
204    /// String value of the enum field names used in the ProtoBuf definition.
205    ///
206    /// The values are not transformed in any way and thus are considered stable
207    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
208    pub fn as_str_name(&self) -> &'static str {
209        match self {
210            Self::TextOrUnspecified => "FILTER_MATCHER_TEXT_OR_UNSPECIFIED",
211            Self::Regexp => "FILTER_MATCHER_REGEXP",
212        }
213    }
214    /// Creates an enum from field names used in the ProtoBuf definition.
215    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
216        match value {
217            "FILTER_MATCHER_TEXT_OR_UNSPECIFIED" => Some(Self::TextOrUnspecified),
218            "FILTER_MATCHER_REGEXP" => Some(Self::Regexp),
219            _ => None,
220        }
221    }
222}
223#[derive(serde::Serialize, serde::Deserialize)]
224#[serde(rename_all = "snake_case")]
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct CxEventArray {
227    #[prost(message, repeated, tag = "1")]
228    pub events: ::prost::alloc::vec::Vec<CxEvent>,
229}
230#[derive(serde::Serialize, serde::Deserialize)]
231#[serde(rename_all = "snake_case")]
232#[derive(Clone, PartialEq, ::prost::Message)]
233pub struct CxEventSingleOrMultiple {
234    #[prost(oneof = "cx_event_single_or_multiple::Event", tags = "1, 2")]
235    pub event: ::core::option::Option<cx_event_single_or_multiple::Event>,
236}
237/// Nested message and enum types in `CxEventSingleOrMultiple`.
238pub mod cx_event_single_or_multiple {
239    #[derive(serde::Serialize, serde::Deserialize)]
240    #[serde(rename_all = "snake_case")]
241    #[derive(Clone, PartialEq, ::prost::Oneof)]
242    pub enum Event {
243        #[prost(message, tag = "1")]
244        SingleEvent(super::CxEvent),
245        #[prost(message, tag = "2")]
246        MultipleEvents(super::CxEventArray),
247    }
248}
249#[derive(serde::Serialize, serde::Deserialize)]
250#[serde(rename_all = "snake_case")]
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct GetEventRequest {
253    #[prost(message, optional, tag = "1")]
254    pub id: ::core::option::Option<::prost::alloc::string::String>,
255    #[prost(message, repeated, tag = "2")]
256    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
257    #[prost(message, optional, tag = "3")]
258    pub pagination: ::core::option::Option<PaginationRequest>,
259}
260#[derive(serde::Serialize, serde::Deserialize)]
261#[serde(rename_all = "snake_case")]
262#[derive(Clone, PartialEq, ::prost::Message)]
263pub struct GetEventResponse {
264    #[prost(message, optional, tag = "1")]
265    pub event: ::core::option::Option<CxEventSingleOrMultiple>,
266    #[prost(message, optional, tag = "2")]
267    pub pagination: ::core::option::Option<PaginationResponse>,
268}
269#[derive(serde::Serialize, serde::Deserialize)]
270#[serde(rename_all = "snake_case")]
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct BatchGetEventRequest {
273    #[prost(message, repeated, tag = "1")]
274    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
275    #[prost(message, repeated, tag = "2")]
276    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
277    #[prost(message, optional, tag = "3")]
278    pub pagination: ::core::option::Option<PaginationRequest>,
279    #[prost(message, optional, tag = "4")]
280    pub filter: ::core::option::Option<EventsQueryFilter>,
281}
282#[derive(serde::Serialize, serde::Deserialize)]
283#[serde(rename_all = "snake_case")]
284#[derive(Clone, PartialEq, ::prost::Message)]
285pub struct BatchGetEventResponse {
286    #[prost(map = "string, message", tag = "1")]
287    pub events: ::std::collections::HashMap<
288        ::prost::alloc::string::String,
289        CxEventSingleOrMultiple,
290    >,
291    #[prost(message, repeated, tag = "2")]
292    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
293    #[prost(message, optional, tag = "3")]
294    pub pagination: ::core::option::Option<PaginationResponse>,
295}
296#[derive(serde::Serialize, serde::Deserialize)]
297#[serde(rename_all = "snake_case")]
298#[derive(Clone, PartialEq, ::prost::Message)]
299pub struct PaginationRequest {
300    #[prost(message, optional, tag = "1")]
301    pub page_size: ::core::option::Option<u32>,
302    #[prost(message, optional, tag = "2")]
303    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
304}
305#[derive(serde::Serialize, serde::Deserialize)]
306#[serde(rename_all = "snake_case")]
307#[derive(Clone, PartialEq, ::prost::Message)]
308pub struct PaginationResponse {
309    #[prost(message, optional, tag = "1")]
310    pub total_size: ::core::option::Option<u32>,
311    #[prost(message, optional, tag = "2")]
312    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
313}
314#[derive(serde::Serialize, serde::Deserialize)]
315#[serde(rename_all = "snake_case")]
316#[derive(Clone, PartialEq, ::prost::Message)]
317pub struct ListEventsRequest {
318    #[prost(message, optional, tag = "1")]
319    pub filter: ::core::option::Option<EventsFilter>,
320    #[prost(message, repeated, tag = "2")]
321    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
322    #[prost(message, optional, tag = "3")]
323    pub pagination: ::core::option::Option<PaginationRequest>,
324}
325#[derive(serde::Serialize, serde::Deserialize)]
326#[serde(rename_all = "snake_case")]
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct ListEventsResponse {
329    #[prost(message, repeated, tag = "1")]
330    pub events: ::prost::alloc::vec::Vec<CxEvent>,
331    #[prost(message, optional, tag = "2")]
332    pub pagination: ::core::option::Option<PaginationResponse>,
333}
334#[derive(serde::Serialize, serde::Deserialize)]
335#[serde(rename_all = "snake_case")]
336#[derive(Clone, PartialEq, ::prost::Message)]
337pub struct GetEventsStatisticsRequest {
338    #[prost(message, optional, tag = "1")]
339    pub filter: ::core::option::Option<EventsFilter>,
340}
341#[derive(serde::Serialize, serde::Deserialize)]
342#[serde(rename_all = "snake_case")]
343#[derive(Clone, PartialEq, ::prost::Message)]
344pub struct GetEventsStatisticsResponse {
345    #[prost(map = "string, message", tag = "1")]
346    pub cx_event_metadata_field_statistics: ::std::collections::HashMap<
347        ::prost::alloc::string::String,
348        FieldStatistics,
349    >,
350}
351#[derive(serde::Serialize, serde::Deserialize)]
352#[serde(rename_all = "snake_case")]
353#[derive(Clone, PartialEq, ::prost::Message)]
354pub struct FieldStatistics {
355    #[prost(map = "string, message", tag = "1")]
356    pub field_statistics: ::std::collections::HashMap<
357        ::prost::alloc::string::String,
358        i64,
359    >,
360}
361#[derive(serde::Serialize, serde::Deserialize)]
362#[serde(rename_all = "snake_case")]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct ListEventsCountRequest {
365    #[prost(message, optional, tag = "1")]
366    pub filter: ::core::option::Option<EventsFilter>,
367}
368#[derive(serde::Serialize, serde::Deserialize)]
369#[serde(rename_all = "snake_case")]
370#[derive(Clone, Copy, PartialEq, ::prost::Message)]
371pub struct ListEventsCountResponse {
372    #[prost(message, optional, tag = "1")]
373    pub count: ::core::option::Option<u64>,
374    #[prost(message, optional, tag = "2")]
375    pub reached_limit: ::core::option::Option<bool>,
376}
377/// Generated client implementations.
378pub mod events_service_client {
379    #![allow(
380        unused_variables,
381        dead_code,
382        missing_docs,
383        clippy::wildcard_imports,
384        clippy::let_unit_value,
385    )]
386    use tonic::codegen::*;
387    use tonic::codegen::http::Uri;
388    #[derive(Debug, Clone)]
389    pub struct EventsServiceClient<T> {
390        inner: tonic::client::Grpc<T>,
391    }
392    impl EventsServiceClient<tonic::transport::Channel> {
393        /// Attempt to create a new client by connecting to a given endpoint.
394        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
395        where
396            D: TryInto<tonic::transport::Endpoint>,
397            D::Error: Into<StdError>,
398        {
399            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
400            Ok(Self::new(conn))
401        }
402    }
403    impl<T> EventsServiceClient<T>
404    where
405        T: tonic::client::GrpcService<tonic::body::BoxBody>,
406        T::Error: Into<StdError>,
407        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
408        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
409    {
410        pub fn new(inner: T) -> Self {
411            let inner = tonic::client::Grpc::new(inner);
412            Self { inner }
413        }
414        pub fn with_origin(inner: T, origin: Uri) -> Self {
415            let inner = tonic::client::Grpc::with_origin(inner, origin);
416            Self { inner }
417        }
418        pub fn with_interceptor<F>(
419            inner: T,
420            interceptor: F,
421        ) -> EventsServiceClient<InterceptedService<T, F>>
422        where
423            F: tonic::service::Interceptor,
424            T::ResponseBody: Default,
425            T: tonic::codegen::Service<
426                http::Request<tonic::body::BoxBody>,
427                Response = http::Response<
428                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
429                >,
430            >,
431            <T as tonic::codegen::Service<
432                http::Request<tonic::body::BoxBody>,
433            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
434        {
435            EventsServiceClient::new(InterceptedService::new(inner, interceptor))
436        }
437        /// Compress requests with the given encoding.
438        ///
439        /// This requires the server to support it otherwise it might respond with an
440        /// error.
441        #[must_use]
442        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
443            self.inner = self.inner.send_compressed(encoding);
444            self
445        }
446        /// Enable decompressing responses.
447        #[must_use]
448        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
449            self.inner = self.inner.accept_compressed(encoding);
450            self
451        }
452        /// Limits the maximum size of a decoded message.
453        ///
454        /// Default: `4MB`
455        #[must_use]
456        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
457            self.inner = self.inner.max_decoding_message_size(limit);
458            self
459        }
460        /// Limits the maximum size of an encoded message.
461        ///
462        /// Default: `usize::MAX`
463        #[must_use]
464        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
465            self.inner = self.inner.max_encoding_message_size(limit);
466            self
467        }
468        pub async fn get_event(
469            &mut self,
470            request: impl tonic::IntoRequest<super::GetEventRequest>,
471        ) -> std::result::Result<
472            tonic::Response<super::GetEventResponse>,
473            tonic::Status,
474        > {
475            self.inner
476                .ready()
477                .await
478                .map_err(|e| {
479                    tonic::Status::unknown(
480                        format!("Service was not ready: {}", e.into()),
481                    )
482                })?;
483            let codec = tonic::codec::ProstCodec::default();
484            let path = http::uri::PathAndQuery::from_static(
485                "/com.coralogixapis.events.v3.EventsService/GetEvent",
486            );
487            let mut req = request.into_request();
488            req.extensions_mut()
489                .insert(
490                    GrpcMethod::new(
491                        "com.coralogixapis.events.v3.EventsService",
492                        "GetEvent",
493                    ),
494                );
495            self.inner.unary(req, path, codec).await
496        }
497        pub async fn batch_get_event(
498            &mut self,
499            request: impl tonic::IntoRequest<super::BatchGetEventRequest>,
500        ) -> std::result::Result<
501            tonic::Response<super::BatchGetEventResponse>,
502            tonic::Status,
503        > {
504            self.inner
505                .ready()
506                .await
507                .map_err(|e| {
508                    tonic::Status::unknown(
509                        format!("Service was not ready: {}", e.into()),
510                    )
511                })?;
512            let codec = tonic::codec::ProstCodec::default();
513            let path = http::uri::PathAndQuery::from_static(
514                "/com.coralogixapis.events.v3.EventsService/BatchGetEvent",
515            );
516            let mut req = request.into_request();
517            req.extensions_mut()
518                .insert(
519                    GrpcMethod::new(
520                        "com.coralogixapis.events.v3.EventsService",
521                        "BatchGetEvent",
522                    ),
523                );
524            self.inner.unary(req, path, codec).await
525        }
526        pub async fn list_events(
527            &mut self,
528            request: impl tonic::IntoRequest<super::ListEventsRequest>,
529        ) -> std::result::Result<
530            tonic::Response<super::ListEventsResponse>,
531            tonic::Status,
532        > {
533            self.inner
534                .ready()
535                .await
536                .map_err(|e| {
537                    tonic::Status::unknown(
538                        format!("Service was not ready: {}", e.into()),
539                    )
540                })?;
541            let codec = tonic::codec::ProstCodec::default();
542            let path = http::uri::PathAndQuery::from_static(
543                "/com.coralogixapis.events.v3.EventsService/ListEvents",
544            );
545            let mut req = request.into_request();
546            req.extensions_mut()
547                .insert(
548                    GrpcMethod::new(
549                        "com.coralogixapis.events.v3.EventsService",
550                        "ListEvents",
551                    ),
552                );
553            self.inner.unary(req, path, codec).await
554        }
555        pub async fn list_events_count(
556            &mut self,
557            request: impl tonic::IntoRequest<super::ListEventsCountRequest>,
558        ) -> std::result::Result<
559            tonic::Response<super::ListEventsCountResponse>,
560            tonic::Status,
561        > {
562            self.inner
563                .ready()
564                .await
565                .map_err(|e| {
566                    tonic::Status::unknown(
567                        format!("Service was not ready: {}", e.into()),
568                    )
569                })?;
570            let codec = tonic::codec::ProstCodec::default();
571            let path = http::uri::PathAndQuery::from_static(
572                "/com.coralogixapis.events.v3.EventsService/ListEventsCount",
573            );
574            let mut req = request.into_request();
575            req.extensions_mut()
576                .insert(
577                    GrpcMethod::new(
578                        "com.coralogixapis.events.v3.EventsService",
579                        "ListEventsCount",
580                    ),
581                );
582            self.inner.unary(req, path, codec).await
583        }
584        pub async fn get_events_statistics(
585            &mut self,
586            request: impl tonic::IntoRequest<super::GetEventsStatisticsRequest>,
587        ) -> std::result::Result<
588            tonic::Response<super::GetEventsStatisticsResponse>,
589            tonic::Status,
590        > {
591            self.inner
592                .ready()
593                .await
594                .map_err(|e| {
595                    tonic::Status::unknown(
596                        format!("Service was not ready: {}", e.into()),
597                    )
598                })?;
599            let codec = tonic::codec::ProstCodec::default();
600            let path = http::uri::PathAndQuery::from_static(
601                "/com.coralogixapis.events.v3.EventsService/GetEventsStatistics",
602            );
603            let mut req = request.into_request();
604            req.extensions_mut()
605                .insert(
606                    GrpcMethod::new(
607                        "com.coralogixapis.events.v3.EventsService",
608                        "GetEventsStatistics",
609                    ),
610                );
611            self.inner.unary(req, path, codec).await
612        }
613    }
614}