1#[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 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 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 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 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}
137pub 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 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 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 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 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}
237pub 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}
377pub 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 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 #[must_use]
442 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
443 self.inner = self.inner.send_compressed(encoding);
444 self
445 }
446 #[must_use]
448 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
449 self.inner = self.inner.accept_compressed(encoding);
450 self
451 }
452 #[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 #[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}