cx_api/generated/
com.coralogix.datausage.v2.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5pub struct Team {
6    #[prost(message, optional, tag = "2")]
7    pub id: ::core::option::Option<u64>,
8}
9#[derive(serde::Serialize, serde::Deserialize)]
10#[serde(rename_all = "snake_case")]
11#[derive(Clone, Copy, PartialEq, ::prost::Message)]
12pub struct Unit {
13    #[prost(message, optional, tag = "1")]
14    pub value: ::core::option::Option<f32>,
15}
16#[derive(serde::Serialize, serde::Deserialize)]
17#[serde(rename_all = "snake_case")]
18#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19pub struct Gb {
20    #[prost(message, optional, tag = "1")]
21    pub value: ::core::option::Option<f32>,
22}
23#[derive(serde::Serialize, serde::Deserialize)]
24#[serde(rename_all = "snake_case")]
25#[derive(Clone, Copy, PartialEq, ::prost::Message)]
26pub struct Token {
27    #[prost(message, optional, tag = "1")]
28    pub value: ::core::option::Option<f32>,
29}
30#[derive(serde::Serialize, serde::Deserialize)]
31#[serde(rename_all = "snake_case")]
32#[derive(Clone, Copy, PartialEq, ::prost::Message)]
33pub struct DateRange {
34    #[prost(message, optional, tag = "1")]
35    pub from_date: ::core::option::Option<::prost_wkt_types::Timestamp>,
36    #[prost(message, optional, tag = "2")]
37    pub to_date: ::core::option::Option<::prost_wkt_types::Timestamp>,
38}
39#[derive(serde::Serialize, serde::Deserialize)]
40#[serde(rename_all = "snake_case")]
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct GenericDimension {
43    #[prost(string, tag = "1")]
44    pub key: ::prost::alloc::string::String,
45    #[prost(string, tag = "2")]
46    pub value: ::prost::alloc::string::String,
47}
48#[derive(serde::Serialize, serde::Deserialize)]
49#[serde(rename_all = "snake_case")]
50#[derive(Clone, PartialEq, ::prost::Message)]
51pub struct Dimension {
52    #[prost(oneof = "dimension::Dimension", tags = "1, 2, 3, 4, 5")]
53    pub dimension: ::core::option::Option<dimension::Dimension>,
54}
55/// Nested message and enum types in `Dimension`.
56pub mod dimension {
57    #[derive(serde::Serialize, serde::Deserialize)]
58    #[serde(rename_all = "snake_case")]
59    #[derive(Clone, PartialEq, ::prost::Oneof)]
60    pub enum Dimension {
61        #[prost(enumeration = "super::Pillar", tag = "1")]
62        Pillar(i32),
63        #[prost(message, tag = "2")]
64        GenericDimension(super::GenericDimension),
65        #[prost(enumeration = "super::TcoTier", tag = "3")]
66        Tier(i32),
67        #[prost(enumeration = "super::Severity", tag = "4")]
68        Severity(i32),
69        #[prost(enumeration = "super::Priority", tag = "5")]
70        Priority(i32),
71    }
72}
73/// / Daily data usage in units
74#[derive(serde::Serialize, serde::Deserialize)]
75#[serde(rename_all = "snake_case")]
76#[derive(Clone, Copy, PartialEq, ::prost::Message)]
77pub struct DetailedDailyUnits {
78    #[prost(message, optional, tag = "1")]
79    pub stats_date: ::core::option::Option<::prost_wkt_types::Timestamp>,
80    #[prost(message, optional, tag = "2")]
81    pub total_units: ::core::option::Option<Unit>,
82    #[prost(message, optional, tag = "3")]
83    pub blocked_units: ::core::option::Option<Unit>,
84    #[prost(message, optional, tag = "4")]
85    pub low_logs_units: ::core::option::Option<Unit>,
86    #[prost(message, optional, tag = "5")]
87    pub medium_logs_units: ::core::option::Option<Unit>,
88    #[prost(message, optional, tag = "6")]
89    pub high_logs_units: ::core::option::Option<Unit>,
90    #[prost(message, optional, tag = "7")]
91    pub high_metrics_units: ::core::option::Option<Unit>,
92    #[prost(message, optional, tag = "8")]
93    pub low_tracing_units: ::core::option::Option<Unit>,
94    #[prost(message, optional, tag = "9")]
95    pub medium_tracing_units: ::core::option::Option<Unit>,
96    #[prost(message, optional, tag = "10")]
97    pub high_tracing_units: ::core::option::Option<Unit>,
98    #[prost(message, optional, tag = "11")]
99    pub low_session_recording_units: ::core::option::Option<Unit>,
100    #[prost(message, optional, tag = "12")]
101    pub evaluation_units: ::core::option::Option<Unit>,
102    #[prost(message, optional, tag = "13")]
103    pub cpu_profiles_units: ::core::option::Option<Unit>,
104}
105/// / Daily data usage in GBs. This entity represents only data processed by CX
106#[derive(serde::Serialize, serde::Deserialize)]
107#[serde(rename_all = "snake_case")]
108#[derive(Clone, Copy, PartialEq, ::prost::Message)]
109pub struct DetailedDailyProcessedGbs {
110    #[prost(message, optional, tag = "1")]
111    pub stats_date: ::core::option::Option<::prost_wkt_types::Timestamp>,
112    #[prost(message, optional, tag = "2")]
113    pub total_gbs: ::core::option::Option<Gb>,
114    #[prost(message, optional, tag = "3")]
115    pub blocked_gbs: ::core::option::Option<Gb>,
116    #[prost(message, optional, tag = "4")]
117    pub low_logs_gbs: ::core::option::Option<Gb>,
118    #[prost(message, optional, tag = "5")]
119    pub medium_logs_gbs: ::core::option::Option<Gb>,
120    #[prost(message, optional, tag = "6")]
121    pub high_logs_gbs: ::core::option::Option<Gb>,
122    #[prost(message, optional, tag = "7")]
123    pub high_metrics_gbs: ::core::option::Option<Gb>,
124    #[prost(message, optional, tag = "8")]
125    pub low_tracing_gbs: ::core::option::Option<Gb>,
126    #[prost(message, optional, tag = "9")]
127    pub medium_tracing_gbs: ::core::option::Option<Gb>,
128    #[prost(message, optional, tag = "10")]
129    pub high_tracing_gbs: ::core::option::Option<Gb>,
130    #[prost(message, optional, tag = "11")]
131    pub low_session_recording_gbs: ::core::option::Option<Gb>,
132    #[prost(message, optional, tag = "12")]
133    pub cpu_profiles_gbs: ::core::option::Option<Gb>,
134}
135/// / Daily data usage in evaluation tokens
136#[derive(serde::Serialize, serde::Deserialize)]
137#[serde(rename_all = "snake_case")]
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct DetailedDailyEvaluationTokens {
140    #[prost(message, optional, tag = "1")]
141    pub stats_date: ::core::option::Option<::prost_wkt_types::Timestamp>,
142    #[prost(message, optional, tag = "2")]
143    pub total_tokens: ::core::option::Option<Token>,
144    #[prost(message, repeated, tag = "3")]
145    pub evaluations: ::prost::alloc::vec::Vec<Evaluation>,
146}
147#[derive(serde::Serialize, serde::Deserialize)]
148#[serde(rename_all = "snake_case")]
149#[derive(Clone, PartialEq, ::prost::Message)]
150pub struct Evaluation {
151    #[prost(message, optional, tag = "1")]
152    pub evaluator_name: ::core::option::Option<::prost::alloc::string::String>,
153    #[prost(message, optional, tag = "2")]
154    pub evaluation_tokens: ::core::option::Option<Token>,
155}
156#[derive(serde::Serialize, serde::Deserialize)]
157#[serde(rename_all = "snake_case")]
158#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
159#[repr(i32)]
160pub enum Range {
161    Unspecified = 0,
162    CurrentMonth = 1,
163    Last30Days = 2,
164    Last90Days = 3,
165    LastWeek = 4,
166}
167impl Range {
168    /// String value of the enum field names used in the ProtoBuf definition.
169    ///
170    /// The values are not transformed in any way and thus are considered stable
171    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
172    pub fn as_str_name(&self) -> &'static str {
173        match self {
174            Self::Unspecified => "RANGE_UNSPECIFIED",
175            Self::CurrentMonth => "RANGE_CURRENT_MONTH",
176            Self::Last30Days => "RANGE_LAST_30_DAYS",
177            Self::Last90Days => "RANGE_LAST_90_DAYS",
178            Self::LastWeek => "RANGE_LAST_WEEK",
179        }
180    }
181    /// Creates an enum from field names used in the ProtoBuf definition.
182    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
183        match value {
184            "RANGE_UNSPECIFIED" => Some(Self::Unspecified),
185            "RANGE_CURRENT_MONTH" => Some(Self::CurrentMonth),
186            "RANGE_LAST_30_DAYS" => Some(Self::Last30Days),
187            "RANGE_LAST_90_DAYS" => Some(Self::Last90Days),
188            "RANGE_LAST_WEEK" => Some(Self::LastWeek),
189            _ => None,
190        }
191    }
192}
193#[derive(serde::Serialize, serde::Deserialize)]
194#[serde(rename_all = "snake_case")]
195#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
196#[repr(i32)]
197pub enum Pillar {
198    Unspecified = 0,
199    Metrics = 1,
200    Logs = 2,
201    Spans = 3,
202    Binary = 4,
203}
204impl Pillar {
205    /// String value of the enum field names used in the ProtoBuf definition.
206    ///
207    /// The values are not transformed in any way and thus are considered stable
208    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
209    pub fn as_str_name(&self) -> &'static str {
210        match self {
211            Self::Unspecified => "PILLAR_UNSPECIFIED",
212            Self::Metrics => "PILLAR_METRICS",
213            Self::Logs => "PILLAR_LOGS",
214            Self::Spans => "PILLAR_SPANS",
215            Self::Binary => "PILLAR_BINARY",
216        }
217    }
218    /// Creates an enum from field names used in the ProtoBuf definition.
219    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
220        match value {
221            "PILLAR_UNSPECIFIED" => Some(Self::Unspecified),
222            "PILLAR_METRICS" => Some(Self::Metrics),
223            "PILLAR_LOGS" => Some(Self::Logs),
224            "PILLAR_SPANS" => Some(Self::Spans),
225            "PILLAR_BINARY" => Some(Self::Binary),
226            _ => None,
227        }
228    }
229}
230#[derive(serde::Serialize, serde::Deserialize)]
231#[serde(rename_all = "snake_case")]
232#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
233#[repr(i32)]
234pub enum TcoTier {
235    Unspecified = 0,
236    Low = 1,
237    Medium = 2,
238    High = 3,
239    Blocked = 4,
240}
241impl TcoTier {
242    /// String value of the enum field names used in the ProtoBuf definition.
243    ///
244    /// The values are not transformed in any way and thus are considered stable
245    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
246    pub fn as_str_name(&self) -> &'static str {
247        match self {
248            Self::Unspecified => "TCO_TIER_UNSPECIFIED",
249            Self::Low => "TCO_TIER_LOW",
250            Self::Medium => "TCO_TIER_MEDIUM",
251            Self::High => "TCO_TIER_HIGH",
252            Self::Blocked => "TCO_TIER_BLOCKED",
253        }
254    }
255    /// Creates an enum from field names used in the ProtoBuf definition.
256    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
257        match value {
258            "TCO_TIER_UNSPECIFIED" => Some(Self::Unspecified),
259            "TCO_TIER_LOW" => Some(Self::Low),
260            "TCO_TIER_MEDIUM" => Some(Self::Medium),
261            "TCO_TIER_HIGH" => Some(Self::High),
262            "TCO_TIER_BLOCKED" => Some(Self::Blocked),
263            _ => None,
264        }
265    }
266}
267#[derive(serde::Serialize, serde::Deserialize)]
268#[serde(rename_all = "snake_case")]
269#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
270#[repr(i32)]
271pub enum Priority {
272    Unspecified = 0,
273    Low = 1,
274    Medium = 2,
275    High = 3,
276    Blocked = 4,
277}
278impl Priority {
279    /// String value of the enum field names used in the ProtoBuf definition.
280    ///
281    /// The values are not transformed in any way and thus are considered stable
282    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
283    pub fn as_str_name(&self) -> &'static str {
284        match self {
285            Self::Unspecified => "PRIORITY_UNSPECIFIED",
286            Self::Low => "PRIORITY_LOW",
287            Self::Medium => "PRIORITY_MEDIUM",
288            Self::High => "PRIORITY_HIGH",
289            Self::Blocked => "PRIORITY_BLOCKED",
290        }
291    }
292    /// Creates an enum from field names used in the ProtoBuf definition.
293    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
294        match value {
295            "PRIORITY_UNSPECIFIED" => Some(Self::Unspecified),
296            "PRIORITY_LOW" => Some(Self::Low),
297            "PRIORITY_MEDIUM" => Some(Self::Medium),
298            "PRIORITY_HIGH" => Some(Self::High),
299            "PRIORITY_BLOCKED" => Some(Self::Blocked),
300            _ => None,
301        }
302    }
303}
304#[derive(serde::Serialize, serde::Deserialize)]
305#[serde(rename_all = "snake_case")]
306#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
307#[repr(i32)]
308pub enum Severity {
309    Unspecified = 0,
310    Debug = 1,
311    Verbose = 2,
312    Info = 3,
313    Warning = 4,
314    Error = 5,
315    Critical = 6,
316}
317impl Severity {
318    /// String value of the enum field names used in the ProtoBuf definition.
319    ///
320    /// The values are not transformed in any way and thus are considered stable
321    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
322    pub fn as_str_name(&self) -> &'static str {
323        match self {
324            Self::Unspecified => "SEVERITY_UNSPECIFIED",
325            Self::Debug => "SEVERITY_DEBUG",
326            Self::Verbose => "SEVERITY_VERBOSE",
327            Self::Info => "SEVERITY_INFO",
328            Self::Warning => "SEVERITY_WARNING",
329            Self::Error => "SEVERITY_ERROR",
330            Self::Critical => "SEVERITY_CRITICAL",
331        }
332    }
333    /// Creates an enum from field names used in the ProtoBuf definition.
334    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
335        match value {
336            "SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
337            "SEVERITY_DEBUG" => Some(Self::Debug),
338            "SEVERITY_VERBOSE" => Some(Self::Verbose),
339            "SEVERITY_INFO" => Some(Self::Info),
340            "SEVERITY_WARNING" => Some(Self::Warning),
341            "SEVERITY_ERROR" => Some(Self::Error),
342            "SEVERITY_CRITICAL" => Some(Self::Critical),
343            _ => None,
344        }
345    }
346}
347#[derive(serde::Serialize, serde::Deserialize)]
348#[serde(rename_all = "snake_case")]
349#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct GetTeamDetailedDataUsageRequest {
351    /// Date request interval
352    #[prost(message, optional, tag = "2")]
353    pub date_range: ::core::option::Option<DateRange>,
354    /// Aggregation resolution with minute precision.
355    ///
356    /// Do note that to avoid overloading the service we enforce resolution limits
357    /// that depend on the server configuration. This is configured by the server.
358    /// This means that, for instance, requests with 1 min resolution for an interval of 30 days will be rejected.
359    ///
360    /// Resolution must be between 1 min and date_range interval
361    #[prost(message, optional, tag = "3")]
362    pub resolution: ::core::option::Option<::prost_wkt_types::Duration>,
363    /// List of aggregate parameters.
364    /// i.e. if AggregateBy is \[AGGREGATE_BY_PILLAR, AGGREGATE_BY_PRIORITY\], then the response will stream data aggregated by pillar and priority.
365    #[prost(enumeration = "AggregateBy", repeated, tag = "4")]
366    pub aggregate: ::prost::alloc::vec::Vec<i32>,
367}
368#[derive(serde::Serialize, serde::Deserialize)]
369#[serde(rename_all = "snake_case")]
370#[derive(Clone, PartialEq, ::prost::Message)]
371pub struct GetTeamDetailedDataUsageResponse {
372    #[prost(message, optional, tag = "1")]
373    pub timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
374    #[prost(message, optional, tag = "2")]
375    pub size_gb: ::core::option::Option<f32>,
376    #[prost(message, optional, tag = "3")]
377    pub units: ::core::option::Option<f32>,
378    #[prost(message, repeated, tag = "4")]
379    pub dimensions: ::prost::alloc::vec::Vec<Dimension>,
380}
381#[derive(serde::Serialize, serde::Deserialize)]
382#[serde(rename_all = "snake_case")]
383#[derive(Clone, PartialEq, ::prost::Message)]
384pub struct GetSpansCountRequest {
385    #[prost(message, optional, tag = "1")]
386    pub date_range: ::core::option::Option<DateRange>,
387    /// Aggregation resolution with second precision.
388    ///
389    /// Resolution must be between 1 second and date_range interval
390    #[prost(message, optional, tag = "2")]
391    pub resolution: ::core::option::Option<::prost_wkt_types::Duration>,
392    /// Example: (application1 OR application2) AND (subsystem1 OR subsystem2)
393    /// Match occurs on full match
394    #[prost(message, optional, tag = "3")]
395    pub filters: ::core::option::Option<ScopesFilter>,
396}
397#[derive(serde::Serialize, serde::Deserialize)]
398#[serde(rename_all = "snake_case")]
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct ScopesFilter {
401    #[prost(string, repeated, tag = "1")]
402    pub application: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
403    #[prost(string, repeated, tag = "2")]
404    pub subsystem: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
405}
406#[derive(serde::Serialize, serde::Deserialize)]
407#[serde(rename_all = "snake_case")]
408#[derive(Clone, Copy, PartialEq, ::prost::Message)]
409pub struct SpansCount {
410    #[prost(message, optional, tag = "1")]
411    pub timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
412    #[prost(message, optional, tag = "2")]
413    pub success_span_count: ::core::option::Option<i64>,
414    #[prost(message, optional, tag = "3")]
415    pub error_span_count: ::core::option::Option<i64>,
416    #[prost(message, optional, tag = "4")]
417    pub low_success_span_count: ::core::option::Option<i64>,
418    #[prost(message, optional, tag = "5")]
419    pub low_error_span_count: ::core::option::Option<i64>,
420}
421#[derive(serde::Serialize, serde::Deserialize)]
422#[serde(rename_all = "snake_case")]
423#[derive(Clone, PartialEq, ::prost::Message)]
424pub struct GetSpansCountResponse {
425    #[prost(message, repeated, tag = "1")]
426    pub spans_count: ::prost::alloc::vec::Vec<SpansCount>,
427}
428#[derive(serde::Serialize, serde::Deserialize)]
429#[serde(rename_all = "snake_case")]
430#[derive(Clone, PartialEq, ::prost::Message)]
431pub struct GetLogsCountRequest {
432    #[prost(message, optional, tag = "1")]
433    pub date_range: ::core::option::Option<DateRange>,
434    /// Aggregation resolution with second precision.
435    ///
436    /// Resolution must be between 1 second and date_range interval
437    #[prost(message, optional, tag = "2")]
438    pub resolution: ::core::option::Option<::prost_wkt_types::Duration>,
439    /// Example: (application1 OR application2) AND (subsystem1 OR subsystem2)
440    /// Match occurs on full match
441    #[prost(message, optional, tag = "3")]
442    pub filters: ::core::option::Option<ScopesFilter>,
443}
444#[derive(serde::Serialize, serde::Deserialize)]
445#[serde(rename_all = "snake_case")]
446#[derive(Clone, Copy, PartialEq, ::prost::Message)]
447pub struct LogsCount {
448    #[prost(message, optional, tag = "1")]
449    pub timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
450    #[prost(uint64, tag = "2")]
451    pub logs_count: u64,
452    #[prost(enumeration = "Severity", tag = "3")]
453    pub severity: i32,
454    #[prost(enumeration = "Priority", tag = "4")]
455    pub priority: i32,
456}
457#[derive(serde::Serialize, serde::Deserialize)]
458#[serde(rename_all = "snake_case")]
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct GetLogsCountResponse {
461    #[prost(message, repeated, tag = "1")]
462    pub logs_count: ::prost::alloc::vec::Vec<LogsCount>,
463}
464#[derive(serde::Serialize, serde::Deserialize)]
465#[serde(rename_all = "snake_case")]
466#[derive(Clone, Copy, PartialEq, ::prost::Message)]
467pub struct GetDataUsageMetricsExportStatusRequest {}
468#[derive(serde::Serialize, serde::Deserialize)]
469#[serde(rename_all = "snake_case")]
470#[derive(Clone, Copy, PartialEq, ::prost::Message)]
471pub struct GetDataUsageMetricsExportStatusResponse {
472    #[prost(bool, tag = "1")]
473    pub enabled: bool,
474}
475#[derive(serde::Serialize, serde::Deserialize)]
476#[serde(rename_all = "snake_case")]
477#[derive(Clone, Copy, PartialEq, ::prost::Message)]
478pub struct UpdateDataUsageMetricsExportStatusRequest {
479    #[prost(bool, tag = "3")]
480    pub enabled: bool,
481}
482#[derive(serde::Serialize, serde::Deserialize)]
483#[serde(rename_all = "snake_case")]
484#[derive(Clone, Copy, PartialEq, ::prost::Message)]
485pub struct UpdateDataUsageMetricsExportStatusResponse {
486    #[prost(bool, tag = "1")]
487    pub enabled: bool,
488}
489#[derive(serde::Serialize, serde::Deserialize)]
490#[serde(rename_all = "snake_case")]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct GetDataUsageRequest {
493    /// Date request interval
494    #[prost(message, optional, tag = "1")]
495    pub date_range: ::core::option::Option<DateRange>,
496    /// Aggregation resolution. Minimum supported value is 1h
497    ///
498    /// Do note that to avoid overloading the service we enforce resolution limits
499    /// that depend on the server configuration. This is configured by the server.
500    /// This means that, for instance, requests with 1 hour resolution for an interval of 30 days will be rejected but accepted for 1 day interval.
501    ///
502    /// Resolution must be between 1 hour and date_range interval
503    #[prost(message, optional, tag = "2")]
504    pub resolution: ::core::option::Option<::prost_wkt_types::Duration>,
505    /// List of aggregate parameters.
506    /// i.e. if AggregateBy is \[AGGREGATE_BY_PILLAR, AGGREGATE_BY_PRIORITY\], then the response will stream data aggregated by pillar and priority.
507    #[prost(enumeration = "AggregateBy", repeated, tag = "3")]
508    pub aggregate: ::prost::alloc::vec::Vec<i32>,
509    /// Dimensions to filter by.
510    /// When used together with aggregation it is pointless to filter by dimension keys that are not aggregated.
511    /// i.e. if we filter by Dimension \[ {"subsystem", "subsystem1"}\]
512    ///       we only return entries that at least have that dimension i.e. \[{"subsystem", "subsystem1"}, {"application", "application1"}\]
513    #[prost(message, repeated, tag = "4")]
514    pub dimension_filters: ::prost::alloc::vec::Vec<Dimension>,
515}
516#[derive(serde::Serialize, serde::Deserialize)]
517#[serde(rename_all = "snake_case")]
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct DataUsageEntry {
520    #[prost(message, optional, tag = "1")]
521    pub timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
522    #[prost(float, tag = "2")]
523    pub size_gb: f32,
524    #[prost(float, tag = "3")]
525    pub units: f32,
526    #[prost(message, repeated, tag = "4")]
527    pub dimensions: ::prost::alloc::vec::Vec<Dimension>,
528}
529#[derive(serde::Serialize, serde::Deserialize)]
530#[serde(rename_all = "snake_case")]
531#[derive(Clone, PartialEq, ::prost::Message)]
532pub struct GetDataUsageResponse {
533    #[prost(message, repeated, tag = "1")]
534    pub entries: ::prost::alloc::vec::Vec<DataUsageEntry>,
535}
536#[derive(serde::Serialize, serde::Deserialize)]
537#[serde(rename_all = "snake_case")]
538#[derive(Clone, Copy, PartialEq, ::prost::Message)]
539pub struct GetDailyUsageUnitsRequest {
540    #[prost(oneof = "get_daily_usage_units_request::RequestTime", tags = "1, 2")]
541    pub request_time: ::core::option::Option<get_daily_usage_units_request::RequestTime>,
542}
543/// Nested message and enum types in `GetDailyUsageUnitsRequest`.
544pub mod get_daily_usage_units_request {
545    #[derive(serde::Serialize, serde::Deserialize)]
546    #[serde(rename_all = "snake_case")]
547    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
548    pub enum RequestTime {
549        #[prost(enumeration = "super::Range", tag = "1")]
550        Range(i32),
551        #[prost(message, tag = "2")]
552        DateRange(super::DateRange),
553    }
554}
555#[derive(serde::Serialize, serde::Deserialize)]
556#[serde(rename_all = "snake_case")]
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct GetDailyUsageUnitsResponse {
559    #[prost(message, repeated, tag = "1")]
560    pub units: ::prost::alloc::vec::Vec<DetailedDailyUnits>,
561}
562#[derive(serde::Serialize, serde::Deserialize)]
563#[serde(rename_all = "snake_case")]
564#[derive(Clone, Copy, PartialEq, ::prost::Message)]
565pub struct GetDailyUsageProcessedGbsRequest {
566    #[prost(oneof = "get_daily_usage_processed_gbs_request::RequestTime", tags = "1, 2")]
567    pub request_time: ::core::option::Option<
568        get_daily_usage_processed_gbs_request::RequestTime,
569    >,
570}
571/// Nested message and enum types in `GetDailyUsageProcessedGbsRequest`.
572pub mod get_daily_usage_processed_gbs_request {
573    #[derive(serde::Serialize, serde::Deserialize)]
574    #[serde(rename_all = "snake_case")]
575    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
576    pub enum RequestTime {
577        #[prost(enumeration = "super::Range", tag = "1")]
578        Range(i32),
579        #[prost(message, tag = "2")]
580        DateRange(super::DateRange),
581    }
582}
583#[derive(serde::Serialize, serde::Deserialize)]
584#[serde(rename_all = "snake_case")]
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct GetDailyUsageProcessedGbsResponse {
587    #[prost(message, repeated, tag = "1")]
588    pub gbs: ::prost::alloc::vec::Vec<DetailedDailyProcessedGbs>,
589}
590#[derive(serde::Serialize, serde::Deserialize)]
591#[serde(rename_all = "snake_case")]
592#[derive(Clone, Copy, PartialEq, ::prost::Message)]
593pub struct GetDailyUsageEvaluationTokensRequest {
594    #[prost(
595        oneof = "get_daily_usage_evaluation_tokens_request::RequestTime",
596        tags = "1, 2"
597    )]
598    pub request_time: ::core::option::Option<
599        get_daily_usage_evaluation_tokens_request::RequestTime,
600    >,
601}
602/// Nested message and enum types in `GetDailyUsageEvaluationTokensRequest`.
603pub mod get_daily_usage_evaluation_tokens_request {
604    #[derive(serde::Serialize, serde::Deserialize)]
605    #[serde(rename_all = "snake_case")]
606    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
607    pub enum RequestTime {
608        #[prost(enumeration = "super::Range", tag = "1")]
609        Range(i32),
610        #[prost(message, tag = "2")]
611        DateRange(super::DateRange),
612    }
613}
614#[derive(serde::Serialize, serde::Deserialize)]
615#[serde(rename_all = "snake_case")]
616#[derive(Clone, PartialEq, ::prost::Message)]
617pub struct GetDailyUsageEvaluationTokensResponse {
618    #[prost(message, repeated, tag = "1")]
619    pub tokens: ::prost::alloc::vec::Vec<DetailedDailyEvaluationTokens>,
620}
621#[derive(serde::Serialize, serde::Deserialize)]
622#[serde(rename_all = "snake_case")]
623#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
624#[repr(i32)]
625pub enum AggregateBy {
626    Unspecified = 0,
627    Application = 1,
628    Subsystem = 2,
629    Pillar = 3,
630    Priority = 4,
631}
632impl AggregateBy {
633    /// String value of the enum field names used in the ProtoBuf definition.
634    ///
635    /// The values are not transformed in any way and thus are considered stable
636    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
637    pub fn as_str_name(&self) -> &'static str {
638        match self {
639            Self::Unspecified => "AGGREGATE_BY_UNSPECIFIED",
640            Self::Application => "AGGREGATE_BY_APPLICATION",
641            Self::Subsystem => "AGGREGATE_BY_SUBSYSTEM",
642            Self::Pillar => "AGGREGATE_BY_PILLAR",
643            Self::Priority => "AGGREGATE_BY_PRIORITY",
644        }
645    }
646    /// Creates an enum from field names used in the ProtoBuf definition.
647    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
648        match value {
649            "AGGREGATE_BY_UNSPECIFIED" => Some(Self::Unspecified),
650            "AGGREGATE_BY_APPLICATION" => Some(Self::Application),
651            "AGGREGATE_BY_SUBSYSTEM" => Some(Self::Subsystem),
652            "AGGREGATE_BY_PILLAR" => Some(Self::Pillar),
653            "AGGREGATE_BY_PRIORITY" => Some(Self::Priority),
654            _ => None,
655        }
656    }
657}
658/// Generated client implementations.
659pub mod data_usage_service_client {
660    #![allow(
661        unused_variables,
662        dead_code,
663        missing_docs,
664        clippy::wildcard_imports,
665        clippy::let_unit_value,
666    )]
667    use tonic::codegen::*;
668    use tonic::codegen::http::Uri;
669    #[derive(Debug, Clone)]
670    pub struct DataUsageServiceClient<T> {
671        inner: tonic::client::Grpc<T>,
672    }
673    impl DataUsageServiceClient<tonic::transport::Channel> {
674        /// Attempt to create a new client by connecting to a given endpoint.
675        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
676        where
677            D: TryInto<tonic::transport::Endpoint>,
678            D::Error: Into<StdError>,
679        {
680            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
681            Ok(Self::new(conn))
682        }
683    }
684    impl<T> DataUsageServiceClient<T>
685    where
686        T: tonic::client::GrpcService<tonic::body::BoxBody>,
687        T::Error: Into<StdError>,
688        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
689        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
690    {
691        pub fn new(inner: T) -> Self {
692            let inner = tonic::client::Grpc::new(inner);
693            Self { inner }
694        }
695        pub fn with_origin(inner: T, origin: Uri) -> Self {
696            let inner = tonic::client::Grpc::with_origin(inner, origin);
697            Self { inner }
698        }
699        pub fn with_interceptor<F>(
700            inner: T,
701            interceptor: F,
702        ) -> DataUsageServiceClient<InterceptedService<T, F>>
703        where
704            F: tonic::service::Interceptor,
705            T::ResponseBody: Default,
706            T: tonic::codegen::Service<
707                http::Request<tonic::body::BoxBody>,
708                Response = http::Response<
709                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
710                >,
711            >,
712            <T as tonic::codegen::Service<
713                http::Request<tonic::body::BoxBody>,
714            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
715        {
716            DataUsageServiceClient::new(InterceptedService::new(inner, interceptor))
717        }
718        /// Compress requests with the given encoding.
719        ///
720        /// This requires the server to support it otherwise it might respond with an
721        /// error.
722        #[must_use]
723        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
724            self.inner = self.inner.send_compressed(encoding);
725            self
726        }
727        /// Enable decompressing responses.
728        #[must_use]
729        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
730            self.inner = self.inner.accept_compressed(encoding);
731            self
732        }
733        /// Limits the maximum size of a decoded message.
734        ///
735        /// Default: `4MB`
736        #[must_use]
737        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
738            self.inner = self.inner.max_decoding_message_size(limit);
739            self
740        }
741        /// Limits the maximum size of an encoded message.
742        ///
743        /// Default: `usize::MAX`
744        #[must_use]
745        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
746            self.inner = self.inner.max_encoding_message_size(limit);
747            self
748        }
749        /// Deprecated. Please use GetDataUsage instead.
750        #[deprecated]
751        pub async fn get_team_detailed_data_usage(
752            &mut self,
753            request: impl tonic::IntoRequest<super::GetTeamDetailedDataUsageRequest>,
754        ) -> std::result::Result<
755            tonic::Response<
756                tonic::codec::Streaming<super::GetTeamDetailedDataUsageResponse>,
757            >,
758            tonic::Status,
759        > {
760            self.inner
761                .ready()
762                .await
763                .map_err(|e| {
764                    tonic::Status::unknown(
765                        format!("Service was not ready: {}", e.into()),
766                    )
767                })?;
768            let codec = tonic::codec::ProstCodec::default();
769            let path = http::uri::PathAndQuery::from_static(
770                "/com.coralogix.datausage.v2.DataUsageService/GetTeamDetailedDataUsage",
771            );
772            let mut req = request.into_request();
773            req.extensions_mut()
774                .insert(
775                    GrpcMethod::new(
776                        "com.coralogix.datausage.v2.DataUsageService",
777                        "GetTeamDetailedDataUsage",
778                    ),
779                );
780            self.inner.server_streaming(req, path, codec).await
781        }
782        pub async fn get_spans_count(
783            &mut self,
784            request: impl tonic::IntoRequest<super::GetSpansCountRequest>,
785        ) -> std::result::Result<
786            tonic::Response<tonic::codec::Streaming<super::GetSpansCountResponse>>,
787            tonic::Status,
788        > {
789            self.inner
790                .ready()
791                .await
792                .map_err(|e| {
793                    tonic::Status::unknown(
794                        format!("Service was not ready: {}", e.into()),
795                    )
796                })?;
797            let codec = tonic::codec::ProstCodec::default();
798            let path = http::uri::PathAndQuery::from_static(
799                "/com.coralogix.datausage.v2.DataUsageService/GetSpansCount",
800            );
801            let mut req = request.into_request();
802            req.extensions_mut()
803                .insert(
804                    GrpcMethod::new(
805                        "com.coralogix.datausage.v2.DataUsageService",
806                        "GetSpansCount",
807                    ),
808                );
809            self.inner.server_streaming(req, path, codec).await
810        }
811        pub async fn get_logs_count(
812            &mut self,
813            request: impl tonic::IntoRequest<super::GetLogsCountRequest>,
814        ) -> std::result::Result<
815            tonic::Response<tonic::codec::Streaming<super::GetLogsCountResponse>>,
816            tonic::Status,
817        > {
818            self.inner
819                .ready()
820                .await
821                .map_err(|e| {
822                    tonic::Status::unknown(
823                        format!("Service was not ready: {}", e.into()),
824                    )
825                })?;
826            let codec = tonic::codec::ProstCodec::default();
827            let path = http::uri::PathAndQuery::from_static(
828                "/com.coralogix.datausage.v2.DataUsageService/GetLogsCount",
829            );
830            let mut req = request.into_request();
831            req.extensions_mut()
832                .insert(
833                    GrpcMethod::new(
834                        "com.coralogix.datausage.v2.DataUsageService",
835                        "GetLogsCount",
836                    ),
837                );
838            self.inner.server_streaming(req, path, codec).await
839        }
840        pub async fn get_data_usage_metrics_export_status(
841            &mut self,
842            request: impl tonic::IntoRequest<
843                super::GetDataUsageMetricsExportStatusRequest,
844            >,
845        ) -> std::result::Result<
846            tonic::Response<super::GetDataUsageMetricsExportStatusResponse>,
847            tonic::Status,
848        > {
849            self.inner
850                .ready()
851                .await
852                .map_err(|e| {
853                    tonic::Status::unknown(
854                        format!("Service was not ready: {}", e.into()),
855                    )
856                })?;
857            let codec = tonic::codec::ProstCodec::default();
858            let path = http::uri::PathAndQuery::from_static(
859                "/com.coralogix.datausage.v2.DataUsageService/GetDataUsageMetricsExportStatus",
860            );
861            let mut req = request.into_request();
862            req.extensions_mut()
863                .insert(
864                    GrpcMethod::new(
865                        "com.coralogix.datausage.v2.DataUsageService",
866                        "GetDataUsageMetricsExportStatus",
867                    ),
868                );
869            self.inner.unary(req, path, codec).await
870        }
871        pub async fn update_data_usage_metrics_export_status(
872            &mut self,
873            request: impl tonic::IntoRequest<
874                super::UpdateDataUsageMetricsExportStatusRequest,
875            >,
876        ) -> std::result::Result<
877            tonic::Response<super::UpdateDataUsageMetricsExportStatusResponse>,
878            tonic::Status,
879        > {
880            self.inner
881                .ready()
882                .await
883                .map_err(|e| {
884                    tonic::Status::unknown(
885                        format!("Service was not ready: {}", e.into()),
886                    )
887                })?;
888            let codec = tonic::codec::ProstCodec::default();
889            let path = http::uri::PathAndQuery::from_static(
890                "/com.coralogix.datausage.v2.DataUsageService/UpdateDataUsageMetricsExportStatus",
891            );
892            let mut req = request.into_request();
893            req.extensions_mut()
894                .insert(
895                    GrpcMethod::new(
896                        "com.coralogix.datausage.v2.DataUsageService",
897                        "UpdateDataUsageMetricsExportStatus",
898                    ),
899                );
900            self.inner.unary(req, path, codec).await
901        }
902        pub async fn get_data_usage(
903            &mut self,
904            request: impl tonic::IntoRequest<super::GetDataUsageRequest>,
905        ) -> std::result::Result<
906            tonic::Response<tonic::codec::Streaming<super::GetDataUsageResponse>>,
907            tonic::Status,
908        > {
909            self.inner
910                .ready()
911                .await
912                .map_err(|e| {
913                    tonic::Status::unknown(
914                        format!("Service was not ready: {}", e.into()),
915                    )
916                })?;
917            let codec = tonic::codec::ProstCodec::default();
918            let path = http::uri::PathAndQuery::from_static(
919                "/com.coralogix.datausage.v2.DataUsageService/GetDataUsage",
920            );
921            let mut req = request.into_request();
922            req.extensions_mut()
923                .insert(
924                    GrpcMethod::new(
925                        "com.coralogix.datausage.v2.DataUsageService",
926                        "GetDataUsage",
927                    ),
928                );
929            self.inner.server_streaming(req, path, codec).await
930        }
931        /// /Endpoint to fetch daily usage in units
932        pub async fn get_daily_usage_units(
933            &mut self,
934            request: impl tonic::IntoRequest<super::GetDailyUsageUnitsRequest>,
935        ) -> std::result::Result<
936            tonic::Response<super::GetDailyUsageUnitsResponse>,
937            tonic::Status,
938        > {
939            self.inner
940                .ready()
941                .await
942                .map_err(|e| {
943                    tonic::Status::unknown(
944                        format!("Service was not ready: {}", e.into()),
945                    )
946                })?;
947            let codec = tonic::codec::ProstCodec::default();
948            let path = http::uri::PathAndQuery::from_static(
949                "/com.coralogix.datausage.v2.DataUsageService/GetDailyUsageUnits",
950            );
951            let mut req = request.into_request();
952            req.extensions_mut()
953                .insert(
954                    GrpcMethod::new(
955                        "com.coralogix.datausage.v2.DataUsageService",
956                        "GetDailyUsageUnits",
957                    ),
958                );
959            self.inner.unary(req, path, codec).await
960        }
961        /// /Endpoint to fetch daily usage in GBs
962        pub async fn get_daily_usage_processed_gbs(
963            &mut self,
964            request: impl tonic::IntoRequest<super::GetDailyUsageProcessedGbsRequest>,
965        ) -> std::result::Result<
966            tonic::Response<super::GetDailyUsageProcessedGbsResponse>,
967            tonic::Status,
968        > {
969            self.inner
970                .ready()
971                .await
972                .map_err(|e| {
973                    tonic::Status::unknown(
974                        format!("Service was not ready: {}", e.into()),
975                    )
976                })?;
977            let codec = tonic::codec::ProstCodec::default();
978            let path = http::uri::PathAndQuery::from_static(
979                "/com.coralogix.datausage.v2.DataUsageService/GetDailyUsageProcessedGbs",
980            );
981            let mut req = request.into_request();
982            req.extensions_mut()
983                .insert(
984                    GrpcMethod::new(
985                        "com.coralogix.datausage.v2.DataUsageService",
986                        "GetDailyUsageProcessedGbs",
987                    ),
988                );
989            self.inner.unary(req, path, codec).await
990        }
991        /// /Endpoint to fetch daily usage in evaluation tokens
992        pub async fn get_daily_usage_evaluation_tokens(
993            &mut self,
994            request: impl tonic::IntoRequest<super::GetDailyUsageEvaluationTokensRequest>,
995        ) -> std::result::Result<
996            tonic::Response<super::GetDailyUsageEvaluationTokensResponse>,
997            tonic::Status,
998        > {
999            self.inner
1000                .ready()
1001                .await
1002                .map_err(|e| {
1003                    tonic::Status::unknown(
1004                        format!("Service was not ready: {}", e.into()),
1005                    )
1006                })?;
1007            let codec = tonic::codec::ProstCodec::default();
1008            let path = http::uri::PathAndQuery::from_static(
1009                "/com.coralogix.datausage.v2.DataUsageService/GetDailyUsageEvaluationTokens",
1010            );
1011            let mut req = request.into_request();
1012            req.extensions_mut()
1013                .insert(
1014                    GrpcMethod::new(
1015                        "com.coralogix.datausage.v2.DataUsageService",
1016                        "GetDailyUsageEvaluationTokens",
1017                    ),
1018                );
1019            self.inner.unary(req, path, codec).await
1020        }
1021    }
1022}