cx_api/generated/
com.coralogixapis.events2metrics.v2.rs

1// This file is @generated by prost-build.
2/// E2M represents the Event to metrics base model.
3#[derive(serde::Serialize, serde::Deserialize)]
4#[serde(rename_all = "snake_case")]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct E2m {
7    /// E2M unique ID, required on update requests
8    #[prost(message, optional, tag = "1")]
9    pub id: ::core::option::Option<::prost::alloc::string::String>,
10    /// Name of the E2M
11    #[prost(message, optional, tag = "2")]
12    pub name: ::core::option::Option<::prost::alloc::string::String>,
13    /// Description of the E2M
14    #[prost(message, optional, tag = "3")]
15    pub description: ::core::option::Option<::prost::alloc::string::String>,
16    /// E2M create time
17    #[prost(message, optional, tag = "4")]
18    pub create_time: ::core::option::Option<::prost::alloc::string::String>,
19    /// E2M update time
20    #[prost(message, optional, tag = "5")]
21    pub update_time: ::core::option::Option<::prost::alloc::string::String>,
22    /// Represents the limit of the permutations and if the limit was exceeded
23    #[prost(message, optional, tag = "6")]
24    pub permutations: ::core::option::Option<E2mPermutations>,
25    /// E2M metric labels
26    #[prost(message, repeated, tag = "7")]
27    pub metric_labels: ::prost::alloc::vec::Vec<MetricLabel>,
28    /// E2M metric fields
29    #[prost(message, repeated, tag = "8")]
30    pub metric_fields: ::prost::alloc::vec::Vec<MetricField>,
31    /// E2M type logs2metrics/spans2metrics
32    #[prost(enumeration = "E2mType", tag = "9")]
33    pub r#type: i32,
34    /// A flag that represents if the e2m is for internal usage
35    #[prost(message, optional, tag = "12")]
36    pub is_internal: ::core::option::Option<bool>,
37    /// Spans or logs type query
38    #[prost(oneof = "e2m::Query", tags = "10, 11")]
39    pub query: ::core::option::Option<e2m::Query>,
40}
41/// Nested message and enum types in `E2M`.
42pub mod e2m {
43    /// Spans or logs type query
44    #[derive(serde::Serialize, serde::Deserialize)]
45    #[serde(rename_all = "snake_case")]
46    #[derive(Clone, PartialEq, ::prost::Oneof)]
47    pub enum Query {
48        /// E2M spans query
49        #[prost(message, tag = "10")]
50        SpansQuery(super::super::super::spans2metrics::v2::SpansQuery),
51        ///   E2M logs query
52        #[prost(message, tag = "11")]
53        LogsQuery(super::super::super::logs2metrics::v2::LogsQuery),
54    }
55}
56/// E2M Create message
57#[derive(serde::Serialize, serde::Deserialize)]
58#[serde(rename_all = "snake_case")]
59#[derive(Clone, PartialEq, ::prost::Message)]
60pub struct E2mCreateParams {
61    /// Name of E2M to create
62    #[prost(message, optional, tag = "1")]
63    pub name: ::core::option::Option<::prost::alloc::string::String>,
64    /// Description of E2M to create
65    #[prost(message, optional, tag = "2")]
66    pub description: ::core::option::Option<::prost::alloc::string::String>,
67    /// The permutation limit of the E2M
68    #[prost(message, optional, tag = "3")]
69    pub permutations_limit: ::core::option::Option<i32>,
70    /// E2M metric labels
71    #[prost(message, repeated, tag = "4")]
72    pub metric_labels: ::prost::alloc::vec::Vec<MetricLabel>,
73    /// E2M metric fields
74    #[prost(message, repeated, tag = "5")]
75    pub metric_fields: ::prost::alloc::vec::Vec<MetricField>,
76    /// E2M type
77    #[prost(enumeration = "E2mType", tag = "6")]
78    pub r#type: i32,
79    /// E2M spans or logs query type
80    #[prost(oneof = "e2m_create_params::Query", tags = "7, 8")]
81    pub query: ::core::option::Option<e2m_create_params::Query>,
82}
83/// Nested message and enum types in `E2MCreateParams`.
84pub mod e2m_create_params {
85    /// E2M spans or logs query type
86    #[derive(serde::Serialize, serde::Deserialize)]
87    #[serde(rename_all = "snake_case")]
88    #[derive(Clone, PartialEq, ::prost::Oneof)]
89    pub enum Query {
90        /// E2M span query
91        #[prost(message, tag = "7")]
92        SpansQuery(super::super::super::spans2metrics::v2::SpansQuery),
93        /// E2M logs query
94        #[prost(message, tag = "8")]
95        LogsQuery(super::super::super::logs2metrics::v2::LogsQuery),
96    }
97}
98/// Represents e2m permutation limit
99#[derive(serde::Serialize, serde::Deserialize)]
100#[serde(rename_all = "snake_case")]
101#[derive(Clone, Copy, PartialEq, ::prost::Message)]
102pub struct E2mPermutations {
103    /// E2M permutation limit
104    #[prost(int32, tag = "1")]
105    pub limit: i32,
106    /// Flag to indicate if limit was exceeded
107    #[prost(bool, tag = "2")]
108    pub has_exceeded_limit: bool,
109}
110/// E2M metric label
111#[derive(serde::Serialize, serde::Deserialize)]
112#[serde(rename_all = "snake_case")]
113#[derive(Clone, PartialEq, ::prost::Message)]
114pub struct MetricLabel {
115    /// Metric label target alias name
116    #[prost(message, optional, tag = "1")]
117    pub target_label: ::core::option::Option<::prost::alloc::string::String>,
118    /// Metric label source field
119    #[prost(message, optional, tag = "2")]
120    pub source_field: ::core::option::Option<::prost::alloc::string::String>,
121}
122/// E2M metric field
123#[derive(serde::Serialize, serde::Deserialize)]
124#[serde(rename_all = "snake_case")]
125#[derive(Clone, PartialEq, ::prost::Message)]
126pub struct MetricField {
127    /// Target metric field alias name
128    #[prost(message, optional, tag = "1")]
129    pub target_base_metric_name: ::core::option::Option<::prost::alloc::string::String>,
130    /// Source field
131    #[prost(message, optional, tag = "2")]
132    pub source_field: ::core::option::Option<::prost::alloc::string::String>,
133    /// Represents Aggregation type list
134    #[prost(message, repeated, tag = "7")]
135    pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
136}
137/// E2M aggregation
138#[derive(serde::Serialize, serde::Deserialize)]
139#[serde(rename_all = "snake_case")]
140#[derive(Clone, PartialEq, ::prost::Message)]
141pub struct Aggregation {
142    /// Is enabled
143    #[prost(bool, tag = "1")]
144    pub enabled: bool,
145    /// Aggregation type
146    #[prost(enumeration = "aggregation::AggType", tag = "2")]
147    pub agg_type: i32,
148    /// Target metric field alias name
149    #[prost(string, tag = "3")]
150    pub target_metric_name: ::prost::alloc::string::String,
151    /// Aggregate metadata, samples or histogram type
152    #[prost(oneof = "aggregation::AggMetadata", tags = "4, 5")]
153    pub agg_metadata: ::core::option::Option<aggregation::AggMetadata>,
154}
155/// Nested message and enum types in `Aggregation`.
156pub mod aggregation {
157    /// Enum - Aggregation type
158    #[derive(serde::Serialize, serde::Deserialize)]
159    #[serde(rename_all = "snake_case")]
160    #[derive(
161        Clone,
162        Copy,
163        Debug,
164        PartialEq,
165        Eq,
166        Hash,
167        PartialOrd,
168        Ord,
169        ::prost::Enumeration
170    )]
171    #[repr(i32)]
172    pub enum AggType {
173        Unspecified = 0,
174        Min = 1,
175        Max = 2,
176        Count = 3,
177        Avg = 4,
178        Sum = 5,
179        Histogram = 6,
180        Samples = 7,
181    }
182    impl AggType {
183        /// String value of the enum field names used in the ProtoBuf definition.
184        ///
185        /// The values are not transformed in any way and thus are considered stable
186        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
187        pub fn as_str_name(&self) -> &'static str {
188            match self {
189                Self::Unspecified => "AGG_TYPE_UNSPECIFIED",
190                Self::Min => "AGG_TYPE_MIN",
191                Self::Max => "AGG_TYPE_MAX",
192                Self::Count => "AGG_TYPE_COUNT",
193                Self::Avg => "AGG_TYPE_AVG",
194                Self::Sum => "AGG_TYPE_SUM",
195                Self::Histogram => "AGG_TYPE_HISTOGRAM",
196                Self::Samples => "AGG_TYPE_SAMPLES",
197            }
198        }
199        /// Creates an enum from field names used in the ProtoBuf definition.
200        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
201            match value {
202                "AGG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
203                "AGG_TYPE_MIN" => Some(Self::Min),
204                "AGG_TYPE_MAX" => Some(Self::Max),
205                "AGG_TYPE_COUNT" => Some(Self::Count),
206                "AGG_TYPE_AVG" => Some(Self::Avg),
207                "AGG_TYPE_SUM" => Some(Self::Sum),
208                "AGG_TYPE_HISTOGRAM" => Some(Self::Histogram),
209                "AGG_TYPE_SAMPLES" => Some(Self::Samples),
210                _ => None,
211            }
212        }
213    }
214    /// Aggregate metadata, samples or histogram type
215    #[derive(serde::Serialize, serde::Deserialize)]
216    #[serde(rename_all = "snake_case")]
217    #[derive(Clone, PartialEq, ::prost::Oneof)]
218    pub enum AggMetadata {
219        /// E2M sample type metadata
220        #[prost(message, tag = "4")]
221        Samples(super::E2mAggSamples),
222        /// E2M aggregate histogram type metadata
223        #[prost(message, tag = "5")]
224        Histogram(super::E2mAggHistogram),
225    }
226}
227/// E2M aggregate sample type
228#[derive(serde::Serialize, serde::Deserialize)]
229#[serde(rename_all = "snake_case")]
230#[derive(Clone, Copy, PartialEq, ::prost::Message)]
231pub struct E2mAggSamples {
232    /// Sample type min/max
233    #[prost(enumeration = "e2m_agg_samples::SampleType", tag = "2")]
234    pub sample_type: i32,
235}
236/// Nested message and enum types in `E2MAggSamples`.
237pub mod e2m_agg_samples {
238    /// Enum of aggregate type
239    #[derive(serde::Serialize, serde::Deserialize)]
240    #[serde(rename_all = "snake_case")]
241    #[derive(
242        Clone,
243        Copy,
244        Debug,
245        PartialEq,
246        Eq,
247        Hash,
248        PartialOrd,
249        Ord,
250        ::prost::Enumeration
251    )]
252    #[repr(i32)]
253    pub enum SampleType {
254        Unspecified = 0,
255        Min = 1,
256        Max = 2,
257    }
258    impl SampleType {
259        /// String value of the enum field names used in the ProtoBuf definition.
260        ///
261        /// The values are not transformed in any way and thus are considered stable
262        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
263        pub fn as_str_name(&self) -> &'static str {
264            match self {
265                Self::Unspecified => "SAMPLE_TYPE_UNSPECIFIED",
266                Self::Min => "SAMPLE_TYPE_MIN",
267                Self::Max => "SAMPLE_TYPE_MAX",
268            }
269        }
270        /// Creates an enum from field names used in the ProtoBuf definition.
271        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
272            match value {
273                "SAMPLE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
274                "SAMPLE_TYPE_MIN" => Some(Self::Min),
275                "SAMPLE_TYPE_MAX" => Some(Self::Max),
276                _ => None,
277            }
278        }
279    }
280}
281/// Represents the e2m aggregate histogram
282#[derive(serde::Serialize, serde::Deserialize)]
283#[serde(rename_all = "snake_case")]
284#[derive(Clone, PartialEq, ::prost::Message)]
285pub struct E2mAggHistogram {
286    /// Buckets of the E2M
287    #[prost(float, repeated, packed = "false", tag = "1")]
288    pub buckets: ::prost::alloc::vec::Vec<f32>,
289}
290/// Enum defining e2m type
291#[derive(serde::Serialize, serde::Deserialize)]
292#[serde(rename_all = "snake_case")]
293#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
294#[repr(i32)]
295pub enum E2mType {
296    Unspecified = 0,
297    Logs2metrics = 1,
298    Spans2metrics = 2,
299}
300impl E2mType {
301    /// String value of the enum field names used in the ProtoBuf definition.
302    ///
303    /// The values are not transformed in any way and thus are considered stable
304    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
305    pub fn as_str_name(&self) -> &'static str {
306        match self {
307            Self::Unspecified => "E2M_TYPE_UNSPECIFIED",
308            Self::Logs2metrics => "E2M_TYPE_LOGS2METRICS",
309            Self::Spans2metrics => "E2M_TYPE_SPANS2METRICS",
310        }
311    }
312    /// Creates an enum from field names used in the ProtoBuf definition.
313    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
314        match value {
315            "E2M_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
316            "E2M_TYPE_LOGS2METRICS" => Some(Self::Logs2metrics),
317            "E2M_TYPE_SPANS2METRICS" => Some(Self::Spans2metrics),
318            _ => None,
319        }
320    }
321}
322/// represents e2m create request
323#[derive(serde::Serialize, serde::Deserialize)]
324#[serde(rename_all = "snake_case")]
325#[derive(Clone, PartialEq, ::prost::Message)]
326pub struct CreateE2mRequest {
327    #[prost(message, optional, tag = "1")]
328    pub e2m: ::core::option::Option<E2mCreateParams>,
329}
330/// represents e2m create response
331#[derive(serde::Serialize, serde::Deserialize)]
332#[serde(rename_all = "snake_case")]
333#[derive(Clone, PartialEq, ::prost::Message)]
334pub struct CreateE2mResponse {
335    #[prost(message, optional, tag = "1")]
336    pub e2m: ::core::option::Option<E2m>,
337}
338/// represents e2m get list request
339#[derive(serde::Serialize, serde::Deserialize)]
340#[serde(rename_all = "snake_case")]
341#[derive(Clone, Copy, PartialEq, ::prost::Message)]
342pub struct ListE2mRequest {}
343/// represents response of
344#[derive(serde::Serialize, serde::Deserialize)]
345#[serde(rename_all = "snake_case")]
346#[derive(Clone, PartialEq, ::prost::Message)]
347pub struct ListE2mResponse {
348    /// List of event to metrics definitions
349    #[prost(message, repeated, tag = "1")]
350    pub e2m: ::prost::alloc::vec::Vec<E2m>,
351}
352/// represents e2m replace request
353#[derive(serde::Serialize, serde::Deserialize)]
354#[serde(rename_all = "snake_case")]
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct ReplaceE2mRequest {
357    #[prost(message, optional, tag = "1")]
358    pub e2m: ::core::option::Option<E2m>,
359}
360/// represents e2m replace response
361#[derive(serde::Serialize, serde::Deserialize)]
362#[serde(rename_all = "snake_case")]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct ReplaceE2mResponse {
365    #[prost(message, optional, tag = "1")]
366    pub e2m: ::core::option::Option<E2m>,
367}
368/// represents get request for a single e2m by id
369#[derive(serde::Serialize, serde::Deserialize)]
370#[serde(rename_all = "snake_case")]
371#[derive(Clone, PartialEq, ::prost::Message)]
372pub struct GetE2mRequest {
373    #[prost(message, optional, tag = "1")]
374    pub id: ::core::option::Option<::prost::alloc::string::String>,
375}
376/// represents response for a single e2m by id
377#[derive(serde::Serialize, serde::Deserialize)]
378#[serde(rename_all = "snake_case")]
379#[derive(Clone, PartialEq, ::prost::Message)]
380pub struct GetE2mResponse {
381    #[prost(message, optional, tag = "1")]
382    pub e2m: ::core::option::Option<E2m>,
383}
384/// represents e2m delete request
385#[derive(serde::Serialize, serde::Deserialize)]
386#[serde(rename_all = "snake_case")]
387#[derive(Clone, PartialEq, ::prost::Message)]
388pub struct DeleteE2mRequest {
389    /// id of e2m to be deleted
390    #[prost(message, optional, tag = "1")]
391    pub id: ::core::option::Option<::prost::alloc::string::String>,
392}
393/// represents e2m delete response
394#[derive(serde::Serialize, serde::Deserialize)]
395#[serde(rename_all = "snake_case")]
396#[derive(Clone, PartialEq, ::prost::Message)]
397pub struct DeleteE2mResponse {
398    /// id of deleted e2m
399    #[prost(message, optional, tag = "1")]
400    pub id: ::core::option::Option<::prost::alloc::string::String>,
401}
402/// represents one of e2m actions create/replace/delete
403#[derive(serde::Serialize, serde::Deserialize)]
404#[serde(rename_all = "snake_case")]
405#[derive(Clone, PartialEq, ::prost::Message)]
406pub struct E2mExecutionRequest {
407    #[prost(oneof = "e2m_execution_request::Request", tags = "1, 2, 3")]
408    pub request: ::core::option::Option<e2m_execution_request::Request>,
409}
410/// Nested message and enum types in `E2MExecutionRequest`.
411pub mod e2m_execution_request {
412    #[derive(serde::Serialize, serde::Deserialize)]
413    #[serde(rename_all = "snake_case")]
414    #[derive(Clone, PartialEq, ::prost::Oneof)]
415    pub enum Request {
416        #[prost(message, tag = "1")]
417        Create(super::CreateE2mRequest),
418        #[prost(message, tag = "2")]
419        Replace(super::ReplaceE2mRequest),
420        #[prost(message, tag = "3")]
421        Delete(super::DeleteE2mRequest),
422    }
423}
424/// an atomic list of e2m action that are executed in the same request
425#[derive(serde::Serialize, serde::Deserialize)]
426#[serde(rename_all = "snake_case")]
427#[derive(Clone, PartialEq, ::prost::Message)]
428pub struct AtomicBatchExecuteE2mRequest {
429    #[prost(message, repeated, tag = "1")]
430    pub requests: ::prost::alloc::vec::Vec<E2mExecutionRequest>,
431}
432/// represents a response of e2m execution
433#[derive(serde::Serialize, serde::Deserialize)]
434#[serde(rename_all = "snake_case")]
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct E2mExecutionResponse {
437    #[prost(oneof = "e2m_execution_response::Response", tags = "1, 2, 3")]
438    pub response: ::core::option::Option<e2m_execution_response::Response>,
439}
440/// Nested message and enum types in `E2MExecutionResponse`.
441pub mod e2m_execution_response {
442    #[derive(serde::Serialize, serde::Deserialize)]
443    #[serde(rename_all = "snake_case")]
444    #[derive(Clone, PartialEq, ::prost::Oneof)]
445    pub enum Response {
446        #[prost(message, tag = "1")]
447        Created(super::CreateE2mResponse),
448        #[prost(message, tag = "2")]
449        Replaced(super::ReplaceE2mResponse),
450        #[prost(message, tag = "3")]
451        Deleted(super::DeleteE2mResponse),
452    }
453}
454/// represents a response to atomic list of e2m actions
455#[derive(serde::Serialize, serde::Deserialize)]
456#[serde(rename_all = "snake_case")]
457#[derive(Clone, PartialEq, ::prost::Message)]
458pub struct AtomicBatchExecuteE2mResponse {
459    #[prost(message, repeated, tag = "1")]
460    pub matching_responses: ::prost::alloc::vec::Vec<E2mExecutionResponse>,
461}
462/// represents a request of list label cardinality
463#[derive(serde::Serialize, serde::Deserialize)]
464#[serde(rename_all = "snake_case")]
465#[derive(Clone, PartialEq, ::prost::Message)]
466pub struct ListLabelsCardinalityRequest {
467    #[prost(message, repeated, tag = "3")]
468    pub metric_labels: ::prost::alloc::vec::Vec<MetricLabel>,
469    #[prost(oneof = "list_labels_cardinality_request::Query", tags = "1, 2")]
470    pub query: ::core::option::Option<list_labels_cardinality_request::Query>,
471}
472/// Nested message and enum types in `ListLabelsCardinalityRequest`.
473pub mod list_labels_cardinality_request {
474    #[derive(serde::Serialize, serde::Deserialize)]
475    #[serde(rename_all = "snake_case")]
476    #[derive(Clone, PartialEq, ::prost::Oneof)]
477    pub enum Query {
478        #[prost(message, tag = "1")]
479        SpansQuery(super::super::super::spans2metrics::v2::SpansQuery),
480        #[prost(message, tag = "2")]
481        LogsQuery(super::super::super::logs2metrics::v2::LogsQuery),
482    }
483}
484/// represents labels permutation cardinality
485#[derive(serde::Serialize, serde::Deserialize)]
486#[serde(rename_all = "snake_case")]
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct LabelsPermutationsCardinalityDay {
489    #[prost(string, tag = "1")]
490    pub day: ::prost::alloc::string::String,
491    #[prost(int32, tag = "2")]
492    pub permutations: i32,
493}
494/// response  represented by list of labels permutation cardinality
495#[derive(serde::Serialize, serde::Deserialize)]
496#[serde(rename_all = "snake_case")]
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct ListLabelsCardinalityResponse {
499    #[prost(message, repeated, tag = "1")]
500    pub permutations: ::prost::alloc::vec::Vec<LabelsPermutationsCardinalityDay>,
501}
502/// get e2m limits request
503#[derive(serde::Serialize, serde::Deserialize)]
504#[serde(rename_all = "snake_case")]
505#[derive(Clone, Copy, PartialEq, ::prost::Message)]
506pub struct GetLimitsRequest {}
507/// get e2m limits response
508#[derive(serde::Serialize, serde::Deserialize)]
509#[serde(rename_all = "snake_case")]
510#[derive(Clone, PartialEq, ::prost::Message)]
511pub struct GetLimitsResponse {
512    /// company id
513    #[prost(message, optional, tag = "1")]
514    pub company_id: ::core::option::Option<::prost::alloc::string::String>,
515    /// labels limit
516    #[prost(int32, tag = "2")]
517    pub labels_limit: i32,
518    /// permutation limit/used
519    #[prost(message, optional, tag = "3")]
520    pub permutations_limit: ::core::option::Option<get_limits_response::LimitUsage>,
521    /// metrics limit/used5
522    #[prost(message, optional, tag = "4")]
523    pub metrics_limit: ::core::option::Option<get_limits_response::LimitUsage>,
524}
525/// Nested message and enum types in `GetLimitsResponse`.
526pub mod get_limits_response {
527    #[derive(serde::Serialize, serde::Deserialize)]
528    #[serde(rename_all = "snake_case")]
529    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
530    pub struct LimitUsage {
531        /// the limit number of e2m creation
532        #[prost(message, optional, tag = "1")]
533        pub limit: ::core::option::Option<i32>,
534        /// how many e2m's were created
535        #[prost(message, optional, tag = "2")]
536        pub used: ::core::option::Option<i32>,
537    }
538}
539/// Generated client implementations.
540pub mod events2_metric_service_client {
541    #![allow(
542        unused_variables,
543        dead_code,
544        missing_docs,
545        clippy::wildcard_imports,
546        clippy::let_unit_value,
547    )]
548    use tonic::codegen::*;
549    use tonic::codegen::http::Uri;
550    #[derive(Debug, Clone)]
551    pub struct Events2MetricServiceClient<T> {
552        inner: tonic::client::Grpc<T>,
553    }
554    impl Events2MetricServiceClient<tonic::transport::Channel> {
555        /// Attempt to create a new client by connecting to a given endpoint.
556        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
557        where
558            D: TryInto<tonic::transport::Endpoint>,
559            D::Error: Into<StdError>,
560        {
561            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
562            Ok(Self::new(conn))
563        }
564    }
565    impl<T> Events2MetricServiceClient<T>
566    where
567        T: tonic::client::GrpcService<tonic::body::BoxBody>,
568        T::Error: Into<StdError>,
569        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
570        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
571    {
572        pub fn new(inner: T) -> Self {
573            let inner = tonic::client::Grpc::new(inner);
574            Self { inner }
575        }
576        pub fn with_origin(inner: T, origin: Uri) -> Self {
577            let inner = tonic::client::Grpc::with_origin(inner, origin);
578            Self { inner }
579        }
580        pub fn with_interceptor<F>(
581            inner: T,
582            interceptor: F,
583        ) -> Events2MetricServiceClient<InterceptedService<T, F>>
584        where
585            F: tonic::service::Interceptor,
586            T::ResponseBody: Default,
587            T: tonic::codegen::Service<
588                http::Request<tonic::body::BoxBody>,
589                Response = http::Response<
590                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
591                >,
592            >,
593            <T as tonic::codegen::Service<
594                http::Request<tonic::body::BoxBody>,
595            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
596        {
597            Events2MetricServiceClient::new(InterceptedService::new(inner, interceptor))
598        }
599        /// Compress requests with the given encoding.
600        ///
601        /// This requires the server to support it otherwise it might respond with an
602        /// error.
603        #[must_use]
604        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
605            self.inner = self.inner.send_compressed(encoding);
606            self
607        }
608        /// Enable decompressing responses.
609        #[must_use]
610        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
611            self.inner = self.inner.accept_compressed(encoding);
612            self
613        }
614        /// Limits the maximum size of a decoded message.
615        ///
616        /// Default: `4MB`
617        #[must_use]
618        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
619            self.inner = self.inner.max_decoding_message_size(limit);
620            self
621        }
622        /// Limits the maximum size of an encoded message.
623        ///
624        /// Default: `usize::MAX`
625        #[must_use]
626        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
627            self.inner = self.inner.max_encoding_message_size(limit);
628            self
629        }
630        pub async fn create_e2m(
631            &mut self,
632            request: impl tonic::IntoRequest<super::CreateE2mRequest>,
633        ) -> std::result::Result<
634            tonic::Response<super::CreateE2mResponse>,
635            tonic::Status,
636        > {
637            self.inner
638                .ready()
639                .await
640                .map_err(|e| {
641                    tonic::Status::unknown(
642                        format!("Service was not ready: {}", e.into()),
643                    )
644                })?;
645            let codec = tonic::codec::ProstCodec::default();
646            let path = http::uri::PathAndQuery::from_static(
647                "/com.coralogixapis.events2metrics.v2.Events2MetricService/CreateE2M",
648            );
649            let mut req = request.into_request();
650            req.extensions_mut()
651                .insert(
652                    GrpcMethod::new(
653                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
654                        "CreateE2M",
655                    ),
656                );
657            self.inner.unary(req, path, codec).await
658        }
659        pub async fn list_e2m(
660            &mut self,
661            request: impl tonic::IntoRequest<super::ListE2mRequest>,
662        ) -> std::result::Result<
663            tonic::Response<super::ListE2mResponse>,
664            tonic::Status,
665        > {
666            self.inner
667                .ready()
668                .await
669                .map_err(|e| {
670                    tonic::Status::unknown(
671                        format!("Service was not ready: {}", e.into()),
672                    )
673                })?;
674            let codec = tonic::codec::ProstCodec::default();
675            let path = http::uri::PathAndQuery::from_static(
676                "/com.coralogixapis.events2metrics.v2.Events2MetricService/ListE2M",
677            );
678            let mut req = request.into_request();
679            req.extensions_mut()
680                .insert(
681                    GrpcMethod::new(
682                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
683                        "ListE2M",
684                    ),
685                );
686            self.inner.unary(req, path, codec).await
687        }
688        pub async fn replace_e2m(
689            &mut self,
690            request: impl tonic::IntoRequest<super::ReplaceE2mRequest>,
691        ) -> std::result::Result<
692            tonic::Response<super::ReplaceE2mResponse>,
693            tonic::Status,
694        > {
695            self.inner
696                .ready()
697                .await
698                .map_err(|e| {
699                    tonic::Status::unknown(
700                        format!("Service was not ready: {}", e.into()),
701                    )
702                })?;
703            let codec = tonic::codec::ProstCodec::default();
704            let path = http::uri::PathAndQuery::from_static(
705                "/com.coralogixapis.events2metrics.v2.Events2MetricService/ReplaceE2M",
706            );
707            let mut req = request.into_request();
708            req.extensions_mut()
709                .insert(
710                    GrpcMethod::new(
711                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
712                        "ReplaceE2M",
713                    ),
714                );
715            self.inner.unary(req, path, codec).await
716        }
717        pub async fn get_e2m(
718            &mut self,
719            request: impl tonic::IntoRequest<super::GetE2mRequest>,
720        ) -> std::result::Result<tonic::Response<super::GetE2mResponse>, tonic::Status> {
721            self.inner
722                .ready()
723                .await
724                .map_err(|e| {
725                    tonic::Status::unknown(
726                        format!("Service was not ready: {}", e.into()),
727                    )
728                })?;
729            let codec = tonic::codec::ProstCodec::default();
730            let path = http::uri::PathAndQuery::from_static(
731                "/com.coralogixapis.events2metrics.v2.Events2MetricService/GetE2M",
732            );
733            let mut req = request.into_request();
734            req.extensions_mut()
735                .insert(
736                    GrpcMethod::new(
737                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
738                        "GetE2M",
739                    ),
740                );
741            self.inner.unary(req, path, codec).await
742        }
743        pub async fn delete_e2m(
744            &mut self,
745            request: impl tonic::IntoRequest<super::DeleteE2mRequest>,
746        ) -> std::result::Result<
747            tonic::Response<super::DeleteE2mResponse>,
748            tonic::Status,
749        > {
750            self.inner
751                .ready()
752                .await
753                .map_err(|e| {
754                    tonic::Status::unknown(
755                        format!("Service was not ready: {}", e.into()),
756                    )
757                })?;
758            let codec = tonic::codec::ProstCodec::default();
759            let path = http::uri::PathAndQuery::from_static(
760                "/com.coralogixapis.events2metrics.v2.Events2MetricService/DeleteE2M",
761            );
762            let mut req = request.into_request();
763            req.extensions_mut()
764                .insert(
765                    GrpcMethod::new(
766                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
767                        "DeleteE2M",
768                    ),
769                );
770            self.inner.unary(req, path, codec).await
771        }
772        pub async fn atomic_batch_execute_e2m(
773            &mut self,
774            request: impl tonic::IntoRequest<super::AtomicBatchExecuteE2mRequest>,
775        ) -> std::result::Result<
776            tonic::Response<super::AtomicBatchExecuteE2mResponse>,
777            tonic::Status,
778        > {
779            self.inner
780                .ready()
781                .await
782                .map_err(|e| {
783                    tonic::Status::unknown(
784                        format!("Service was not ready: {}", e.into()),
785                    )
786                })?;
787            let codec = tonic::codec::ProstCodec::default();
788            let path = http::uri::PathAndQuery::from_static(
789                "/com.coralogixapis.events2metrics.v2.Events2MetricService/AtomicBatchExecuteE2M",
790            );
791            let mut req = request.into_request();
792            req.extensions_mut()
793                .insert(
794                    GrpcMethod::new(
795                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
796                        "AtomicBatchExecuteE2M",
797                    ),
798                );
799            self.inner.unary(req, path, codec).await
800        }
801        pub async fn list_labels_cardinality(
802            &mut self,
803            request: impl tonic::IntoRequest<super::ListLabelsCardinalityRequest>,
804        ) -> std::result::Result<
805            tonic::Response<super::ListLabelsCardinalityResponse>,
806            tonic::Status,
807        > {
808            self.inner
809                .ready()
810                .await
811                .map_err(|e| {
812                    tonic::Status::unknown(
813                        format!("Service was not ready: {}", e.into()),
814                    )
815                })?;
816            let codec = tonic::codec::ProstCodec::default();
817            let path = http::uri::PathAndQuery::from_static(
818                "/com.coralogixapis.events2metrics.v2.Events2MetricService/ListLabelsCardinality",
819            );
820            let mut req = request.into_request();
821            req.extensions_mut()
822                .insert(
823                    GrpcMethod::new(
824                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
825                        "ListLabelsCardinality",
826                    ),
827                );
828            self.inner.unary(req, path, codec).await
829        }
830        pub async fn get_limits(
831            &mut self,
832            request: impl tonic::IntoRequest<super::GetLimitsRequest>,
833        ) -> std::result::Result<
834            tonic::Response<super::GetLimitsResponse>,
835            tonic::Status,
836        > {
837            self.inner
838                .ready()
839                .await
840                .map_err(|e| {
841                    tonic::Status::unknown(
842                        format!("Service was not ready: {}", e.into()),
843                    )
844                })?;
845            let codec = tonic::codec::ProstCodec::default();
846            let path = http::uri::PathAndQuery::from_static(
847                "/com.coralogixapis.events2metrics.v2.Events2MetricService/GetLimits",
848            );
849            let mut req = request.into_request();
850            req.extensions_mut()
851                .insert(
852                    GrpcMethod::new(
853                        "com.coralogixapis.events2metrics.v2.Events2MetricService",
854                        "GetLimits",
855                    ),
856                );
857            self.inner.unary(req, path, codec).await
858        }
859    }
860}