1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct TimeSeriesReference {
4 #[prost(string, tag = "1")]
5 pub variable_name: ::prost::alloc::string::String,
6}
7#[derive(Clone, Copy, PartialEq, ::prost::Message)]
8pub struct ComputeDuration {
9 #[prost(int64, tag = "1")]
10 pub seconds: i64,
11 #[prost(int64, tag = "2")]
12 pub nanos: i64,
13}
14#[derive(Clone, Copy, PartialEq, ::prost::Message)]
15pub struct ComputeTimestamp {
16 #[prost(int64, tag = "1")]
17 pub seconds: i64,
18 #[prost(int64, tag = "2")]
19 pub nanos: i64,
20}
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct DoubleConstant {
23 #[prost(oneof = "double_constant::Kind", tags = "1, 2, 3")]
24 pub kind: ::core::option::Option<double_constant::Kind>,
25}
26pub mod double_constant {
28 #[derive(Clone, PartialEq, ::prost::Oneof)]
29 pub enum Kind {
30 #[prost(double, tag = "1")]
31 Literal(f64),
32 #[prost(string, tag = "2")]
33 VariableName(::prost::alloc::string::String),
34 #[prost(message, tag = "3")]
35 Builtin(super::BuiltinConstant),
36 }
37}
38#[derive(Clone, PartialEq, ::prost::Message)]
39pub struct IntegerConstant {
40 #[prost(oneof = "integer_constant::Kind", tags = "1, 2")]
41 pub kind: ::core::option::Option<integer_constant::Kind>,
42}
43pub mod integer_constant {
45 #[derive(Clone, PartialEq, ::prost::Oneof)]
46 pub enum Kind {
47 #[prost(int32, tag = "1")]
48 Literal(i32),
49 #[prost(string, tag = "2")]
50 VariableName(::prost::alloc::string::String),
51 }
52}
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct StringConstant {
55 #[prost(oneof = "string_constant::Kind", tags = "1, 2")]
56 pub kind: ::core::option::Option<string_constant::Kind>,
57}
58pub mod string_constant {
60 #[derive(Clone, PartialEq, ::prost::Oneof)]
61 pub enum Kind {
62 #[prost(string, tag = "1")]
63 Literal(::prost::alloc::string::String),
64 #[prost(string, tag = "2")]
65 VariableName(::prost::alloc::string::String),
66 }
67}
68#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct DurationConstant {
70 #[prost(oneof = "duration_constant::Kind", tags = "1, 2")]
71 pub kind: ::core::option::Option<duration_constant::Kind>,
72}
73pub mod duration_constant {
75 #[derive(Clone, PartialEq, ::prost::Oneof)]
76 pub enum Kind {
77 #[prost(message, tag = "1")]
78 Literal(super::ComputeDuration),
79 #[prost(string, tag = "2")]
80 VariableName(::prost::alloc::string::String),
81 }
82}
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct TimestampConstant {
85 #[prost(oneof = "timestamp_constant::Kind", tags = "1, 2")]
86 pub kind: ::core::option::Option<timestamp_constant::Kind>,
87}
88pub mod timestamp_constant {
90 #[derive(Clone, PartialEq, ::prost::Oneof)]
91 pub enum Kind {
92 #[prost(message, tag = "1")]
93 Literal(super::ComputeTimestamp),
94 #[prost(string, tag = "2")]
95 VariableName(::prost::alloc::string::String),
96 }
97}
98#[derive(Clone, PartialEq, ::prost::Message)]
99pub struct StringSetConstant {
100 #[prost(oneof = "string_set_constant::Kind", tags = "1, 2")]
101 pub kind: ::core::option::Option<string_set_constant::Kind>,
102}
103pub mod string_set_constant {
105 #[derive(Clone, PartialEq, ::prost::Oneof)]
106 pub enum Kind {
107 #[prost(message, tag = "1")]
108 Literal(super::StringSetLiteral),
109 #[prost(string, tag = "2")]
110 VariableName(::prost::alloc::string::String),
111 }
112}
113#[derive(Clone, PartialEq, ::prost::Message)]
114pub struct StringSetLiteral {
115 #[prost(string, repeated, tag = "1")]
116 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
119pub struct ParameterizedStringSet {
120 #[prost(oneof = "parameterized_string_set::Kind", tags = "1, 2")]
121 pub kind: ::core::option::Option<parameterized_string_set::Kind>,
122}
123pub mod parameterized_string_set {
125 #[derive(Clone, PartialEq, ::prost::Oneof)]
126 pub enum Kind {
127 #[prost(message, tag = "1")]
128 Literal(super::ParameterizedStringSetLiteral),
129 #[prost(string, tag = "2")]
130 VariableName(::prost::alloc::string::String),
131 }
132}
133#[derive(Clone, PartialEq, ::prost::Message)]
134pub struct ParameterizedStringSetLiteral {
135 #[prost(message, repeated, tag = "1")]
136 pub values: ::prost::alloc::vec::Vec<StringConstant>,
137}
138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
139pub struct BuiltinConstant {
140 #[prost(oneof = "builtin_constant::Kind", tags = "1, 2")]
141 pub kind: ::core::option::Option<builtin_constant::Kind>,
142}
143pub mod builtin_constant {
145 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
146 pub enum Kind {
147 #[prost(enumeration = "super::MathConstant", tag = "1")]
148 Math(i32),
149 #[prost(enumeration = "super::PhysicalConstant", tag = "2")]
150 Physical(i32),
151 }
152}
153#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
154#[repr(i32)]
155pub enum MathConstant {
156 Unspecified = 0,
157 Pi = 1,
158 Tau = 2,
159 E = 3,
160}
161impl MathConstant {
162 pub fn as_str_name(&self) -> &'static str {
167 match self {
168 Self::Unspecified => "MATH_CONSTANT_UNSPECIFIED",
169 Self::Pi => "MATH_CONSTANT_PI",
170 Self::Tau => "MATH_CONSTANT_TAU",
171 Self::E => "MATH_CONSTANT_E",
172 }
173 }
174 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
176 match value {
177 "MATH_CONSTANT_UNSPECIFIED" => Some(Self::Unspecified),
178 "MATH_CONSTANT_PI" => Some(Self::Pi),
179 "MATH_CONSTANT_TAU" => Some(Self::Tau),
180 "MATH_CONSTANT_E" => Some(Self::E),
181 _ => None,
182 }
183 }
184}
185#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
186#[repr(i32)]
187pub enum PhysicalConstant {
188 Unspecified = 0,
189 SpeedOfLight = 1,
190 Avogadro = 2,
191 Boltzmann = 3,
192 Planck = 4,
193 ElementaryCharge = 5,
194 GasConstant = 6,
195 StandardGravity = 7,
196 StandardAtmosphere = 8,
197 AbsoluteZeroCelsius = 9,
198 GravitationalConstant = 10,
199 StefanBoltzmann = 11,
200}
201impl PhysicalConstant {
202 pub fn as_str_name(&self) -> &'static str {
207 match self {
208 Self::Unspecified => "PHYSICAL_CONSTANT_UNSPECIFIED",
209 Self::SpeedOfLight => "PHYSICAL_CONSTANT_SPEED_OF_LIGHT",
210 Self::Avogadro => "PHYSICAL_CONSTANT_AVOGADRO",
211 Self::Boltzmann => "PHYSICAL_CONSTANT_BOLTZMANN",
212 Self::Planck => "PHYSICAL_CONSTANT_PLANCK",
213 Self::ElementaryCharge => "PHYSICAL_CONSTANT_ELEMENTARY_CHARGE",
214 Self::GasConstant => "PHYSICAL_CONSTANT_GAS_CONSTANT",
215 Self::StandardGravity => "PHYSICAL_CONSTANT_STANDARD_GRAVITY",
216 Self::StandardAtmosphere => "PHYSICAL_CONSTANT_STANDARD_ATMOSPHERE",
217 Self::AbsoluteZeroCelsius => "PHYSICAL_CONSTANT_ABSOLUTE_ZERO_CELSIUS",
218 Self::GravitationalConstant => "PHYSICAL_CONSTANT_GRAVITATIONAL_CONSTANT",
219 Self::StefanBoltzmann => "PHYSICAL_CONSTANT_STEFAN_BOLTZMANN",
220 }
221 }
222 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
224 match value {
225 "PHYSICAL_CONSTANT_UNSPECIFIED" => Some(Self::Unspecified),
226 "PHYSICAL_CONSTANT_SPEED_OF_LIGHT" => Some(Self::SpeedOfLight),
227 "PHYSICAL_CONSTANT_AVOGADRO" => Some(Self::Avogadro),
228 "PHYSICAL_CONSTANT_BOLTZMANN" => Some(Self::Boltzmann),
229 "PHYSICAL_CONSTANT_PLANCK" => Some(Self::Planck),
230 "PHYSICAL_CONSTANT_ELEMENTARY_CHARGE" => Some(Self::ElementaryCharge),
231 "PHYSICAL_CONSTANT_GAS_CONSTANT" => Some(Self::GasConstant),
232 "PHYSICAL_CONSTANT_STANDARD_GRAVITY" => Some(Self::StandardGravity),
233 "PHYSICAL_CONSTANT_STANDARD_ATMOSPHERE" => Some(Self::StandardAtmosphere),
234 "PHYSICAL_CONSTANT_ABSOLUTE_ZERO_CELSIUS" => Some(Self::AbsoluteZeroCelsius),
235 "PHYSICAL_CONSTANT_GRAVITATIONAL_CONSTANT" => {
236 Some(Self::GravitationalConstant)
237 }
238 "PHYSICAL_CONSTANT_STEFAN_BOLTZMANN" => Some(Self::StefanBoltzmann),
239 _ => None,
240 }
241 }
242}
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct ScalingFactor {
245 #[prost(message, optional, tag = "1")]
246 pub value: ::core::option::Option<DoubleConstant>,
247 #[prost(string, optional, tag = "2")]
248 pub unit: ::core::option::Option<::prost::alloc::string::String>,
249}
250#[derive(Clone, PartialEq, ::prost::Message)]
251pub struct ResampleFill {
252 #[prost(oneof = "resample_fill::Kind", tags = "1, 2")]
253 pub kind: ::core::option::Option<resample_fill::Kind>,
254}
255pub mod resample_fill {
257 #[derive(Clone, PartialEq, ::prost::Oneof)]
258 pub enum Kind {
259 #[prost(message, tag = "1")]
260 ForwardFill(super::ForwardFillResample),
261 #[prost(message, tag = "2")]
262 Constant(super::DoubleConstant),
263 }
264}
265#[derive(Clone, Copy, PartialEq, ::prost::Message)]
266pub struct ForwardFillResample {}
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct CategoricalReduction {
269 #[prost(oneof = "categorical_reduction::Kind", tags = "1, 2, 3")]
270 pub kind: ::core::option::Option<categorical_reduction::Kind>,
271}
272pub mod categorical_reduction {
274 #[derive(Clone, PartialEq, ::prost::Oneof)]
275 pub enum Kind {
276 #[prost(message, tag = "1")]
277 Min(super::CategoricalMinReduction),
278 #[prost(message, tag = "2")]
279 Max(super::CategoricalMaxReduction),
280 #[prost(message, tag = "3")]
281 Udf(super::super::super::modules::v1::UdfSource),
282 }
283}
284#[derive(Clone, Copy, PartialEq, ::prost::Message)]
285pub struct CategoricalMinReduction {}
286#[derive(Clone, Copy, PartialEq, ::prost::Message)]
287pub struct CategoricalMaxReduction {}
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct CategoricalResampleFill {
290 #[prost(oneof = "categorical_resample_fill::Kind", tags = "1, 2")]
291 pub kind: ::core::option::Option<categorical_resample_fill::Kind>,
292}
293pub mod categorical_resample_fill {
295 #[derive(Clone, PartialEq, ::prost::Oneof)]
296 pub enum Kind {
297 #[prost(message, tag = "1")]
298 ForwardFill(super::ForwardFillResample),
299 #[prost(message, tag = "2")]
300 Constant(super::StringConstant),
301 }
302}
303#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
304#[repr(i32)]
305pub enum CategoricalMergeOperation {
306 Unspecified = 0,
307 RejectDuplicates = 1,
308 Max = 2,
309 Min = 3,
310}
311impl CategoricalMergeOperation {
312 pub fn as_str_name(&self) -> &'static str {
317 match self {
318 Self::Unspecified => "CATEGORICAL_MERGE_OPERATION_UNSPECIFIED",
319 Self::RejectDuplicates => "CATEGORICAL_MERGE_OPERATION_REJECT_DUPLICATES",
320 Self::Max => "CATEGORICAL_MERGE_OPERATION_MAX",
321 Self::Min => "CATEGORICAL_MERGE_OPERATION_MIN",
322 }
323 }
324 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
326 match value {
327 "CATEGORICAL_MERGE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
328 "CATEGORICAL_MERGE_OPERATION_REJECT_DUPLICATES" => {
329 Some(Self::RejectDuplicates)
330 }
331 "CATEGORICAL_MERGE_OPERATION_MAX" => Some(Self::Max),
332 "CATEGORICAL_MERGE_OPERATION_MIN" => Some(Self::Min),
333 _ => None,
334 }
335 }
336}
337#[derive(Clone, PartialEq, ::prost::Message)]
338pub struct DatasetReference {
339 #[prost(message, optional, tag = "1")]
340 pub name: ::core::option::Option<StringConstant>,
341}
342#[derive(Clone, PartialEq, ::prost::Message)]
343pub struct DurationExpression {
344 #[prost(oneof = "duration_expression::Kind", tags = "1, 2, 3, 4")]
345 pub kind: ::core::option::Option<duration_expression::Kind>,
346}
347pub mod duration_expression {
349 #[derive(Clone, PartialEq, ::prost::Oneof)]
350 pub enum Kind {
351 #[prost(string, tag = "1")]
352 VariableName(::prost::alloc::string::String),
353 #[prost(message, tag = "2")]
354 Amount(super::DurationAmount),
355 #[prost(message, tag = "3")]
356 Binary(::prost::alloc::boxed::Box<super::BinaryDurationExpression>),
357 #[prost(message, tag = "4")]
358 Negated(::prost::alloc::boxed::Box<super::DurationExpression>),
359 }
360}
361#[derive(Clone, PartialEq, ::prost::Message)]
362pub struct DurationAmount {
363 #[prost(message, optional, tag = "1")]
364 pub count: ::core::option::Option<IntegerConstant>,
365 #[prost(enumeration = "super::super::types::time::TimeUnit", tag = "2")]
366 pub unit: i32,
367}
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct BinaryDurationExpression {
370 #[prost(enumeration = "DurationOperation", tag = "1")]
371 pub operation: i32,
372 #[prost(message, optional, boxed, tag = "2")]
373 pub left: ::core::option::Option<::prost::alloc::boxed::Box<DurationExpression>>,
374 #[prost(message, optional, boxed, tag = "3")]
375 pub right: ::core::option::Option<::prost::alloc::boxed::Box<DurationExpression>>,
376}
377#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
378#[repr(i32)]
379pub enum DurationOperation {
380 Unspecified = 0,
381 Add = 1,
382 Subtract = 2,
383}
384impl DurationOperation {
385 pub fn as_str_name(&self) -> &'static str {
390 match self {
391 Self::Unspecified => "DURATION_OPERATION_UNSPECIFIED",
392 Self::Add => "DURATION_OPERATION_ADD",
393 Self::Subtract => "DURATION_OPERATION_SUBTRACT",
394 }
395 }
396 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
398 match value {
399 "DURATION_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
400 "DURATION_OPERATION_ADD" => Some(Self::Add),
401 "DURATION_OPERATION_SUBTRACT" => Some(Self::Subtract),
402 _ => None,
403 }
404 }
405}
406#[derive(Clone, PartialEq, ::prost::Message)]
407pub struct TagPredicateExpression {
408 #[prost(oneof = "tag_predicate_expression::Kind", tags = "1, 2, 3")]
409 pub kind: ::core::option::Option<tag_predicate_expression::Kind>,
410}
411pub mod tag_predicate_expression {
413 #[derive(Clone, PartialEq, ::prost::Oneof)]
414 pub enum Kind {
415 #[prost(message, tag = "1")]
416 In(super::TagMembershipExpression),
417 #[prost(message, tag = "2")]
418 NotIn(super::TagMembershipExpression),
419 #[prost(message, tag = "3")]
420 And(::prost::alloc::boxed::Box<super::TagConjunctionExpression>),
421 }
422}
423#[derive(Clone, PartialEq, ::prost::Message)]
424pub struct TagMembershipExpression {
425 #[prost(message, optional, tag = "1")]
426 pub key: ::core::option::Option<StringConstant>,
427 #[prost(message, optional, tag = "2")]
428 pub values: ::core::option::Option<ParameterizedStringSet>,
429}
430#[derive(Clone, PartialEq, ::prost::Message)]
431pub struct TagConjunctionExpression {
432 #[prost(message, optional, boxed, tag = "1")]
433 pub left: ::core::option::Option<::prost::alloc::boxed::Box<TagPredicateExpression>>,
434 #[prost(message, optional, boxed, tag = "2")]
435 pub right: ::core::option::Option<
436 ::prost::alloc::boxed::Box<TagPredicateExpression>,
437 >,
438}
439#[derive(Clone, PartialEq, ::prost::Message)]
440pub struct TagKeySet {
441 #[prost(message, optional, tag = "1")]
442 pub keys: ::core::option::Option<ParameterizedStringSet>,
443}
444#[derive(Clone, PartialEq, ::prost::Message)]
445pub struct AssetReferenceExpression {
446 #[prost(oneof = "asset_reference_expression::Kind", tags = "1, 2")]
447 pub kind: ::core::option::Option<asset_reference_expression::Kind>,
448}
449pub mod asset_reference_expression {
451 #[derive(Clone, PartialEq, ::prost::Oneof)]
452 pub enum Kind {
453 #[prost(string, tag = "1")]
454 Literal(::prost::alloc::string::String),
455 #[prost(string, tag = "2")]
456 VariableName(::prost::alloc::string::String),
457 }
458}
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct RunReferenceExpression {
461 #[prost(oneof = "run_reference_expression::Kind", tags = "1, 2")]
462 pub kind: ::core::option::Option<run_reference_expression::Kind>,
463}
464pub mod run_reference_expression {
466 #[derive(Clone, PartialEq, ::prost::Oneof)]
467 pub enum Kind {
468 #[prost(string, tag = "1")]
469 Literal(::prost::alloc::string::String),
470 #[prost(string, tag = "2")]
471 VariableName(::prost::alloc::string::String),
472 }
473}
474#[derive(Clone, PartialEq, ::prost::Message)]
475pub struct DataSourceReferenceExpression {
476 #[prost(oneof = "data_source_reference_expression::Kind", tags = "1, 2")]
477 pub kind: ::core::option::Option<data_source_reference_expression::Kind>,
478}
479pub mod data_source_reference_expression {
481 #[derive(Clone, PartialEq, ::prost::Oneof)]
482 pub enum Kind {
483 #[prost(string, tag = "1")]
484 Literal(::prost::alloc::string::String),
485 #[prost(string, tag = "2")]
486 VariableName(::prost::alloc::string::String),
487 }
488}
489#[derive(Clone, PartialEq, ::prost::Message)]
490pub struct ResourceTypeReferenceExpression {
491 #[prost(oneof = "resource_type_reference_expression::Kind", tags = "1, 2")]
492 pub kind: ::core::option::Option<resource_type_reference_expression::Kind>,
493}
494pub mod resource_type_reference_expression {
496 #[derive(Clone, PartialEq, ::prost::Oneof)]
497 pub enum Kind {
498 #[prost(string, tag = "1")]
499 Literal(::prost::alloc::string::String),
500 #[prost(string, tag = "2")]
501 VariableName(::prost::alloc::string::String),
502 }
503}
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct ChannelSelection {
506 #[prost(oneof = "channel_selection::Source", tags = "1, 2, 3")]
507 pub source: ::core::option::Option<channel_selection::Source>,
508}
509pub mod channel_selection {
511 #[derive(Clone, PartialEq, ::prost::Oneof)]
512 pub enum Source {
513 #[prost(message, tag = "1")]
514 DataSource(super::DataSourceChannelSelection),
515 #[prost(message, tag = "2")]
516 Asset(super::AssetChannelSelection),
517 #[prost(message, tag = "3")]
518 Run(super::RunChannelSelection),
519 }
520}
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct DataSourceChannelSelection {
523 #[prost(message, optional, tag = "1")]
524 pub data_source: ::core::option::Option<DataSourceReferenceExpression>,
525 #[prost(message, optional, tag = "2")]
526 pub channel: ::core::option::Option<StringConstant>,
527 #[prost(message, optional, tag = "3")]
528 pub tags: ::core::option::Option<ChannelTagConstraints>,
529 #[prost(message, optional, tag = "4")]
530 pub grouping_keys: ::core::option::Option<TagKeySet>,
531 #[prost(enumeration = "SeriesStorageEngine", optional, tag = "5")]
532 pub storage: ::core::option::Option<i32>,
533}
534#[derive(Clone, PartialEq, ::prost::Message)]
535pub struct AssetChannelSelection {
536 #[prost(message, optional, tag = "1")]
537 pub asset: ::core::option::Option<AssetReferenceExpression>,
538 #[prost(message, optional, tag = "2")]
539 pub data_scope: ::core::option::Option<StringConstant>,
540 #[prost(message, optional, tag = "3")]
541 pub channel: ::core::option::Option<StringConstant>,
542 #[prost(message, optional, tag = "4")]
543 pub tags: ::core::option::Option<ChannelTagConstraints>,
544 #[prost(message, optional, tag = "5")]
545 pub grouping_keys: ::core::option::Option<TagKeySet>,
546}
547#[derive(Clone, PartialEq, ::prost::Message)]
548pub struct RunChannelSelection {
549 #[prost(message, optional, tag = "1")]
550 pub run: ::core::option::Option<RunReferenceExpression>,
551 #[prost(message, optional, tag = "2")]
552 pub asset: ::core::option::Option<AssetReferenceExpression>,
553 #[prost(message, optional, tag = "3")]
554 pub data_scope: ::core::option::Option<StringConstant>,
555 #[prost(message, optional, tag = "4")]
556 pub channel: ::core::option::Option<StringConstant>,
557 #[prost(message, optional, tag = "5")]
558 pub tags: ::core::option::Option<ChannelTagConstraints>,
559 #[prost(message, optional, tag = "6")]
560 pub grouping_keys: ::core::option::Option<TagKeySet>,
561}
562#[derive(Clone, PartialEq, ::prost::Message)]
563pub struct ChannelTagConstraints {
564 #[prost(oneof = "channel_tag_constraints::Kind", tags = "1, 2")]
565 pub kind: ::core::option::Option<channel_tag_constraints::Kind>,
566}
567pub mod channel_tag_constraints {
569 #[derive(Clone, PartialEq, ::prost::Oneof)]
570 pub enum Kind {
571 #[prost(message, tag = "1")]
572 ExactValues(super::ExactTagValues),
573 #[prost(message, tag = "2")]
574 Predicate(super::TagPredicateExpression),
575 }
576}
577#[derive(Clone, PartialEq, ::prost::Message)]
578pub struct ExactTagValues {
579 #[prost(map = "string, message", tag = "1")]
580 pub values: ::std::collections::HashMap<
581 ::prost::alloc::string::String,
582 StringConstant,
583 >,
584}
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct SeriesSampling {
587 #[prost(oneof = "series_sampling::Kind", tags = "1, 2")]
588 pub kind: ::core::option::Option<series_sampling::Kind>,
589}
590pub mod series_sampling {
592 #[derive(Clone, PartialEq, ::prost::Oneof)]
593 pub enum Kind {
594 #[prost(message, tag = "1")]
595 EveryNthPerSeries(super::IntegerConstant),
596 #[prost(message, tag = "2")]
597 HashSubsample(super::IntegerConstant),
598 }
599}
600#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
601#[repr(i32)]
602pub enum SeriesStorageEngine {
603 Unspecified = 0,
604 Iceberg = 1,
605 Clickhouse = 2,
606}
607impl SeriesStorageEngine {
608 pub fn as_str_name(&self) -> &'static str {
613 match self {
614 Self::Unspecified => "SERIES_STORAGE_ENGINE_UNSPECIFIED",
615 Self::Iceberg => "SERIES_STORAGE_ENGINE_ICEBERG",
616 Self::Clickhouse => "SERIES_STORAGE_ENGINE_CLICKHOUSE",
617 }
618 }
619 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
621 match value {
622 "SERIES_STORAGE_ENGINE_UNSPECIFIED" => Some(Self::Unspecified),
623 "SERIES_STORAGE_ENGINE_ICEBERG" => Some(Self::Iceberg),
624 "SERIES_STORAGE_ENGINE_CLICKHOUSE" => Some(Self::Clickhouse),
625 _ => None,
626 }
627 }
628}
629#[derive(Clone, PartialEq, ::prost::Message)]
630pub struct EventPredicateExpression {
631 #[prost(
632 oneof = "event_predicate_expression::Kind",
633 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24"
634 )]
635 pub kind: ::core::option::Option<event_predicate_expression::Kind>,
636}
637pub mod event_predicate_expression {
639 #[derive(Clone, PartialEq, ::prost::Oneof)]
640 pub enum Kind {
641 #[prost(message, tag = "1")]
642 SearchText(super::StringConstant),
643 #[prost(message, tag = "2")]
644 After(super::TimestampConstant),
645 #[prost(message, tag = "3")]
646 Before(super::TimestampConstant),
647 #[prost(message, tag = "4")]
648 TimestampCondition(super::EventTimestampCondition),
649 #[prost(message, tag = "5")]
650 Asset(super::AssetReferenceExpression),
651 #[prost(message, tag = "6")]
652 TemplateRid(super::StringConstant),
653 #[prost(message, tag = "7")]
654 WorkbookRid(super::StringConstant),
655 #[prost(message, tag = "8")]
656 DataReviewRid(super::StringConstant),
657 #[prost(
658 enumeration = "super::super::super::event::v2::SearchEventOriginType",
659 tag = "9"
660 )]
661 OriginType(i32),
662 #[prost(message, tag = "10")]
663 DataReviewCheckRid(super::StringConstant),
664 #[prost(
665 enumeration = "super::super::super::event::v2::EventDispositionStatus",
666 tag = "11"
667 )]
668 Disposition(i32),
669 #[prost(message, tag = "12")]
670 Priority(super::StringConstant),
671 #[prost(message, tag = "13")]
672 AssigneeRid(super::StringConstant),
673 #[prost(enumeration = "super::super::super::event::v2::EventType", tag = "14")]
674 EventType(i32),
675 #[prost(message, tag = "15")]
676 CreatedByRid(super::StringConstant),
677 #[prost(message, tag = "16")]
678 Label(super::StringConstant),
679 #[prost(message, tag = "17")]
680 Property(super::EventPropertyPredicate),
681 #[prost(message, tag = "18")]
682 All(super::EventPredicateGroup),
683 #[prost(message, tag = "19")]
684 Any(super::EventPredicateGroup),
685 #[prost(message, tag = "20")]
686 Negation(::prost::alloc::boxed::Box<super::EventPredicateExpression>),
687 #[prost(message, tag = "21")]
688 WorkspaceRid(super::StringConstant),
689 #[prost(message, tag = "22")]
690 ProcedureRid(super::StringConstant),
691 #[prost(message, tag = "23")]
692 ProcedureExecutionRid(super::StringConstant),
693 #[prost(message, tag = "24")]
694 StepId(super::StringConstant),
695 }
696}
697#[derive(Clone, PartialEq, ::prost::Message)]
698pub struct EventTimestampCondition {
699 #[prost(message, optional, tag = "1")]
700 pub timestamp: ::core::option::Option<TimestampConstant>,
701 #[prost(
702 enumeration = "super::super::event::v2::EventTimeFilterCondition",
703 tag = "2"
704 )]
705 pub condition: i32,
706}
707#[derive(Clone, PartialEq, ::prost::Message)]
708pub struct EventPropertyPredicate {
709 #[prost(message, optional, tag = "1")]
710 pub name: ::core::option::Option<StringConstant>,
711 #[prost(message, optional, tag = "2")]
712 pub value: ::core::option::Option<StringConstant>,
713}
714#[derive(Clone, PartialEq, ::prost::Message)]
715pub struct EventPredicateGroup {
716 #[prost(message, repeated, tag = "1")]
717 pub predicates: ::prost::alloc::vec::Vec<EventPredicateExpression>,
718}
719#[derive(Clone, PartialEq, ::prost::Message)]
720pub struct LogPredicate {
721 #[prost(oneof = "log_predicate::Kind", tags = "1, 2, 3, 4, 5, 6")]
722 pub kind: ::core::option::Option<log_predicate::Kind>,
723}
724pub mod log_predicate {
726 #[derive(Clone, PartialEq, ::prost::Oneof)]
727 pub enum Kind {
728 #[prost(string, tag = "1")]
729 MessageRegex(::prost::alloc::string::String),
730 #[prost(string, tag = "2")]
731 MessageContainsCaseInsensitive(::prost::alloc::string::String),
732 #[prost(message, tag = "3")]
733 AttributeRegex(super::LogAttributeRegex),
734 #[prost(message, tag = "4")]
735 All(super::LogPredicateGroup),
736 #[prost(message, tag = "5")]
737 Any(super::LogPredicateGroup),
738 #[prost(message, tag = "6")]
739 Negation(::prost::alloc::boxed::Box<super::LogPredicate>),
740 }
741}
742#[derive(Clone, PartialEq, ::prost::Message)]
743pub struct LogAttributeRegex {
744 #[prost(message, optional, tag = "1")]
745 pub key: ::core::option::Option<StringConstant>,
746 #[prost(string, tag = "2")]
747 pub regex: ::prost::alloc::string::String,
748}
749#[derive(Clone, PartialEq, ::prost::Message)]
750pub struct LogPredicateGroup {
751 #[prost(message, repeated, tag = "1")]
752 pub predicates: ::prost::alloc::vec::Vec<LogPredicate>,
753}
754#[derive(Clone, PartialEq, ::prost::Message)]
755pub struct NumericReduction {
756 #[prost(oneof = "numeric_reduction::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
757 pub kind: ::core::option::Option<numeric_reduction::Kind>,
758}
759pub mod numeric_reduction {
761 #[derive(Clone, PartialEq, ::prost::Oneof)]
762 pub enum Kind {
763 #[prost(message, tag = "1")]
764 Sum(super::SumReduction),
765 #[prost(message, tag = "2")]
766 Average(super::AverageReduction),
767 #[prost(message, tag = "3")]
768 Min(super::MinReduction),
769 #[prost(message, tag = "4")]
770 Max(super::MaxReduction),
771 #[prost(message, tag = "5")]
772 Count(super::CountReduction),
773 #[prost(message, tag = "6")]
774 StandardDeviation(super::StandardDeviationReduction),
775 #[prost(message, tag = "7")]
776 RootMeanSquare(super::RootMeanSquareReduction),
777 #[prost(message, tag = "8")]
778 Percentile(super::DoubleConstant),
779 #[prost(message, tag = "9")]
780 Udf(super::super::super::modules::v1::UdfSource),
781 }
782}
783#[derive(Clone, Copy, PartialEq, ::prost::Message)]
784pub struct SumReduction {}
785#[derive(Clone, Copy, PartialEq, ::prost::Message)]
786pub struct AverageReduction {}
787#[derive(Clone, Copy, PartialEq, ::prost::Message)]
788pub struct MinReduction {}
789#[derive(Clone, Copy, PartialEq, ::prost::Message)]
790pub struct MaxReduction {}
791#[derive(Clone, Copy, PartialEq, ::prost::Message)]
792pub struct CountReduction {}
793#[derive(Clone, Copy, PartialEq, ::prost::Message)]
794pub struct StandardDeviationReduction {}
795#[derive(Clone, Copy, PartialEq, ::prost::Message)]
796pub struct RootMeanSquareReduction {}
797#[derive(Clone, PartialEq, ::prost::Message)]
798pub struct DurationInput {
799 #[prost(oneof = "duration_input::Kind", tags = "1, 2")]
800 pub kind: ::core::option::Option<duration_input::Kind>,
801}
802pub mod duration_input {
804 #[derive(Clone, PartialEq, ::prost::Oneof)]
805 pub enum Kind {
806 #[prost(message, tag = "1")]
807 Components(super::DurationConstant),
808 #[prost(message, tag = "2")]
809 Arithmetic(super::DurationExpression),
810 }
811}
812#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct RangePersistence {
814 #[prost(message, optional, tag = "1")]
815 pub min_points: ::core::option::Option<IntegerConstant>,
816 #[prost(message, optional, tag = "2")]
817 pub min_duration: ::core::option::Option<DurationInput>,
818 #[prost(enumeration = "RangeStartSelection", optional, tag = "3")]
819 pub start: ::core::option::Option<i32>,
820}
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct SpreadThreshold {
823 #[prost(oneof = "spread_threshold::Kind", tags = "1, 2")]
824 pub kind: ::core::option::Option<spread_threshold::Kind>,
825}
826pub mod spread_threshold {
828 #[derive(Clone, PartialEq, ::prost::Oneof)]
829 pub enum Kind {
830 #[prost(message, tag = "1")]
831 Absolute(super::DoubleConstant),
832 #[prost(message, tag = "2")]
833 Percentage(super::DoubleConstant),
834 }
835}
836#[derive(Clone, PartialEq, ::prost::Message)]
837pub struct TagGrouping {
838 #[prost(map = "string, string", tag = "1")]
839 pub tags: ::std::collections::HashMap<
840 ::prost::alloc::string::String,
841 ::prost::alloc::string::String,
842 >,
843}
844#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
845#[repr(i32)]
846pub enum RangeStartSelection {
847 Unspecified = 0,
848 ConditionStart = 1,
849 PersistenceStart = 2,
850}
851impl RangeStartSelection {
852 pub fn as_str_name(&self) -> &'static str {
857 match self {
858 Self::Unspecified => "RANGE_START_SELECTION_UNSPECIFIED",
859 Self::ConditionStart => "RANGE_START_SELECTION_CONDITION_START",
860 Self::PersistenceStart => "RANGE_START_SELECTION_PERSISTENCE_START",
861 }
862 }
863 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
865 match value {
866 "RANGE_START_SELECTION_UNSPECIFIED" => Some(Self::Unspecified),
867 "RANGE_START_SELECTION_CONDITION_START" => Some(Self::ConditionStart),
868 "RANGE_START_SELECTION_PERSISTENCE_START" => Some(Self::PersistenceStart),
869 _ => None,
870 }
871 }
872}
873#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
874#[repr(i32)]
875pub enum UnboundedDurationComparison {
876 Unspecified = 0,
877 Infinity = 1,
878 WindowBound = 2,
879}
880impl UnboundedDurationComparison {
881 pub fn as_str_name(&self) -> &'static str {
886 match self {
887 Self::Unspecified => "UNBOUNDED_DURATION_COMPARISON_UNSPECIFIED",
888 Self::Infinity => "UNBOUNDED_DURATION_COMPARISON_INFINITY",
889 Self::WindowBound => "UNBOUNDED_DURATION_COMPARISON_WINDOW_BOUND",
890 }
891 }
892 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
894 match value {
895 "UNBOUNDED_DURATION_COMPARISON_UNSPECIFIED" => Some(Self::Unspecified),
896 "UNBOUNDED_DURATION_COMPARISON_INFINITY" => Some(Self::Infinity),
897 "UNBOUNDED_DURATION_COMPARISON_WINDOW_BOUND" => Some(Self::WindowBound),
898 _ => None,
899 }
900 }
901}
902#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
903#[repr(i32)]
904pub enum NumericBoundsCondition {
905 Unspecified = 0,
906 Outside = 1,
907 OutsideOrEqual = 2,
908 Inside = 3,
909 InsideOrEqual = 4,
910}
911impl NumericBoundsCondition {
912 pub fn as_str_name(&self) -> &'static str {
917 match self {
918 Self::Unspecified => "NUMERIC_BOUNDS_CONDITION_UNSPECIFIED",
919 Self::Outside => "NUMERIC_BOUNDS_CONDITION_OUTSIDE",
920 Self::OutsideOrEqual => "NUMERIC_BOUNDS_CONDITION_OUTSIDE_OR_EQUAL",
921 Self::Inside => "NUMERIC_BOUNDS_CONDITION_INSIDE",
922 Self::InsideOrEqual => "NUMERIC_BOUNDS_CONDITION_INSIDE_OR_EQUAL",
923 }
924 }
925 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
927 match value {
928 "NUMERIC_BOUNDS_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
929 "NUMERIC_BOUNDS_CONDITION_OUTSIDE" => Some(Self::Outside),
930 "NUMERIC_BOUNDS_CONDITION_OUTSIDE_OR_EQUAL" => Some(Self::OutsideOrEqual),
931 "NUMERIC_BOUNDS_CONDITION_INSIDE" => Some(Self::Inside),
932 "NUMERIC_BOUNDS_CONDITION_INSIDE_OR_EQUAL" => Some(Self::InsideOrEqual),
933 _ => None,
934 }
935 }
936}
937#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
938#[repr(i32)]
939pub enum SeriesEqualityMode {
940 Unspecified = 0,
941 AllEqual = 1,
942 NotAllEqual = 2,
943}
944impl SeriesEqualityMode {
945 pub fn as_str_name(&self) -> &'static str {
950 match self {
951 Self::Unspecified => "SERIES_EQUALITY_MODE_UNSPECIFIED",
952 Self::AllEqual => "SERIES_EQUALITY_MODE_ALL_EQUAL",
953 Self::NotAllEqual => "SERIES_EQUALITY_MODE_NOT_ALL_EQUAL",
954 }
955 }
956 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
958 match value {
959 "SERIES_EQUALITY_MODE_UNSPECIFIED" => Some(Self::Unspecified),
960 "SERIES_EQUALITY_MODE_ALL_EQUAL" => Some(Self::AllEqual),
961 "SERIES_EQUALITY_MODE_NOT_ALL_EQUAL" => Some(Self::NotAllEqual),
962 _ => None,
963 }
964 }
965}
966#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
967#[repr(i32)]
968pub enum CategoricalMembershipOperation {
969 Unspecified = 0,
970 In = 1,
971 NotIn = 2,
972 MatchesAnyRegex = 3,
973}
974impl CategoricalMembershipOperation {
975 pub fn as_str_name(&self) -> &'static str {
980 match self {
981 Self::Unspecified => "CATEGORICAL_MEMBERSHIP_OPERATION_UNSPECIFIED",
982 Self::In => "CATEGORICAL_MEMBERSHIP_OPERATION_IN",
983 Self::NotIn => "CATEGORICAL_MEMBERSHIP_OPERATION_NOT_IN",
984 Self::MatchesAnyRegex => "CATEGORICAL_MEMBERSHIP_OPERATION_MATCHES_ANY_REGEX",
985 }
986 }
987 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
989 match value {
990 "CATEGORICAL_MEMBERSHIP_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
991 "CATEGORICAL_MEMBERSHIP_OPERATION_IN" => Some(Self::In),
992 "CATEGORICAL_MEMBERSHIP_OPERATION_NOT_IN" => Some(Self::NotIn),
993 "CATEGORICAL_MEMBERSHIP_OPERATION_MATCHES_ANY_REGEX" => {
994 Some(Self::MatchesAnyRegex)
995 }
996 _ => None,
997 }
998 }
999}
1000#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1001#[repr(i32)]
1002pub enum ExtremaSelection {
1003 Unspecified = 0,
1004 Peaks = 1,
1005 Troughs = 2,
1006 Both = 3,
1007}
1008impl ExtremaSelection {
1009 pub fn as_str_name(&self) -> &'static str {
1014 match self {
1015 Self::Unspecified => "EXTREMA_SELECTION_UNSPECIFIED",
1016 Self::Peaks => "EXTREMA_SELECTION_PEAKS",
1017 Self::Troughs => "EXTREMA_SELECTION_TROUGHS",
1018 Self::Both => "EXTREMA_SELECTION_BOTH",
1019 }
1020 }
1021 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1023 match value {
1024 "EXTREMA_SELECTION_UNSPECIFIED" => Some(Self::Unspecified),
1025 "EXTREMA_SELECTION_PEAKS" => Some(Self::Peaks),
1026 "EXTREMA_SELECTION_TROUGHS" => Some(Self::Troughs),
1027 "EXTREMA_SELECTION_BOTH" => Some(Self::Both),
1028 _ => None,
1029 }
1030 }
1031}
1032#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1033#[repr(i32)]
1034pub enum RangePaddingSides {
1035 Unspecified = 0,
1036 Start = 1,
1037 End = 2,
1038 Both = 3,
1039}
1040impl RangePaddingSides {
1041 pub fn as_str_name(&self) -> &'static str {
1046 match self {
1047 Self::Unspecified => "RANGE_PADDING_SIDES_UNSPECIFIED",
1048 Self::Start => "RANGE_PADDING_SIDES_START",
1049 Self::End => "RANGE_PADDING_SIDES_END",
1050 Self::Both => "RANGE_PADDING_SIDES_BOTH",
1051 }
1052 }
1053 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1055 match value {
1056 "RANGE_PADDING_SIDES_UNSPECIFIED" => Some(Self::Unspecified),
1057 "RANGE_PADDING_SIDES_START" => Some(Self::Start),
1058 "RANGE_PADDING_SIDES_END" => Some(Self::End),
1059 "RANGE_PADDING_SIDES_BOTH" => Some(Self::Both),
1060 _ => None,
1061 }
1062 }
1063}
1064#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1065#[repr(i32)]
1066pub enum RefpropSubstance {
1067 Unspecified = 0,
1068 Nitrogen = 1,
1069 Oxygen = 2,
1070 Helium = 3,
1071 Hydrogen = 4,
1072 Methane = 5,
1073 Propane = 6,
1074 Butane = 7,
1075 Water = 8,
1076 Xenon = 9,
1077 Air = 10,
1078 CarbonDioxide = 11,
1079 Argon = 12,
1080 CarbonMonoxide = 13,
1081 JetA4658 = 14,
1082 JetA3638 = 15,
1083}
1084impl RefpropSubstance {
1085 pub fn as_str_name(&self) -> &'static str {
1090 match self {
1091 Self::Unspecified => "REFPROP_SUBSTANCE_UNSPECIFIED",
1092 Self::Nitrogen => "REFPROP_SUBSTANCE_NITROGEN",
1093 Self::Oxygen => "REFPROP_SUBSTANCE_OXYGEN",
1094 Self::Helium => "REFPROP_SUBSTANCE_HELIUM",
1095 Self::Hydrogen => "REFPROP_SUBSTANCE_HYDROGEN",
1096 Self::Methane => "REFPROP_SUBSTANCE_METHANE",
1097 Self::Propane => "REFPROP_SUBSTANCE_PROPANE",
1098 Self::Butane => "REFPROP_SUBSTANCE_BUTANE",
1099 Self::Water => "REFPROP_SUBSTANCE_WATER",
1100 Self::Xenon => "REFPROP_SUBSTANCE_XENON",
1101 Self::Air => "REFPROP_SUBSTANCE_AIR",
1102 Self::CarbonDioxide => "REFPROP_SUBSTANCE_CARBON_DIOXIDE",
1103 Self::Argon => "REFPROP_SUBSTANCE_ARGON",
1104 Self::CarbonMonoxide => "REFPROP_SUBSTANCE_CARBON_MONOXIDE",
1105 Self::JetA4658 => "REFPROP_SUBSTANCE_JET_A_4658",
1106 Self::JetA3638 => "REFPROP_SUBSTANCE_JET_A_3638",
1107 }
1108 }
1109 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1111 match value {
1112 "REFPROP_SUBSTANCE_UNSPECIFIED" => Some(Self::Unspecified),
1113 "REFPROP_SUBSTANCE_NITROGEN" => Some(Self::Nitrogen),
1114 "REFPROP_SUBSTANCE_OXYGEN" => Some(Self::Oxygen),
1115 "REFPROP_SUBSTANCE_HELIUM" => Some(Self::Helium),
1116 "REFPROP_SUBSTANCE_HYDROGEN" => Some(Self::Hydrogen),
1117 "REFPROP_SUBSTANCE_METHANE" => Some(Self::Methane),
1118 "REFPROP_SUBSTANCE_PROPANE" => Some(Self::Propane),
1119 "REFPROP_SUBSTANCE_BUTANE" => Some(Self::Butane),
1120 "REFPROP_SUBSTANCE_WATER" => Some(Self::Water),
1121 "REFPROP_SUBSTANCE_XENON" => Some(Self::Xenon),
1122 "REFPROP_SUBSTANCE_AIR" => Some(Self::Air),
1123 "REFPROP_SUBSTANCE_CARBON_DIOXIDE" => Some(Self::CarbonDioxide),
1124 "REFPROP_SUBSTANCE_ARGON" => Some(Self::Argon),
1125 "REFPROP_SUBSTANCE_CARBON_MONOXIDE" => Some(Self::CarbonMonoxide),
1126 "REFPROP_SUBSTANCE_JET_A_4658" => Some(Self::JetA4658),
1127 "REFPROP_SUBSTANCE_JET_A_3638" => Some(Self::JetA3638),
1128 _ => None,
1129 }
1130 }
1131}
1132#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1133#[repr(i32)]
1134pub enum RefpropProperty {
1135 Unspecified = 0,
1136 Temperature = 1,
1137 Pressure = 2,
1138 MassDensity = 3,
1139 MassSpecificEnthalpy = 4,
1140 MassSpecificInternalEnergy = 5,
1141 MassSpecificEntropy = 6,
1142 Viscosity = 7,
1143}
1144impl RefpropProperty {
1145 pub fn as_str_name(&self) -> &'static str {
1150 match self {
1151 Self::Unspecified => "REFPROP_PROPERTY_UNSPECIFIED",
1152 Self::Temperature => "REFPROP_PROPERTY_TEMPERATURE",
1153 Self::Pressure => "REFPROP_PROPERTY_PRESSURE",
1154 Self::MassDensity => "REFPROP_PROPERTY_MASS_DENSITY",
1155 Self::MassSpecificEnthalpy => "REFPROP_PROPERTY_MASS_SPECIFIC_ENTHALPY",
1156 Self::MassSpecificInternalEnergy => {
1157 "REFPROP_PROPERTY_MASS_SPECIFIC_INTERNAL_ENERGY"
1158 }
1159 Self::MassSpecificEntropy => "REFPROP_PROPERTY_MASS_SPECIFIC_ENTROPY",
1160 Self::Viscosity => "REFPROP_PROPERTY_VISCOSITY",
1161 }
1162 }
1163 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1165 match value {
1166 "REFPROP_PROPERTY_UNSPECIFIED" => Some(Self::Unspecified),
1167 "REFPROP_PROPERTY_TEMPERATURE" => Some(Self::Temperature),
1168 "REFPROP_PROPERTY_PRESSURE" => Some(Self::Pressure),
1169 "REFPROP_PROPERTY_MASS_DENSITY" => Some(Self::MassDensity),
1170 "REFPROP_PROPERTY_MASS_SPECIFIC_ENTHALPY" => Some(Self::MassSpecificEnthalpy),
1171 "REFPROP_PROPERTY_MASS_SPECIFIC_INTERNAL_ENERGY" => {
1172 Some(Self::MassSpecificInternalEnergy)
1173 }
1174 "REFPROP_PROPERTY_MASS_SPECIFIC_ENTROPY" => Some(Self::MassSpecificEntropy),
1175 "REFPROP_PROPERTY_VISCOSITY" => Some(Self::Viscosity),
1176 _ => None,
1177 }
1178 }
1179}
1180#[derive(Clone, PartialEq, ::prost::Message)]
1181pub struct ResourcePredicate {
1182 #[prost(oneof = "resource_predicate::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
1183 pub kind: ::core::option::Option<resource_predicate::Kind>,
1184}
1185pub mod resource_predicate {
1187 #[derive(Clone, PartialEq, ::prost::Oneof)]
1188 pub enum Kind {
1189 #[prost(message, tag = "1")]
1190 Properties(super::super::super::types::PropertiesFilter),
1191 #[prost(message, tag = "2")]
1192 NumericProperty(super::super::super::types::NumericPropertyPredicate),
1193 #[prost(message, tag = "3")]
1194 NumericPropertyRange(super::super::super::types::NumericPropertyRangePredicate),
1195 #[prost(message, tag = "4")]
1196 Labels(super::super::super::types::LabelsFilter),
1197 #[prost(message, tag = "5")]
1198 Workspace(super::StringConstant),
1199 #[prost(message, tag = "6")]
1200 All(super::ResourcePredicateGroup),
1201 #[prost(message, tag = "7")]
1202 Any(super::ResourcePredicateGroup),
1203 #[prost(message, tag = "8")]
1204 Negation(::prost::alloc::boxed::Box<super::ResourcePredicate>),
1205 }
1206}
1207#[derive(Clone, PartialEq, ::prost::Message)]
1208pub struct ResourcePredicateGroup {
1209 #[prost(message, repeated, tag = "1")]
1210 pub predicates: ::prost::alloc::vec::Vec<ResourcePredicate>,
1211}
1212#[derive(Clone, PartialEq, ::prost::Message)]
1213pub struct DatasetResourceSearch {
1214 #[prost(int32, optional, tag = "3")]
1215 pub max_results: ::core::option::Option<i32>,
1216 #[prost(oneof = "dataset_resource_search::Target", tags = "1, 2")]
1217 pub target: ::core::option::Option<dataset_resource_search::Target>,
1218}
1219pub mod dataset_resource_search {
1221 #[derive(Clone, PartialEq, ::prost::Oneof)]
1222 pub enum Target {
1223 #[prost(message, tag = "1")]
1224 Assets(super::ResourcePredicate),
1225 #[prost(message, tag = "2")]
1226 Runs(super::ResourcePredicate),
1227 }
1228}
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct SignalFilterConfiguration {
1231 #[prost(oneof = "signal_filter_configuration::Kind", tags = "1, 2, 3, 4")]
1232 pub kind: ::core::option::Option<signal_filter_configuration::Kind>,
1233}
1234pub mod signal_filter_configuration {
1236 #[derive(Clone, PartialEq, ::prost::Oneof)]
1237 pub enum Kind {
1238 #[prost(message, tag = "1")]
1239 LowPass(super::SingleCutoffFilter),
1240 #[prost(message, tag = "2")]
1241 HighPass(super::SingleCutoffFilter),
1242 #[prost(message, tag = "3")]
1243 BandPass(super::FrequencyBandFilter),
1244 #[prost(message, tag = "4")]
1245 BandStop(super::FrequencyBandFilter),
1246 }
1247}
1248#[derive(Clone, PartialEq, ::prost::Message)]
1249pub struct SingleCutoffFilter {
1250 #[prost(message, optional, tag = "1")]
1251 pub cutoff_frequency: ::core::option::Option<DoubleConstant>,
1252}
1253#[derive(Clone, PartialEq, ::prost::Message)]
1254pub struct FrequencyBandFilter {
1255 #[prost(message, optional, tag = "1")]
1256 pub lower_frequency: ::core::option::Option<DoubleConstant>,
1257 #[prost(message, optional, tag = "2")]
1258 pub upper_frequency: ::core::option::Option<DoubleConstant>,
1259}
1260#[derive(Clone, PartialEq, ::prost::Message)]
1261pub struct NumericExpression {
1262 #[prost(
1263 oneof = "numeric_expression::Kind",
1264 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 57, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56"
1265 )]
1266 pub kind: ::core::option::Option<numeric_expression::Kind>,
1267}
1268pub mod numeric_expression {
1270 #[derive(Clone, PartialEq, ::prost::Oneof)]
1271 pub enum Kind {
1272 #[prost(message, tag = "1")]
1273 Reference(super::TimeSeriesReference),
1274 #[prost(message, tag = "2")]
1275 Constant(super::DoubleConstant),
1276 #[prost(message, tag = "3")]
1277 Unary(::prost::alloc::boxed::Box<super::NumericUnaryExpression>),
1278 #[prost(message, tag = "4")]
1279 Binary(::prost::alloc::boxed::Box<super::NumericBinaryExpression>),
1280 #[prost(message, tag = "5")]
1281 Nary(super::NumericNaryExpression),
1282 #[prost(message, tag = "6")]
1283 Bitwise(::prost::alloc::boxed::Box<super::NumericBitwiseExpression>),
1284 #[prost(message, tag = "7")]
1285 Conditional(::prost::alloc::boxed::Box<super::NumericConditionalExpression>),
1286 #[prost(message, tag = "8")]
1287 CumulativeSum(::prost::alloc::boxed::Box<super::NumericCumulativeSumExpression>),
1288 #[prost(message, tag = "9")]
1289 Derivative(::prost::alloc::boxed::Box<super::NumericDerivativeExpression>),
1290 #[prost(message, tag = "10")]
1291 Integral(::prost::alloc::boxed::Box<super::NumericIntegralExpression>),
1292 #[prost(message, tag = "11")]
1293 TimeRangeFilter(
1294 ::prost::alloc::boxed::Box<super::NumericTimeRangeFilterExpression>,
1295 ),
1296 #[prost(message, tag = "12")]
1297 TimeShift(::prost::alloc::boxed::Box<super::NumericTimeShiftExpression>),
1298 #[prost(message, tag = "13")]
1299 ValueDifference(
1300 ::prost::alloc::boxed::Box<super::NumericValueDifferenceExpression>,
1301 ),
1302 #[prost(message, tag = "14")]
1303 PhaseUnwrap(::prost::alloc::boxed::Box<super::NumericPhaseUnwrapExpression>),
1304 #[prost(message, tag = "15")]
1305 PointLimit(::prost::alloc::boxed::Box<super::NumericPointLimitExpression>),
1306 #[prost(message, tag = "16")]
1307 NthPointDownsample(
1308 ::prost::alloc::boxed::Box<super::NumericNthPointDownsampleExpression>,
1309 ),
1310 #[prost(message, tag = "17")]
1311 LargestTriangleThreeBuckets(
1312 ::prost::alloc::boxed::Box<
1313 super::NumericLargestTriangleThreeBucketsExpression,
1314 >,
1315 ),
1316 #[prost(message, tag = "18")]
1317 ConditionFilter(
1318 ::prost::alloc::boxed::Box<super::NumericConditionFilterExpression>,
1319 ),
1320 #[prost(message, tag = "19")]
1321 ThresholdFilter(
1322 ::prost::alloc::boxed::Box<super::NumericThresholdFilterExpression>,
1323 ),
1324 #[prost(message, tag = "57")]
1325 DropNan(::prost::alloc::boxed::Box<super::NumericDropNanExpression>),
1326 #[prost(message, tag = "20")]
1327 ApproximateFilter(
1328 ::prost::alloc::boxed::Box<super::NumericApproximateFilterExpression>,
1329 ),
1330 #[prost(message, tag = "21")]
1331 SignalFilter(::prost::alloc::boxed::Box<super::NumericSignalFilterExpression>),
1332 #[prost(message, tag = "22")]
1333 UnitConversion(
1334 ::prost::alloc::boxed::Box<super::NumericUnitConversionExpression>,
1335 ),
1336 #[prost(message, tag = "23")]
1337 UnitOverride(::prost::alloc::boxed::Box<super::NumericUnitOverrideExpression>),
1338 #[prost(message, tag = "24")]
1339 ZScore(::prost::alloc::boxed::Box<super::NumericZScoreExpression>),
1340 #[prost(message, tag = "25")]
1341 Union(super::NumericUnionExpression),
1342 #[prost(message, tag = "26")]
1343 TimeShiftV2(::prost::alloc::boxed::Box<super::NumericTimeShiftV2Expression>),
1344 #[prost(message, tag = "27")]
1345 ResampleV2(::prost::alloc::boxed::Box<super::NumericResampleV2Expression>),
1346 #[prost(message, tag = "28")]
1347 ToStartOfInterval(
1348 ::prost::alloc::boxed::Box<super::NumericToStartOfIntervalExpression>,
1349 ),
1350 #[prost(message, tag = "29")]
1351 ScalarTransform(
1352 ::prost::alloc::boxed::Box<super::NumericScalarTransformExpression>,
1353 ),
1354 #[prost(message, tag = "30")]
1355 Arithmetic(super::NumericArithmeticExpression),
1356 #[prost(message, tag = "31")]
1357 FormulaFilter(super::NumericFormulaFilterExpression),
1358 #[prost(message, tag = "32")]
1359 LiteralBitwise(
1360 ::prost::alloc::boxed::Box<super::NumericLiteralBitwiseExpression>,
1361 ),
1362 #[prost(message, tag = "33")]
1363 Resample(::prost::alloc::boxed::Box<super::NumericResampleExpression>),
1364 #[prost(message, tag = "34")]
1365 Refprop(super::NumericRefpropExpression),
1366 #[prost(message, tag = "35")]
1367 RollingAggregation(
1368 ::prost::alloc::boxed::Box<super::NumericRollingAggregationExpression>,
1369 ),
1370 #[prost(message, tag = "36")]
1371 DuplicateTimestampAggregation(
1372 ::prost::alloc::boxed::Box<
1373 super::NumericDuplicateTimestampAggregationExpression,
1374 >,
1375 ),
1376 #[prost(message, tag = "37")]
1377 TagFilter(::prost::alloc::boxed::Box<super::NumericTagFilterExpression>),
1378 #[prost(message, tag = "38")]
1379 TagSelection(::prost::alloc::boxed::Box<super::NumericTagSelectionExpression>),
1380 #[prost(message, tag = "39")]
1381 AbsoluteTimestamp(
1382 ::prost::alloc::boxed::Box<super::NumericAbsoluteTimestampExpression>,
1383 ),
1384 #[prost(message, tag = "40")]
1385 ReduceUnderRanges(
1386 ::prost::alloc::boxed::Box<super::NumericReduceUnderRangesExpression>,
1387 ),
1388 #[prost(message, tag = "41")]
1389 ChannelSelection(super::ChannelSelection),
1390 #[prost(message, tag = "42")]
1391 LogMatches(::prost::alloc::boxed::Box<super::NumericLogMatchesExpression>),
1392 #[prost(message, tag = "43")]
1393 CountDuplicates(super::NumericCountDuplicatesExpression),
1394 #[prost(message, tag = "44")]
1395 ModuleFunction(super::ModuleFunctionExpression),
1396 #[prost(message, tag = "45")]
1397 CategoricalMapping(
1398 ::prost::alloc::boxed::Box<super::NumericCategoricalMappingExpression>,
1399 ),
1400 #[prost(message, tag = "46")]
1401 StructField(::prost::alloc::boxed::Box<super::NumericStructFieldExpression>),
1402 #[prost(message, tag = "47")]
1403 RangeFilter(::prost::alloc::boxed::Box<super::NumericRangeFilterExpression>),
1404 #[prost(message, tag = "48")]
1405 GroupWithinRanges(
1406 ::prost::alloc::boxed::Box<super::NumericGroupWithinRangesExpression>,
1407 ),
1408 #[prost(message, tag = "49")]
1409 Aggregation(::prost::alloc::boxed::Box<super::NumericAggregationExpression>),
1410 #[prost(message, tag = "50")]
1411 RangeDuration(::prost::alloc::boxed::Box<super::NumericRangeDurationExpression>),
1412 #[prost(message, tag = "51")]
1413 ScalarUdf(super::ScalarUdfExpression),
1414 #[prost(message, tag = "52")]
1415 ArrayIndex(::prost::alloc::boxed::Box<super::NumericArrayIndexExpression>),
1416 #[prost(message, tag = "53")]
1417 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
1418 #[prost(message, tag = "54")]
1419 ResourceProperty(::prost::alloc::boxed::Box<super::ResourcePropertySelection>),
1420 #[prost(message, tag = "55")]
1421 IntervalTags(::prost::alloc::boxed::Box<super::NumericIntervalTagsExpression>),
1422 #[prost(message, tag = "56")]
1423 TimeDifference(
1424 ::prost::alloc::boxed::Box<super::NumericTimeDifferenceExpression>,
1425 ),
1426 }
1427}
1428#[derive(Clone, PartialEq, ::prost::Message)]
1429pub struct ComputeContext {
1430 #[prost(map = "string, message", tag = "1")]
1431 pub variables: ::std::collections::HashMap<
1432 ::prost::alloc::string::String,
1433 VariableValue,
1434 >,
1435 #[prost(map = "string, message", tag = "2")]
1436 pub datasets: ::std::collections::HashMap<
1437 ::prost::alloc::string::String,
1438 DatasetExpression,
1439 >,
1440 #[prost(message, optional, tag = "3")]
1441 pub default_fill: ::core::option::Option<ComputeFillStrategy>,
1442 #[prost(enumeration = "ComputeAlignmentStrategy", optional, tag = "4")]
1443 pub default_alignment: ::core::option::Option<i32>,
1444 #[prost(bool, optional, tag = "5")]
1445 pub apply_data_scope_offsets: ::core::option::Option<bool>,
1446 #[prost(bool, optional, tag = "6")]
1447 pub resolve_assets_through_datasets: ::core::option::Option<bool>,
1448}
1449#[derive(Clone, PartialEq, ::prost::Message)]
1450pub struct ComputeFillStrategy {
1451 #[prost(oneof = "compute_fill_strategy::Kind", tags = "1")]
1452 pub kind: ::core::option::Option<compute_fill_strategy::Kind>,
1453}
1454pub mod compute_fill_strategy {
1456 #[derive(Clone, PartialEq, ::prost::Oneof)]
1457 pub enum Kind {
1458 #[prost(message, tag = "1")]
1459 ForwardFill(super::DurationConstant),
1460 }
1461}
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463pub struct VariableValue {
1464 #[prost(oneof = "variable_value::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
1465 pub kind: ::core::option::Option<variable_value::Kind>,
1466}
1467pub mod variable_value {
1469 #[derive(Clone, PartialEq, ::prost::Oneof)]
1470 pub enum Kind {
1471 #[prost(double, tag = "1")]
1472 DoubleValue(f64),
1473 #[prost(int32, tag = "2")]
1474 IntegerValue(i32),
1475 #[prost(string, tag = "3")]
1476 StringValue(::prost::alloc::string::String),
1477 #[prost(message, tag = "4")]
1478 StringSet(super::StringSetLiteral),
1479 #[prost(message, tag = "5")]
1480 Duration(super::ComputeDuration),
1481 #[prost(message, tag = "6")]
1482 Timestamp(super::ComputeTimestamp),
1483 #[prost(message, tag = "7")]
1484 Expression(super::BoundExpression),
1485 #[prost(message, tag = "8")]
1486 Channel(super::ChannelSelection),
1487 #[prost(message, tag = "9")]
1488 Series(super::SeriesBinding),
1489 #[prost(message, tag = "10")]
1490 ModuleFunction(super::ModuleFunctionExpression),
1491 }
1492}
1493#[derive(Clone, PartialEq, ::prost::Message)]
1494pub struct BoundExpression {
1495 #[prost(message, optional, tag = "1")]
1496 pub expression: ::core::option::Option<ExpressionNode>,
1497 #[prost(message, optional, tag = "2")]
1498 pub context: ::core::option::Option<ComputeContext>,
1499}
1500#[derive(Clone, PartialEq, ::prost::Message)]
1501pub struct SeriesBinding {
1502 #[prost(message, optional, tag = "1")]
1503 pub series_selection: ::core::option::Option<SeriesSelection>,
1504 #[prost(message, optional, tag = "2")]
1505 pub grouping_keys: ::core::option::Option<TagKeySet>,
1506}
1507#[derive(Clone, PartialEq, ::prost::Message)]
1508pub struct ModuleFunctionExpression {
1509 #[prost(message, optional, tag = "1")]
1510 pub module: ::core::option::Option<StringConstant>,
1511 #[prost(message, optional, tag = "2")]
1512 pub function_name: ::core::option::Option<StringConstant>,
1513 #[prost(message, optional, tag = "3")]
1514 pub version: ::core::option::Option<StringConstant>,
1515 #[prost(map = "string, message", tag = "4")]
1516 pub arguments: ::std::collections::HashMap<
1517 ::prost::alloc::string::String,
1518 FunctionArgument,
1519 >,
1520}
1521#[derive(Clone, PartialEq, ::prost::Message)]
1522pub struct FunctionArgument {
1523 #[prost(oneof = "function_argument::Kind", tags = "1, 2")]
1524 pub kind: ::core::option::Option<function_argument::Kind>,
1525}
1526pub mod function_argument {
1528 #[derive(Clone, PartialEq, ::prost::Oneof)]
1529 pub enum Kind {
1530 #[prost(string, tag = "1")]
1531 VariableName(::prost::alloc::string::String),
1532 #[prost(message, tag = "2")]
1533 Value(super::VariableValue),
1534 }
1535}
1536#[derive(Clone, PartialEq, ::prost::Message)]
1537pub struct DatasetExpression {
1538 #[prost(
1539 oneof = "dataset_expression::Kind",
1540 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13"
1541 )]
1542 pub kind: ::core::option::Option<dataset_expression::Kind>,
1543}
1544pub mod dataset_expression {
1546 #[derive(Clone, PartialEq, ::prost::Oneof)]
1547 pub enum Kind {
1548 #[prost(message, tag = "1")]
1549 Asset(super::AssetReferenceExpression),
1550 #[prost(message, tag = "2")]
1551 Run(super::RunReferenceExpression),
1552 #[prost(message, tag = "3")]
1553 DataSource(super::DataSourceReferenceExpression),
1554 #[prost(message, tag = "4")]
1555 ResourceSearch(super::DatasetResourceSearch),
1556 #[prost(message, tag = "5")]
1557 Concatenate(super::DatasetConcatenation),
1558 #[prost(message, tag = "6")]
1559 Tag(::prost::alloc::boxed::Box<super::DatasetTagInjection>),
1560 #[prost(message, tag = "7")]
1561 Filter(::prost::alloc::boxed::Box<super::DatasetTagFilter>),
1562 #[prost(message, tag = "8")]
1563 TimeShift(::prost::alloc::boxed::Box<super::DatasetTimeShift>),
1564 #[prost(message, tag = "9")]
1565 AnchorAlignment(::prost::alloc::boxed::Box<super::DatasetAnchorAlignment>),
1566 #[prost(message, tag = "10")]
1567 AddSeries(::prost::alloc::boxed::Box<super::DatasetSeriesAddition>),
1568 #[prost(message, tag = "11")]
1569 RemoveSeries(::prost::alloc::boxed::Box<super::DatasetSeriesRemoval>),
1570 #[prost(message, tag = "12")]
1571 Reference(super::DatasetReference),
1572 #[prost(message, tag = "13")]
1573 Dimensions(::prost::alloc::boxed::Box<super::DatasetDimensions>),
1574 }
1575}
1576#[derive(Clone, PartialEq, ::prost::Message)]
1577pub struct DatasetConcatenation {
1578 #[prost(message, repeated, tag = "1")]
1579 pub inputs: ::prost::alloc::vec::Vec<DatasetExpression>,
1580}
1581#[derive(Clone, PartialEq, ::prost::Message)]
1582pub struct DatasetTagInjection {
1583 #[prost(message, optional, boxed, tag = "1")]
1584 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1585 #[prost(message, optional, tag = "2")]
1586 pub key: ::core::option::Option<StringConstant>,
1587 #[prost(message, optional, tag = "3")]
1588 pub value: ::core::option::Option<StringConstant>,
1589}
1590#[derive(Clone, PartialEq, ::prost::Message)]
1591pub struct DatasetTagFilter {
1592 #[prost(message, optional, boxed, tag = "1")]
1593 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1594 #[prost(message, optional, tag = "2")]
1595 pub predicate: ::core::option::Option<TagPredicateExpression>,
1596}
1597#[derive(Clone, PartialEq, ::prost::Message)]
1598pub struct DatasetTimeShift {
1599 #[prost(message, optional, boxed, tag = "1")]
1600 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1601 #[prost(message, optional, tag = "2")]
1602 pub offset: ::core::option::Option<DurationExpression>,
1603}
1604#[derive(Clone, PartialEq, ::prost::Message)]
1605pub struct DatasetSeriesAddition {
1606 #[prost(message, optional, boxed, tag = "1")]
1607 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1608 #[prost(message, repeated, tag = "2")]
1609 pub series: ::prost::alloc::vec::Vec<NamedSeriesExpression>,
1610}
1611#[derive(Clone, PartialEq, ::prost::Message)]
1612pub struct NamedSeriesExpression {
1613 #[prost(message, optional, tag = "1")]
1614 pub name: ::core::option::Option<StringConstant>,
1615 #[prost(message, optional, tag = "2")]
1616 pub definition: ::core::option::Option<SeriesExpression>,
1617}
1618#[derive(Clone, PartialEq, ::prost::Message)]
1619pub struct DatasetSeriesRemoval {
1620 #[prost(message, optional, boxed, tag = "1")]
1621 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1622 #[prost(message, repeated, tag = "2")]
1623 pub names: ::prost::alloc::vec::Vec<StringConstant>,
1624}
1625#[derive(Clone, PartialEq, ::prost::Message)]
1626pub struct DatasetDimensions {
1627 #[prost(message, optional, boxed, tag = "1")]
1628 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1629 #[prost(message, repeated, tag = "2")]
1630 pub dimensions: ::prost::alloc::vec::Vec<ResourceDimension>,
1631}
1632#[derive(Clone, PartialEq, ::prost::Message)]
1633pub struct ResourceDimension {
1634 #[prost(message, optional, tag = "1")]
1635 pub tag_key: ::core::option::Option<StringConstant>,
1636 #[prost(oneof = "resource_dimension::Value", tags = "2, 3")]
1637 pub value: ::core::option::Option<resource_dimension::Value>,
1638}
1639pub mod resource_dimension {
1641 #[derive(Clone, PartialEq, ::prost::Oneof)]
1642 pub enum Value {
1643 #[prost(message, tag = "2")]
1644 StringProperty(super::StringConstant),
1645 #[prost(message, tag = "3")]
1646 Identity(super::ResourceTypeReferenceExpression),
1647 }
1648}
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct SeriesSelection {
1651 #[prost(message, optional, tag = "1")]
1652 pub name: ::core::option::Option<StringConstant>,
1653 #[prost(message, optional, boxed, tag = "2")]
1654 pub dataset: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1655 #[prost(message, optional, tag = "3")]
1656 pub sampling: ::core::option::Option<SeriesSampling>,
1657 #[prost(enumeration = "SeriesStorageEngine", optional, tag = "4")]
1658 pub storage: ::core::option::Option<i32>,
1659}
1660#[derive(Clone, PartialEq, ::prost::Message)]
1661pub struct ResourcePropertySelection {
1662 #[prost(string, tag = "1")]
1663 pub property: ::prost::alloc::string::String,
1664 #[prost(message, optional, boxed, tag = "2")]
1665 pub dataset: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1666}
1667#[derive(Clone, PartialEq, ::prost::Message)]
1668pub struct ExpressionNode {
1669 #[prost(oneof = "expression_node::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
1670 pub kind: ::core::option::Option<expression_node::Kind>,
1671}
1672pub mod expression_node {
1674 #[derive(Clone, PartialEq, ::prost::Oneof)]
1675 pub enum Kind {
1676 #[prost(message, tag = "1")]
1677 Numeric(super::NumericExpression),
1678 #[prost(message, tag = "2")]
1679 Categorical(super::CategoricalExpression),
1680 #[prost(message, tag = "3")]
1681 Log(super::LogExpression),
1682 #[prost(message, tag = "4")]
1683 Ranges(super::RangeExpression),
1684 #[prost(message, tag = "5")]
1685 Array(super::ArrayExpression),
1686 #[prost(message, tag = "6")]
1687 Structure(super::StructExpression),
1688 #[prost(message, tag = "7")]
1689 CurveFit(super::CurveFitExpression),
1690 #[prost(message, tag = "8")]
1691 Video(super::TimeSeriesReference),
1692 #[prost(message, tag = "9")]
1693 Reference(super::TimeSeriesReference),
1694 }
1695}
1696#[derive(Clone, PartialEq, ::prost::Message)]
1697pub struct SeriesExpression {
1698 #[prost(oneof = "series_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7")]
1699 pub kind: ::core::option::Option<series_expression::Kind>,
1700}
1701pub mod series_expression {
1703 #[derive(Clone, PartialEq, ::prost::Oneof)]
1704 pub enum Kind {
1705 #[prost(message, tag = "1")]
1706 Numeric(::prost::alloc::boxed::Box<super::NumericExpression>),
1707 #[prost(message, tag = "2")]
1708 Categorical(::prost::alloc::boxed::Box<super::CategoricalExpression>),
1709 #[prost(message, tag = "3")]
1710 Log(::prost::alloc::boxed::Box<super::LogExpression>),
1711 #[prost(message, tag = "4")]
1712 Array(::prost::alloc::boxed::Box<super::ArrayExpression>),
1713 #[prost(message, tag = "5")]
1714 Structure(::prost::alloc::boxed::Box<super::StructExpression>),
1715 #[prost(message, tag = "6")]
1716 Video(super::TimeSeriesReference),
1717 #[prost(message, tag = "7")]
1718 Reference(super::TimeSeriesReference),
1719 }
1720}
1721#[derive(Clone, PartialEq, ::prost::Message)]
1722pub struct ArrayExpression {
1723 #[prost(oneof = "array_expression::Kind", tags = "1, 2")]
1724 pub kind: ::core::option::Option<array_expression::Kind>,
1725}
1726pub mod array_expression {
1728 #[derive(Clone, PartialEq, ::prost::Oneof)]
1729 pub enum Kind {
1730 #[prost(message, tag = "1")]
1731 Numeric(::prost::alloc::boxed::Box<super::NumericArrayExpression>),
1732 #[prost(message, tag = "2")]
1733 Categorical(::prost::alloc::boxed::Box<super::CategoricalArrayExpression>),
1734 }
1735}
1736#[derive(Clone, PartialEq, ::prost::Message)]
1737pub struct CurveFitExpression {
1738 #[prost(message, optional, tag = "1")]
1739 pub target: ::core::option::Option<CurveSeriesVariable>,
1740 #[prost(message, optional, tag = "2")]
1741 pub interval: ::core::option::Option<CurveFitInterval>,
1742 #[prost(message, optional, tag = "3")]
1743 pub model: ::core::option::Option<CurveModel>,
1744}
1745#[derive(Clone, PartialEq, ::prost::Message)]
1746pub struct CurveFitInterval {
1747 #[prost(message, optional, tag = "1")]
1748 pub start: ::core::option::Option<TimestampConstant>,
1749 #[prost(message, optional, tag = "2")]
1750 pub end: ::core::option::Option<TimestampConstant>,
1751}
1752#[derive(Clone, PartialEq, ::prost::Message)]
1753pub struct CurveSeriesVariable {
1754 #[prost(message, optional, tag = "1")]
1755 pub series: ::core::option::Option<NumericExpression>,
1756 #[prost(message, optional, tag = "2")]
1757 pub bounds: ::core::option::Option<CurveVariableBounds>,
1758}
1759#[derive(Clone, PartialEq, ::prost::Message)]
1760pub struct CurveVariableBounds {
1761 #[prost(message, optional, tag = "1")]
1762 pub min: ::core::option::Option<DoubleConstant>,
1763 #[prost(message, optional, tag = "2")]
1764 pub max: ::core::option::Option<DoubleConstant>,
1765}
1766#[derive(Clone, PartialEq, ::prost::Message)]
1767pub struct CurveVariable {
1768 #[prost(oneof = "curve_variable::Kind", tags = "1, 2")]
1769 pub kind: ::core::option::Option<curve_variable::Kind>,
1770}
1771pub mod curve_variable {
1773 #[derive(Clone, PartialEq, ::prost::Oneof)]
1774 pub enum Kind {
1775 #[prost(message, tag = "1")]
1776 Series(super::CurveSeriesVariable),
1777 #[prost(message, tag = "2")]
1778 Time(super::CurveTimeVariable),
1779 }
1780}
1781#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1782pub struct CurveTimeVariable {
1783 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "1")]
1784 pub unit: ::core::option::Option<i32>,
1785}
1786#[derive(Clone, PartialEq, ::prost::Message)]
1787pub struct CurveModel {
1788 #[prost(oneof = "curve_model::Kind", tags = "1, 2, 3")]
1789 pub kind: ::core::option::Option<curve_model::Kind>,
1790}
1791pub mod curve_model {
1793 #[derive(Clone, PartialEq, ::prost::Oneof)]
1794 pub enum Kind {
1795 #[prost(message, tag = "1")]
1796 Builtin(super::BuiltinCurveModel),
1797 #[prost(message, tag = "2")]
1798 Polynomial(super::PolynomialCurveModel),
1799 #[prost(message, tag = "3")]
1800 Custom(super::CustomCurveModel),
1801 }
1802}
1803#[derive(Clone, PartialEq, ::prost::Message)]
1804pub struct BuiltinCurveModel {
1805 #[prost(enumeration = "BuiltinCurveForm", tag = "1")]
1806 pub form: i32,
1807 #[prost(message, optional, tag = "2")]
1808 pub independent_variable: ::core::option::Option<CurveVariable>,
1809}
1810#[derive(Clone, PartialEq, ::prost::Message)]
1811pub struct PolynomialCurveModel {
1812 #[prost(message, optional, tag = "1")]
1813 pub independent_variable: ::core::option::Option<CurveVariable>,
1814 #[prost(message, optional, tag = "2")]
1815 pub degree: ::core::option::Option<IntegerConstant>,
1816 #[prost(message, optional, tag = "3")]
1817 pub intercept: ::core::option::Option<DoubleConstant>,
1818}
1819#[derive(Clone, PartialEq, ::prost::Message)]
1820pub struct CustomCurveModel {
1821 #[prost(message, optional, tag = "1")]
1822 pub formula: ::core::option::Option<StringConstant>,
1823 #[prost(map = "string, message", tag = "2")]
1824 pub variables: ::std::collections::HashMap<
1825 ::prost::alloc::string::String,
1826 CurveVariable,
1827 >,
1828 #[prost(map = "string, message", tag = "3")]
1829 pub parameters: ::std::collections::HashMap<
1830 ::prost::alloc::string::String,
1831 DoubleConstant,
1832 >,
1833}
1834#[derive(Clone, PartialEq, ::prost::Message)]
1835pub struct NumericAbsoluteTimestampExpression {
1836 #[prost(message, optional, boxed, tag = "1")]
1837 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
1838 #[prost(enumeration = "super::super::types::time::TimeUnit", tag = "2")]
1839 pub unit: i32,
1840}
1841#[derive(Clone, PartialEq, ::prost::Message)]
1842pub struct NumericTimeDifferenceExpression {
1843 #[prost(message, optional, boxed, tag = "1")]
1844 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
1845 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "2")]
1846 pub unit: ::core::option::Option<i32>,
1847}
1848#[derive(Clone, PartialEq, ::prost::Message)]
1849pub struct NumericReduceUnderRangesExpression {
1850 #[prost(message, optional, boxed, tag = "1")]
1851 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
1852 #[prost(message, optional, boxed, tag = "2")]
1853 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
1854 #[prost(message, optional, tag = "3")]
1855 pub reduction: ::core::option::Option<NumericReduction>,
1856}
1857#[derive(Clone, PartialEq, ::prost::Message)]
1858pub struct NumericLogMatchesExpression {
1859 #[prost(message, optional, boxed, tag = "1")]
1860 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
1861 #[prost(message, optional, tag = "2")]
1862 pub predicate: ::core::option::Option<LogPredicate>,
1863}
1864#[derive(Clone, PartialEq, ::prost::Message)]
1865pub struct NumericCountDuplicatesExpression {
1866 #[prost(message, repeated, tag = "1")]
1867 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
1868}
1869#[derive(Clone, PartialEq, ::prost::Message)]
1870pub struct NumericCategoricalMappingExpression {
1871 #[prost(message, optional, boxed, tag = "1")]
1872 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
1873 #[prost(map = "string, message", tag = "2")]
1874 pub mapping: ::std::collections::HashMap<
1875 ::prost::alloc::string::String,
1876 DoubleConstant,
1877 >,
1878 #[prost(message, optional, tag = "3")]
1879 pub default_value: ::core::option::Option<DoubleConstant>,
1880}
1881#[derive(Clone, PartialEq, ::prost::Message)]
1882pub struct NumericStructFieldExpression {
1883 #[prost(message, optional, boxed, tag = "1")]
1884 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
1885 #[prost(message, repeated, tag = "2")]
1886 pub path: ::prost::alloc::vec::Vec<StringConstant>,
1887 #[prost(
1888 enumeration = "super::super::types::series::SeriesDataType",
1889 optional,
1890 tag = "3"
1891 )]
1892 pub numeric_type: ::core::option::Option<i32>,
1893}
1894#[derive(Clone, PartialEq, ::prost::Message)]
1895pub struct NumericRangeFilterExpression {
1896 #[prost(message, optional, boxed, tag = "1")]
1897 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
1898 #[prost(message, optional, boxed, tag = "2")]
1899 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
1900}
1901#[derive(Clone, PartialEq, ::prost::Message)]
1902pub struct NumericGroupWithinRangesExpression {
1903 #[prost(message, optional, boxed, tag = "1")]
1904 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
1905 #[prost(message, optional, boxed, tag = "2")]
1906 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
1907 #[prost(message, optional, tag = "3")]
1908 pub reduction: ::core::option::Option<NumericReduction>,
1909}
1910#[derive(Clone, PartialEq, ::prost::Message)]
1911pub struct NumericAggregationExpression {
1912 #[prost(message, optional, boxed, tag = "1")]
1913 pub input: ::core::option::Option<::prost::alloc::boxed::Box<AggregationInput>>,
1914 #[prost(message, optional, tag = "2")]
1915 pub reduction: ::core::option::Option<NumericReduction>,
1916}
1917#[derive(Clone, PartialEq, ::prost::Message)]
1918pub struct AggregationInput {
1919 #[prost(oneof = "aggregation_input::Kind", tags = "1, 2, 3")]
1920 pub kind: ::core::option::Option<aggregation_input::Kind>,
1921}
1922pub mod aggregation_input {
1924 #[derive(Clone, PartialEq, ::prost::Oneof)]
1925 pub enum Kind {
1926 #[prost(message, tag = "1")]
1927 TimeWindow(::prost::alloc::boxed::Box<super::TimeWindowAggregation>),
1928 #[prost(message, tag = "2")]
1929 PointWindow(::prost::alloc::boxed::Box<super::PointWindowAggregation>),
1930 #[prost(message, tag = "3")]
1931 Grouping(::prost::alloc::boxed::Box<super::GroupedSeriesAggregation>),
1932 }
1933}
1934#[derive(Clone, PartialEq, ::prost::Message)]
1935pub struct TimeWindowAggregation {
1936 #[prost(message, optional, boxed, tag = "1")]
1937 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
1938 #[prost(message, optional, tag = "2")]
1939 pub window: ::core::option::Option<DurationExpression>,
1940}
1941#[derive(Clone, PartialEq, ::prost::Message)]
1942pub struct PointWindowAggregation {
1943 #[prost(message, optional, boxed, tag = "1")]
1944 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
1945 #[prost(message, optional, tag = "2")]
1946 pub points: ::core::option::Option<IntegerConstant>,
1947}
1948#[derive(Clone, PartialEq, ::prost::Message)]
1949pub struct GroupedSeriesAggregation {
1950 #[prost(message, optional, boxed, tag = "1")]
1951 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
1952 #[prost(message, optional, tag = "2")]
1953 pub keys: ::core::option::Option<AggregationGroupingKeys>,
1954 #[prost(message, optional, tag = "3")]
1955 pub timestamp: ::core::option::Option<AggregationTimestamp>,
1956 #[prost(bool, tag = "4")]
1957 pub use_context_alignment: bool,
1958}
1959#[derive(Clone, PartialEq, ::prost::Message)]
1960pub struct AggregationGroupingKeys {
1961 #[prost(oneof = "aggregation_grouping_keys::Kind", tags = "1, 2")]
1962 pub kind: ::core::option::Option<aggregation_grouping_keys::Kind>,
1963}
1964pub mod aggregation_grouping_keys {
1966 #[derive(Clone, PartialEq, ::prost::Oneof)]
1967 pub enum Kind {
1968 #[prost(message, tag = "1")]
1969 Current(super::CurrentGroupingKeys),
1970 #[prost(message, tag = "2")]
1971 Subset(super::TagKeySet),
1972 }
1973}
1974#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1975pub struct CurrentGroupingKeys {}
1976#[derive(Clone, PartialEq, ::prost::Message)]
1977pub struct AggregationTimestamp {
1978 #[prost(oneof = "aggregation_timestamp::Kind", tags = "1, 2")]
1979 pub kind: ::core::option::Option<aggregation_timestamp::Kind>,
1980}
1981pub mod aggregation_timestamp {
1983 #[derive(Clone, PartialEq, ::prost::Oneof)]
1984 pub enum Kind {
1985 #[prost(message, tag = "1")]
1986 Current(super::CurrentTimestamps),
1987 #[prost(message, tag = "2")]
1988 Every(super::DurationExpression),
1989 }
1990}
1991#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1992pub struct CurrentTimestamps {}
1993#[derive(Clone, PartialEq, ::prost::Message)]
1994pub struct NumericRangeDurationExpression {
1995 #[prost(message, optional, boxed, tag = "1")]
1996 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
1997 #[prost(enumeration = "UnboundedRangePolicy", tag = "2")]
1998 pub unbounded: i32,
1999 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "3")]
2000 pub unit: ::core::option::Option<i32>,
2001}
2002#[derive(Clone, PartialEq, ::prost::Message)]
2003pub struct ScalarUdfExpression {
2004 #[prost(message, repeated, tag = "1")]
2005 pub inputs: ::prost::alloc::vec::Vec<SeriesExpression>,
2006 #[prost(message, optional, tag = "2")]
2007 pub source: ::core::option::Option<super::super::modules::v1::UdfSource>,
2008}
2009#[derive(Clone, PartialEq, ::prost::Message)]
2010pub struct NumericArrayIndexExpression {
2011 #[prost(message, optional, boxed, tag = "1")]
2012 pub input: ::core::option::Option<
2013 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2014 >,
2015 #[prost(message, optional, tag = "2")]
2016 pub index: ::core::option::Option<IntegerConstant>,
2017}
2018#[derive(Clone, PartialEq, ::prost::Message)]
2019pub struct NumericIntervalTagsExpression {
2020 #[prost(message, optional, boxed, tag = "1")]
2021 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2022 #[prost(message, optional, boxed, tag = "2")]
2023 pub intervals: ::core::option::Option<
2024 ::prost::alloc::boxed::Box<IntervalSourceExpression>,
2025 >,
2026 #[prost(message, optional, tag = "3")]
2027 pub time_shift: ::core::option::Option<IntervalTimeShift>,
2028}
2029#[derive(Clone, PartialEq, ::prost::Message)]
2030pub struct IntervalSourceExpression {
2031 #[prost(oneof = "interval_source_expression::Kind", tags = "1, 2")]
2032 pub kind: ::core::option::Option<interval_source_expression::Kind>,
2033}
2034pub mod interval_source_expression {
2036 #[derive(Clone, PartialEq, ::prost::Oneof)]
2037 pub enum Kind {
2038 #[prost(message, tag = "1")]
2039 Events(super::EventIntervals),
2040 #[prost(message, tag = "2")]
2041 Ranges(::prost::alloc::boxed::Box<super::RangeIntervals>),
2042 }
2043}
2044#[derive(Clone, PartialEq, ::prost::Message)]
2045pub struct EventIntervals {
2046 #[prost(message, optional, tag = "1")]
2047 pub query: ::core::option::Option<EventPredicateExpression>,
2048 #[prost(message, repeated, tag = "2")]
2049 pub tags: ::prost::alloc::vec::Vec<EventIntervalTag>,
2050}
2051#[derive(Clone, PartialEq, ::prost::Message)]
2052pub struct RangeIntervals {
2053 #[prost(message, optional, boxed, tag = "1")]
2054 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2055 #[prost(message, repeated, tag = "2")]
2056 pub tags: ::prost::alloc::vec::Vec<RangeIntervalTag>,
2057}
2058#[derive(Clone, PartialEq, ::prost::Message)]
2059pub struct EventIntervalTag {
2060 #[prost(oneof = "event_interval_tag::Kind", tags = "1, 2, 3, 4, 5")]
2061 pub kind: ::core::option::Option<event_interval_tag::Kind>,
2062}
2063pub mod event_interval_tag {
2065 #[derive(Clone, PartialEq, ::prost::Oneof)]
2066 pub enum Kind {
2067 #[prost(message, tag = "1")]
2068 IntervalIndex(super::IntervalIndexTag),
2069 #[prost(message, tag = "2")]
2070 IntervalStart(super::IntervalStartTag),
2071 #[prost(message, tag = "3")]
2072 EventLevel(super::EventLevelTag),
2073 #[prost(message, tag = "4")]
2074 EventProperty(super::StringConstant),
2075 #[prost(message, tag = "5")]
2076 EventLabel(super::StringConstant),
2077 }
2078}
2079#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2080pub struct RangeIntervalTag {
2081 #[prost(oneof = "range_interval_tag::Kind", tags = "1, 2")]
2082 pub kind: ::core::option::Option<range_interval_tag::Kind>,
2083}
2084pub mod range_interval_tag {
2086 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2087 pub enum Kind {
2088 #[prost(message, tag = "1")]
2089 IntervalIndex(super::IntervalIndexTag),
2090 #[prost(message, tag = "2")]
2091 IntervalStart(super::IntervalStartTag),
2092 }
2093}
2094#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2095pub struct IntervalIndexTag {}
2096#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2097pub struct IntervalStartTag {}
2098#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2099pub struct EventLevelTag {}
2100#[derive(Clone, PartialEq, ::prost::Message)]
2101pub struct IntervalTimeShift {
2102 #[prost(oneof = "interval_time_shift::Kind", tags = "1, 2, 3")]
2103 pub kind: ::core::option::Option<interval_time_shift::Kind>,
2104}
2105pub mod interval_time_shift {
2107 #[derive(Clone, PartialEq, ::prost::Oneof)]
2108 pub enum Kind {
2109 #[prost(message, tag = "1")]
2110 IntervalStart(super::IntervalStartAnchor),
2111 #[prost(message, tag = "2")]
2112 IntervalEnd(super::IntervalEndAnchor),
2113 #[prost(message, tag = "3")]
2114 Event(super::EventOrdinalSelection),
2115 }
2116}
2117#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2118pub struct IntervalStartAnchor {}
2119#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2120pub struct IntervalEndAnchor {}
2121#[derive(Clone, PartialEq, ::prost::Message)]
2122pub struct EventOrdinalSelection {
2123 #[prost(message, optional, tag = "1")]
2124 pub query: ::core::option::Option<EventPredicateExpression>,
2125 #[prost(message, optional, tag = "2")]
2126 pub index: ::core::option::Option<IntegerConstant>,
2127 #[prost(enumeration = "ChronologicalOrder", optional, tag = "3")]
2128 pub order: ::core::option::Option<i32>,
2129}
2130#[derive(Clone, PartialEq, ::prost::Message)]
2131pub struct RangeOrdinalSelection {
2132 #[prost(message, optional, boxed, tag = "1")]
2133 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2134 #[prost(message, optional, tag = "2")]
2135 pub index: ::core::option::Option<IntegerConstant>,
2136 #[prost(enumeration = "ChronologicalOrder", optional, tag = "3")]
2137 pub order: ::core::option::Option<i32>,
2138}
2139#[derive(Clone, PartialEq, ::prost::Message)]
2140pub struct RunAnchorExpression {
2141 #[prost(oneof = "run_anchor_expression::Kind", tags = "1, 2, 3, 4")]
2142 pub kind: ::core::option::Option<run_anchor_expression::Kind>,
2143}
2144pub mod run_anchor_expression {
2146 #[derive(Clone, PartialEq, ::prost::Oneof)]
2147 pub enum Kind {
2148 #[prost(message, tag = "1")]
2149 IntervalStart(super::IntervalStartAnchor),
2150 #[prost(message, tag = "2")]
2151 IntervalEnd(super::IntervalEndAnchor),
2152 #[prost(message, tag = "3")]
2153 Event(super::EventOrdinalSelection),
2154 #[prost(message, tag = "4")]
2155 Ranges(::prost::alloc::boxed::Box<super::RangeOrdinalSelection>),
2156 }
2157}
2158#[derive(Clone, PartialEq, ::prost::Message)]
2159pub struct DatasetAnchorAlignment {
2160 #[prost(message, optional, boxed, tag = "1")]
2161 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2162 #[prost(message, optional, boxed, tag = "2")]
2163 pub anchor: ::core::option::Option<::prost::alloc::boxed::Box<RunAnchorExpression>>,
2164 #[prost(bool, tag = "3")]
2165 pub align_to_earliest: bool,
2166}
2167#[derive(Clone, PartialEq, ::prost::Message)]
2168pub struct CategoricalExpression {
2169 #[prost(
2170 oneof = "categorical_expression::Kind",
2171 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23"
2172 )]
2173 pub kind: ::core::option::Option<categorical_expression::Kind>,
2174}
2175pub mod categorical_expression {
2177 #[derive(Clone, PartialEq, ::prost::Oneof)]
2178 pub enum Kind {
2179 #[prost(message, tag = "1")]
2180 Reference(super::TimeSeriesReference),
2181 #[prost(message, tag = "2")]
2182 ChannelSelection(super::ChannelSelection),
2183 #[prost(message, tag = "3")]
2184 ModuleFunction(super::ModuleFunctionExpression),
2185 #[prost(message, tag = "4")]
2186 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
2187 #[prost(message, tag = "5")]
2188 ResourceProperty(::prost::alloc::boxed::Box<super::ResourcePropertySelection>),
2189 #[prost(message, tag = "6")]
2190 DuplicateTimestampAggregation(
2191 ::prost::alloc::boxed::Box<
2192 super::CategoricalDuplicateTimestampAggregationExpression,
2193 >,
2194 ),
2195 #[prost(message, tag = "7")]
2196 Resample(::prost::alloc::boxed::Box<super::CategoricalResampleExpression>),
2197 #[prost(message, tag = "8")]
2198 ResampleV2(::prost::alloc::boxed::Box<super::CategoricalResampleV2Expression>),
2199 #[prost(message, tag = "9")]
2200 NthPointDownsample(
2201 ::prost::alloc::boxed::Box<super::CategoricalNthPointDownsampleExpression>,
2202 ),
2203 #[prost(message, tag = "10")]
2204 TimeRangeFilter(
2205 ::prost::alloc::boxed::Box<super::CategoricalTimeRangeFilterExpression>,
2206 ),
2207 #[prost(message, tag = "11")]
2208 TimeShift(::prost::alloc::boxed::Box<super::CategoricalTimeShiftExpression>),
2209 #[prost(message, tag = "12")]
2210 TimeShiftV2(::prost::alloc::boxed::Box<super::CategoricalTimeShiftV2Expression>),
2211 #[prost(message, tag = "13")]
2212 Union(super::CategoricalUnionExpression),
2213 #[prost(message, tag = "14")]
2214 RangeFilter(::prost::alloc::boxed::Box<super::CategoricalRangeFilterExpression>),
2215 #[prost(message, tag = "15")]
2216 NumericMapping(
2217 ::prost::alloc::boxed::Box<super::CategoricalNumericMappingExpression>,
2218 ),
2219 #[prost(message, tag = "16")]
2220 ArrayIndex(::prost::alloc::boxed::Box<super::CategoricalArrayIndexExpression>),
2221 #[prost(message, tag = "17")]
2222 StructField(::prost::alloc::boxed::Box<super::CategoricalStructFieldExpression>),
2223 #[prost(message, tag = "18")]
2224 Events(super::CategoricalEventsExpression),
2225 #[prost(message, tag = "19")]
2226 Aggregation(::prost::alloc::boxed::Box<super::CategoricalAggregationExpression>),
2227 #[prost(message, tag = "20")]
2228 TagFilter(::prost::alloc::boxed::Box<super::CategoricalTagFilterExpression>),
2229 #[prost(message, tag = "21")]
2230 TagSelection(
2231 ::prost::alloc::boxed::Box<super::CategoricalTagSelectionExpression>,
2232 ),
2233 #[prost(message, tag = "22")]
2234 ScalarUdf(super::ScalarUdfExpression),
2235 #[prost(message, tag = "23")]
2236 ToStartOfInterval(
2237 ::prost::alloc::boxed::Box<super::CategoricalToStartOfIntervalExpression>,
2238 ),
2239 }
2240}
2241#[derive(Clone, PartialEq, ::prost::Message)]
2242pub struct CategoricalDuplicateTimestampAggregationExpression {
2243 #[prost(message, optional, boxed, tag = "1")]
2244 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2245 #[prost(message, optional, tag = "2")]
2246 pub reduction: ::core::option::Option<CategoricalReduction>,
2247}
2248#[derive(Clone, PartialEq, ::prost::Message)]
2249pub struct CategoricalResampleExpression {
2250 #[prost(message, optional, boxed, tag = "1")]
2251 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2252 #[prost(message, optional, tag = "2")]
2253 pub interval: ::core::option::Option<DurationConstant>,
2254 #[prost(message, optional, tag = "3")]
2255 pub fill: ::core::option::Option<CategoricalResampleFill>,
2256}
2257#[derive(Clone, PartialEq, ::prost::Message)]
2258pub struct CategoricalResampleV2Expression {
2259 #[prost(message, optional, boxed, tag = "1")]
2260 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2261 #[prost(message, optional, tag = "2")]
2262 pub interval: ::core::option::Option<DurationExpression>,
2263}
2264#[derive(Clone, PartialEq, ::prost::Message)]
2265pub struct CategoricalNthPointDownsampleExpression {
2266 #[prost(message, optional, boxed, tag = "1")]
2267 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2268 #[prost(message, optional, tag = "2")]
2269 pub every_nth: ::core::option::Option<IntegerConstant>,
2270}
2271#[derive(Clone, PartialEq, ::prost::Message)]
2272pub struct CategoricalTimeRangeFilterExpression {
2273 #[prost(message, optional, boxed, tag = "1")]
2274 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2275 #[prost(message, optional, tag = "2")]
2276 pub start: ::core::option::Option<TimestampConstant>,
2277 #[prost(message, optional, tag = "3")]
2278 pub end: ::core::option::Option<TimestampConstant>,
2279}
2280#[derive(Clone, PartialEq, ::prost::Message)]
2281pub struct CategoricalTimeShiftExpression {
2282 #[prost(message, optional, boxed, tag = "1")]
2283 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2284 #[prost(message, optional, tag = "2")]
2285 pub duration: ::core::option::Option<DurationConstant>,
2286}
2287#[derive(Clone, PartialEq, ::prost::Message)]
2288pub struct CategoricalTimeShiftV2Expression {
2289 #[prost(message, optional, boxed, tag = "1")]
2290 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2291 #[prost(message, optional, tag = "2")]
2292 pub duration: ::core::option::Option<DurationExpression>,
2293}
2294#[derive(Clone, PartialEq, ::prost::Message)]
2295pub struct CategoricalUnionExpression {
2296 #[prost(message, repeated, tag = "1")]
2297 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
2298 #[prost(enumeration = "CategoricalMergeOperation", tag = "2")]
2299 pub operation: i32,
2300}
2301#[derive(Clone, PartialEq, ::prost::Message)]
2302pub struct CategoricalRangeFilterExpression {
2303 #[prost(message, optional, boxed, tag = "1")]
2304 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2305 #[prost(message, optional, boxed, tag = "2")]
2306 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2307}
2308#[derive(Clone, PartialEq, ::prost::Message)]
2309pub struct CategoricalNumericMappingExpression {
2310 #[prost(message, optional, boxed, tag = "1")]
2311 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2312 #[prost(message, repeated, tag = "2")]
2313 pub mapping: ::prost::alloc::vec::Vec<NumericCategoricalInterval>,
2314 #[prost(message, optional, tag = "3")]
2315 pub default_value: ::core::option::Option<StringConstant>,
2316}
2317#[derive(Clone, PartialEq, ::prost::Message)]
2318pub struct NumericCategoricalInterval {
2319 #[prost(message, optional, tag = "1")]
2320 pub start: ::core::option::Option<DoubleConstant>,
2321 #[prost(message, optional, tag = "2")]
2322 pub end: ::core::option::Option<DoubleConstant>,
2323 #[prost(message, optional, tag = "3")]
2324 pub value: ::core::option::Option<StringConstant>,
2325}
2326#[derive(Clone, PartialEq, ::prost::Message)]
2327pub struct CategoricalArrayIndexExpression {
2328 #[prost(message, optional, boxed, tag = "1")]
2329 pub input: ::core::option::Option<
2330 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2331 >,
2332 #[prost(message, optional, tag = "2")]
2333 pub index: ::core::option::Option<IntegerConstant>,
2334}
2335#[derive(Clone, PartialEq, ::prost::Message)]
2336pub struct CategoricalStructFieldExpression {
2337 #[prost(message, optional, boxed, tag = "1")]
2338 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
2339 #[prost(message, repeated, tag = "2")]
2340 pub path: ::prost::alloc::vec::Vec<StringConstant>,
2341}
2342#[derive(Clone, PartialEq, ::prost::Message)]
2343pub struct CategoricalEventsExpression {
2344 #[prost(message, optional, tag = "1")]
2345 pub query: ::core::option::Option<EventPredicateExpression>,
2346 #[prost(oneof = "categorical_events_expression::Value", tags = "2, 3")]
2347 pub value: ::core::option::Option<categorical_events_expression::Value>,
2348}
2349pub mod categorical_events_expression {
2351 #[derive(Clone, PartialEq, ::prost::Oneof)]
2352 pub enum Value {
2353 #[prost(message, tag = "2")]
2354 Property(super::StringConstant),
2355 #[prost(message, tag = "3")]
2356 Level(super::EventLevelValue),
2357 }
2358}
2359#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2360pub struct EventLevelValue {}
2361#[derive(Clone, PartialEq, ::prost::Message)]
2362pub struct CategoricalAggregationExpression {
2363 #[prost(message, optional, boxed, tag = "1")]
2364 pub input: ::core::option::Option<::prost::alloc::boxed::Box<AggregationInput>>,
2365 #[prost(message, optional, tag = "2")]
2366 pub reduction: ::core::option::Option<CategoricalReduction>,
2367}
2368#[derive(Clone, PartialEq, ::prost::Message)]
2369pub struct CategoricalTagFilterExpression {
2370 #[prost(message, optional, boxed, tag = "1")]
2371 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2372 #[prost(message, optional, tag = "2")]
2373 pub predicate: ::core::option::Option<TagPredicateExpression>,
2374}
2375#[derive(Clone, PartialEq, ::prost::Message)]
2376pub struct CategoricalTagSelectionExpression {
2377 #[prost(message, optional, boxed, tag = "1")]
2378 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2379 #[prost(message, optional, tag = "2")]
2380 pub keys: ::core::option::Option<TagKeySet>,
2381}
2382#[derive(Clone, PartialEq, ::prost::Message)]
2383pub struct CategoricalToStartOfIntervalExpression {
2384 #[prost(message, optional, boxed, tag = "1")]
2385 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2386 #[prost(message, optional, tag = "2")]
2387 pub interval: ::core::option::Option<DurationExpression>,
2388}
2389#[derive(Clone, PartialEq, ::prost::Message)]
2390pub struct BooleanExpression {
2391 #[prost(oneof = "boolean_expression::Kind", tags = "1, 2")]
2392 pub kind: ::core::option::Option<boolean_expression::Kind>,
2393}
2394pub mod boolean_expression {
2396 #[derive(Clone, PartialEq, ::prost::Oneof)]
2397 pub enum Kind {
2398 #[prost(message, tag = "1")]
2399 Comparison(::prost::alloc::boxed::Box<super::ComparisonExpression>),
2400 #[prost(message, tag = "2")]
2401 Logical(::prost::alloc::boxed::Box<super::LogicalExpression>),
2402 }
2403}
2404#[derive(Clone, PartialEq, ::prost::Message)]
2405pub struct NumericUnaryExpression {
2406 #[prost(enumeration = "UnaryNumericOperation", tag = "1")]
2407 pub operation: i32,
2408 #[prost(message, optional, boxed, tag = "2")]
2409 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2410}
2411#[derive(Clone, PartialEq, ::prost::Message)]
2412pub struct NumericBinaryExpression {
2413 #[prost(enumeration = "BinaryNumericOperation", tag = "1")]
2414 pub operation: i32,
2415 #[prost(message, optional, boxed, tag = "2")]
2416 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2417 #[prost(message, optional, boxed, tag = "3")]
2418 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2419 #[deprecated]
2420 #[prost(message, optional, tag = "4")]
2421 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2422}
2423#[derive(Clone, PartialEq, ::prost::Message)]
2424pub struct NumericNaryExpression {
2425 #[prost(enumeration = "NaryNumericOperation", tag = "1")]
2426 pub operation: i32,
2427 #[prost(message, repeated, tag = "2")]
2428 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
2429 #[deprecated]
2430 #[prost(message, optional, tag = "3")]
2431 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2432}
2433#[derive(Clone, PartialEq, ::prost::Message)]
2434pub struct NumericBitwiseExpression {
2435 #[prost(enumeration = "BitwiseOperation", tag = "1")]
2436 pub operation: i32,
2437 #[prost(message, optional, boxed, tag = "2")]
2438 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2439 #[prost(message, optional, tag = "3")]
2440 pub operand: ::core::option::Option<IntegerConstant>,
2441}
2442#[derive(Clone, PartialEq, ::prost::Message)]
2443pub struct NumericConditionalExpression {
2444 #[prost(message, optional, boxed, tag = "1")]
2445 pub condition: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2446 #[prost(message, optional, boxed, tag = "2")]
2447 pub true_value: ::core::option::Option<
2448 ::prost::alloc::boxed::Box<NumericExpression>,
2449 >,
2450 #[prost(message, optional, boxed, tag = "3")]
2451 pub false_value: ::core::option::Option<
2452 ::prost::alloc::boxed::Box<NumericExpression>,
2453 >,
2454}
2455#[derive(Clone, PartialEq, ::prost::Message)]
2456pub struct ComparisonExpression {
2457 #[prost(enumeration = "ComparisonOperation", tag = "1")]
2458 pub operation: i32,
2459 #[prost(message, optional, boxed, tag = "2")]
2460 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2461 #[prost(message, optional, boxed, tag = "3")]
2462 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2463}
2464#[derive(Clone, PartialEq, ::prost::Message)]
2465pub struct LogicalExpression {
2466 #[prost(enumeration = "LogicalOperation", tag = "1")]
2467 pub operation: i32,
2468 #[prost(message, optional, boxed, tag = "2")]
2469 pub left: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2470 #[prost(message, optional, boxed, tag = "3")]
2471 pub right: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2472}
2473#[derive(Clone, PartialEq, ::prost::Message)]
2474pub struct InterpolationConfiguration {
2475 #[prost(oneof = "interpolation_configuration::Kind", tags = "1")]
2476 pub kind: ::core::option::Option<interpolation_configuration::Kind>,
2477}
2478pub mod interpolation_configuration {
2480 #[derive(Clone, PartialEq, ::prost::Oneof)]
2481 pub enum Kind {
2482 #[prost(message, tag = "1")]
2483 ForwardFill(super::ForwardFillInterpolation),
2484 }
2485}
2486#[derive(Clone, PartialEq, ::prost::Message)]
2487pub struct ForwardFillInterpolation {
2488 #[prost(message, optional, tag = "1")]
2489 pub max_fill_duration: ::core::option::Option<DurationConstant>,
2490}
2491#[derive(Clone, PartialEq, ::prost::Message)]
2492pub struct NumericCumulativeSumExpression {
2493 #[prost(message, optional, boxed, tag = "1")]
2494 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2495 #[prost(message, optional, tag = "2")]
2496 pub start: ::core::option::Option<TimestampConstant>,
2497}
2498#[derive(Clone, PartialEq, ::prost::Message)]
2499pub struct NumericDerivativeExpression {
2500 #[prost(message, optional, boxed, tag = "1")]
2501 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2502 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "2")]
2503 pub time_unit: ::core::option::Option<i32>,
2504 #[prost(enumeration = "NegativeValuePolicy", optional, tag = "3")]
2505 pub negative_value_policy: ::core::option::Option<i32>,
2506}
2507#[derive(Clone, PartialEq, ::prost::Message)]
2508pub struct NumericIntegralExpression {
2509 #[prost(message, optional, boxed, tag = "1")]
2510 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2511 #[prost(message, optional, tag = "2")]
2512 pub start: ::core::option::Option<TimestampConstant>,
2513 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "3")]
2514 pub time_unit: ::core::option::Option<i32>,
2515}
2516#[derive(Clone, PartialEq, ::prost::Message)]
2517pub struct NumericTimeRangeFilterExpression {
2518 #[prost(message, optional, boxed, tag = "1")]
2519 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2520 #[prost(message, optional, tag = "2")]
2521 pub start: ::core::option::Option<TimestampConstant>,
2522 #[prost(message, optional, tag = "3")]
2523 pub end: ::core::option::Option<TimestampConstant>,
2524}
2525#[derive(Clone, PartialEq, ::prost::Message)]
2526pub struct NumericTimeShiftExpression {
2527 #[prost(message, optional, boxed, tag = "1")]
2528 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2529 #[prost(message, optional, tag = "2")]
2530 pub duration: ::core::option::Option<DurationConstant>,
2531}
2532#[derive(Clone, PartialEq, ::prost::Message)]
2533pub struct NumericValueDifferenceExpression {
2534 #[prost(message, optional, boxed, tag = "1")]
2535 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2536 #[prost(enumeration = "NegativeValuePolicy", optional, tag = "2")]
2537 pub negative_value_policy: ::core::option::Option<i32>,
2538}
2539#[derive(Clone, PartialEq, ::prost::Message)]
2540pub struct NumericPhaseUnwrapExpression {
2541 #[prost(message, optional, boxed, tag = "1")]
2542 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2543 #[prost(message, optional, tag = "2")]
2544 pub period: ::core::option::Option<DoubleConstant>,
2545}
2546#[derive(Clone, PartialEq, ::prost::Message)]
2547pub struct NumericPointLimitExpression {
2548 #[prost(message, optional, boxed, tag = "1")]
2549 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2550 #[prost(message, optional, tag = "2")]
2551 pub count: ::core::option::Option<IntegerConstant>,
2552 #[prost(enumeration = "PointLimitOrder", tag = "3")]
2553 pub order: i32,
2554}
2555#[derive(Clone, PartialEq, ::prost::Message)]
2556pub struct NumericNthPointDownsampleExpression {
2557 #[prost(message, optional, boxed, tag = "1")]
2558 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2559 #[prost(message, optional, tag = "2")]
2560 pub n: ::core::option::Option<IntegerConstant>,
2561}
2562#[derive(Clone, PartialEq, ::prost::Message)]
2563pub struct NumericLargestTriangleThreeBucketsExpression {
2564 #[prost(message, optional, boxed, tag = "1")]
2565 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2566 #[prost(message, optional, tag = "2")]
2567 pub max_points: ::core::option::Option<IntegerConstant>,
2568}
2569#[derive(Clone, PartialEq, ::prost::Message)]
2570pub struct NumericConditionFilterExpression {
2571 #[prost(message, optional, boxed, tag = "1")]
2572 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2573 #[prost(message, optional, boxed, tag = "2")]
2574 pub condition: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2575}
2576#[derive(Clone, PartialEq, ::prost::Message)]
2577pub struct NumericThresholdFilterExpression {
2578 #[prost(message, optional, boxed, tag = "1")]
2579 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2580 #[prost(message, optional, tag = "2")]
2581 pub threshold: ::core::option::Option<DoubleConstant>,
2582 #[prost(enumeration = "ComparisonOperation", tag = "3")]
2583 pub operation: i32,
2584}
2585#[derive(Clone, PartialEq, ::prost::Message)]
2586pub struct NumericApproximateFilterExpression {
2587 #[prost(message, optional, boxed, tag = "1")]
2588 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2589 #[prost(message, optional, tag = "2")]
2590 pub threshold: ::core::option::Option<DoubleConstant>,
2591 #[prost(message, optional, tag = "3")]
2592 pub tolerance: ::core::option::Option<DoubleConstant>,
2593 #[prost(enumeration = "ApproximateComparisonOperation", tag = "4")]
2594 pub operation: i32,
2595}
2596#[derive(Clone, PartialEq, ::prost::Message)]
2597pub struct NumericSignalFilterExpression {
2598 #[prost(message, optional, boxed, tag = "1")]
2599 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2600 #[prost(message, optional, tag = "2")]
2601 pub configuration: ::core::option::Option<SignalFilterConfiguration>,
2602 #[prost(message, optional, tag = "3")]
2603 pub order: ::core::option::Option<IntegerConstant>,
2604 #[prost(message, optional, tag = "4")]
2605 pub sampling_frequency: ::core::option::Option<DoubleConstant>,
2606}
2607#[derive(Clone, PartialEq, ::prost::Message)]
2608pub struct NumericUnitConversionExpression {
2609 #[prost(message, optional, boxed, tag = "1")]
2610 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2611 #[prost(string, tag = "2")]
2612 pub output_unit: ::prost::alloc::string::String,
2613}
2614#[derive(Clone, PartialEq, ::prost::Message)]
2615pub struct NumericUnitOverrideExpression {
2616 #[prost(message, optional, boxed, tag = "1")]
2617 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2618 #[prost(string, optional, tag = "2")]
2619 pub unit: ::core::option::Option<::prost::alloc::string::String>,
2620}
2621#[derive(Clone, PartialEq, ::prost::Message)]
2622pub struct NumericZScoreExpression {
2623 #[prost(message, optional, boxed, tag = "1")]
2624 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2625 #[prost(message, repeated, tag = "2")]
2626 pub group_by_tags: ::prost::alloc::vec::Vec<StringConstant>,
2627 #[deprecated]
2628 #[prost(message, optional, tag = "3")]
2629 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2630}
2631#[derive(Clone, PartialEq, ::prost::Message)]
2632pub struct NumericUnionExpression {
2633 #[prost(message, repeated, tag = "1")]
2634 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
2635 #[deprecated]
2636 #[prost(enumeration = "DuplicateMergeOperation", optional, tag = "2")]
2637 pub duplicate_merge_operation: ::core::option::Option<i32>,
2638}
2639#[derive(Clone, PartialEq, ::prost::Message)]
2640pub struct NumericDropNanExpression {
2641 #[prost(message, optional, boxed, tag = "1")]
2642 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2643}
2644#[derive(Clone, PartialEq, ::prost::Message)]
2645pub struct NumericTimeShiftV2Expression {
2646 #[prost(message, optional, boxed, tag = "1")]
2647 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2648 #[prost(message, optional, tag = "2")]
2649 pub duration: ::core::option::Option<DurationExpression>,
2650}
2651#[derive(Clone, PartialEq, ::prost::Message)]
2652pub struct NumericResampleV2Expression {
2653 #[prost(message, optional, boxed, tag = "1")]
2654 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2655 #[prost(message, optional, tag = "2")]
2656 pub interval: ::core::option::Option<DurationExpression>,
2657}
2658#[derive(Clone, PartialEq, ::prost::Message)]
2659pub struct NumericToStartOfIntervalExpression {
2660 #[prost(message, optional, boxed, tag = "1")]
2661 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2662 #[prost(message, optional, tag = "2")]
2663 pub interval: ::core::option::Option<DurationExpression>,
2664}
2665#[derive(Clone, PartialEq, ::prost::Message)]
2666pub struct NumericScalarTransformExpression {
2667 #[prost(message, optional, boxed, tag = "1")]
2668 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2669 #[prost(oneof = "numeric_scalar_transform_expression::Transform", tags = "2, 3")]
2670 pub transform: ::core::option::Option<
2671 numeric_scalar_transform_expression::Transform,
2672 >,
2673}
2674pub mod numeric_scalar_transform_expression {
2676 #[derive(Clone, PartialEq, ::prost::Oneof)]
2677 pub enum Transform {
2678 #[prost(message, tag = "2")]
2679 Offset(super::DoubleConstant),
2680 #[prost(message, tag = "3")]
2681 Scale(super::ScalingFactor),
2682 }
2683}
2684#[derive(Clone, PartialEq, ::prost::Message)]
2685pub struct NumericArithmeticExpression {
2686 #[prost(map = "string, message", tag = "1")]
2687 pub inputs: ::std::collections::HashMap<
2688 ::prost::alloc::string::String,
2689 NumericExpression,
2690 >,
2691 #[prost(string, tag = "2")]
2692 pub formula: ::prost::alloc::string::String,
2693 #[deprecated]
2694 #[prost(message, optional, tag = "3")]
2695 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2696}
2697#[derive(Clone, PartialEq, ::prost::Message)]
2698pub struct NumericFormulaFilterExpression {
2699 #[prost(string, tag = "1")]
2700 pub filtered_input_name: ::prost::alloc::string::String,
2701 #[prost(map = "string, message", tag = "2")]
2702 pub inputs: ::std::collections::HashMap<
2703 ::prost::alloc::string::String,
2704 NumericExpression,
2705 >,
2706 #[prost(string, tag = "3")]
2707 pub formula: ::prost::alloc::string::String,
2708 #[deprecated]
2709 #[prost(message, optional, tag = "4")]
2710 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2711}
2712#[derive(Clone, PartialEq, ::prost::Message)]
2713pub struct NumericLiteralBitwiseExpression {
2714 #[prost(message, optional, boxed, tag = "1")]
2715 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2716 #[prost(message, optional, tag = "2")]
2717 pub function: ::core::option::Option<LiteralBitFunction>,
2718}
2719#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2720pub struct LiteralBitFunction {
2721 #[prost(oneof = "literal_bit_function::Kind", tags = "1, 2, 3")]
2722 pub kind: ::core::option::Option<literal_bit_function::Kind>,
2723}
2724pub mod literal_bit_function {
2726 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2727 pub enum Kind {
2728 #[prost(message, tag = "1")]
2729 Bitwise(super::LiteralBitwiseFunction),
2730 #[prost(message, tag = "2")]
2731 Shift(super::LiteralShiftFunction),
2732 #[prost(message, tag = "3")]
2733 BitTest(super::BitTestIndex),
2734 }
2735}
2736#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2737pub struct LiteralBitwiseFunction {
2738 #[prost(enumeration = "LiteralBitwiseOperation", tag = "1")]
2739 pub operation: i32,
2740 #[prost(int64, tag = "2")]
2741 pub operand: i64,
2742}
2743#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2744pub struct LiteralShiftFunction {
2745 #[prost(enumeration = "ShiftDirection", tag = "1")]
2746 pub direction: i32,
2747 #[prost(int32, tag = "2")]
2748 pub distance: i32,
2749}
2750#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2751pub struct BitTestIndex {
2752 #[prost(int32, tag = "1")]
2753 pub index: i32,
2754}
2755#[derive(Clone, PartialEq, ::prost::Message)]
2756pub struct NumericResampleExpression {
2757 #[prost(message, optional, boxed, tag = "1")]
2758 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2759 #[prost(message, optional, tag = "2")]
2760 pub interval: ::core::option::Option<DurationConstant>,
2761 #[prost(message, optional, tag = "3")]
2762 pub fill: ::core::option::Option<ResampleFill>,
2763}
2764#[derive(Clone, PartialEq, ::prost::Message)]
2765pub struct NumericRefpropExpression {
2766 #[prost(message, repeated, tag = "1")]
2767 pub inputs: ::prost::alloc::vec::Vec<RefpropInput>,
2768 #[prost(enumeration = "RefpropProperty", tag = "2")]
2769 pub output_property: i32,
2770 #[prost(enumeration = "RefpropSubstance", tag = "3")]
2771 pub substance: i32,
2772 #[deprecated]
2773 #[prost(message, optional, tag = "4")]
2774 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2775}
2776#[derive(Clone, PartialEq, ::prost::Message)]
2777pub struct RefpropInput {
2778 #[prost(enumeration = "RefpropProperty", tag = "1")]
2779 pub property: i32,
2780 #[prost(message, optional, tag = "2")]
2781 pub value: ::core::option::Option<NumericExpression>,
2782}
2783#[derive(Clone, PartialEq, ::prost::Message)]
2784pub struct NumericRollingAggregationExpression {
2785 #[prost(message, optional, boxed, tag = "1")]
2786 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2787 #[prost(message, optional, tag = "2")]
2788 pub window: ::core::option::Option<DurationConstant>,
2789 #[prost(message, optional, tag = "3")]
2790 pub reduction: ::core::option::Option<NumericReduction>,
2791}
2792#[derive(Clone, PartialEq, ::prost::Message)]
2793pub struct NumericDuplicateTimestampAggregationExpression {
2794 #[prost(message, optional, boxed, tag = "1")]
2795 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2796 #[prost(message, optional, tag = "2")]
2797 pub reduction: ::core::option::Option<NumericReduction>,
2798 #[prost(message, repeated, tag = "3")]
2799 pub grouping_keys: ::prost::alloc::vec::Vec<StringConstant>,
2800 #[prost(bool, optional, tag = "4")]
2801 pub aggregate_across_all_series: ::core::option::Option<bool>,
2802 #[deprecated]
2803 #[prost(message, optional, tag = "5")]
2804 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2805}
2806#[derive(Clone, PartialEq, ::prost::Message)]
2807pub struct NumericTagFilterExpression {
2808 #[prost(message, optional, boxed, tag = "1")]
2809 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2810 #[prost(message, optional, tag = "2")]
2811 pub predicate: ::core::option::Option<TagPredicateExpression>,
2812}
2813#[derive(Clone, PartialEq, ::prost::Message)]
2814pub struct NumericTagSelectionExpression {
2815 #[prost(message, optional, boxed, tag = "1")]
2816 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2817 #[prost(message, repeated, tag = "2")]
2818 pub retained_tag_keys: ::prost::alloc::vec::Vec<StringConstant>,
2819}
2820#[derive(Clone, PartialEq, ::prost::Message)]
2821pub struct NumericArrayExpression {
2822 #[prost(
2823 oneof = "numeric_array_expression::Kind",
2824 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9"
2825 )]
2826 pub kind: ::core::option::Option<numeric_array_expression::Kind>,
2827}
2828pub mod numeric_array_expression {
2830 #[derive(Clone, PartialEq, ::prost::Oneof)]
2831 pub enum Kind {
2832 #[prost(message, tag = "1")]
2833 Reference(super::TimeSeriesReference),
2834 #[prost(message, tag = "2")]
2835 ChannelSelection(super::ChannelSelection),
2836 #[prost(message, tag = "3")]
2837 ModuleFunction(super::ModuleFunctionExpression),
2838 #[prost(message, tag = "4")]
2839 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
2840 #[prost(message, tag = "5")]
2841 StructField(
2842 ::prost::alloc::boxed::Box<super::NumericArrayStructFieldExpression>,
2843 ),
2844 #[prost(message, tag = "6")]
2845 TimeShift(::prost::alloc::boxed::Box<super::NumericArrayTimeShiftExpression>),
2846 #[prost(message, tag = "7")]
2847 ToStartOfInterval(
2848 ::prost::alloc::boxed::Box<super::NumericArrayToStartOfIntervalExpression>,
2849 ),
2850 #[prost(message, tag = "8")]
2851 TagFilter(::prost::alloc::boxed::Box<super::NumericArrayTagFilterExpression>),
2852 #[prost(message, tag = "9")]
2853 TagSelection(
2854 ::prost::alloc::boxed::Box<super::NumericArrayTagSelectionExpression>,
2855 ),
2856 }
2857}
2858#[derive(Clone, PartialEq, ::prost::Message)]
2859pub struct NumericArrayStructFieldExpression {
2860 #[prost(message, optional, boxed, tag = "1")]
2861 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
2862 #[prost(message, repeated, tag = "2")]
2863 pub path: ::prost::alloc::vec::Vec<StringConstant>,
2864}
2865#[derive(Clone, PartialEq, ::prost::Message)]
2866pub struct NumericArrayTimeShiftExpression {
2867 #[prost(message, optional, boxed, tag = "1")]
2868 pub input: ::core::option::Option<
2869 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2870 >,
2871 #[prost(message, optional, tag = "2")]
2872 pub duration: ::core::option::Option<DurationConstant>,
2873}
2874#[derive(Clone, PartialEq, ::prost::Message)]
2875pub struct NumericArrayToStartOfIntervalExpression {
2876 #[prost(message, optional, boxed, tag = "1")]
2877 pub input: ::core::option::Option<
2878 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2879 >,
2880 #[prost(message, optional, tag = "2")]
2881 pub interval: ::core::option::Option<DurationExpression>,
2882}
2883#[derive(Clone, PartialEq, ::prost::Message)]
2884pub struct NumericArrayTagFilterExpression {
2885 #[prost(message, optional, boxed, tag = "1")]
2886 pub input: ::core::option::Option<
2887 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2888 >,
2889 #[prost(message, optional, tag = "2")]
2890 pub predicate: ::core::option::Option<TagPredicateExpression>,
2891}
2892#[derive(Clone, PartialEq, ::prost::Message)]
2893pub struct NumericArrayTagSelectionExpression {
2894 #[prost(message, optional, boxed, tag = "1")]
2895 pub input: ::core::option::Option<
2896 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2897 >,
2898 #[prost(message, optional, tag = "2")]
2899 pub keys: ::core::option::Option<TagKeySet>,
2900}
2901#[derive(Clone, PartialEq, ::prost::Message)]
2902pub struct CategoricalArrayExpression {
2903 #[prost(
2904 oneof = "categorical_array_expression::Kind",
2905 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9"
2906 )]
2907 pub kind: ::core::option::Option<categorical_array_expression::Kind>,
2908}
2909pub mod categorical_array_expression {
2911 #[derive(Clone, PartialEq, ::prost::Oneof)]
2912 pub enum Kind {
2913 #[prost(message, tag = "1")]
2914 Reference(super::TimeSeriesReference),
2915 #[prost(message, tag = "2")]
2916 ChannelSelection(super::ChannelSelection),
2917 #[prost(message, tag = "3")]
2918 ModuleFunction(super::ModuleFunctionExpression),
2919 #[prost(message, tag = "4")]
2920 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
2921 #[prost(message, tag = "5")]
2922 StructField(
2923 ::prost::alloc::boxed::Box<super::CategoricalArrayStructFieldExpression>,
2924 ),
2925 #[prost(message, tag = "6")]
2926 TimeShift(
2927 ::prost::alloc::boxed::Box<super::CategoricalArrayTimeShiftExpression>,
2928 ),
2929 #[prost(message, tag = "7")]
2930 ToStartOfInterval(
2931 ::prost::alloc::boxed::Box<
2932 super::CategoricalArrayToStartOfIntervalExpression,
2933 >,
2934 ),
2935 #[prost(message, tag = "8")]
2936 TagFilter(
2937 ::prost::alloc::boxed::Box<super::CategoricalArrayTagFilterExpression>,
2938 ),
2939 #[prost(message, tag = "9")]
2940 TagSelection(
2941 ::prost::alloc::boxed::Box<super::CategoricalArrayTagSelectionExpression>,
2942 ),
2943 }
2944}
2945#[derive(Clone, PartialEq, ::prost::Message)]
2946pub struct CategoricalArrayStructFieldExpression {
2947 #[prost(message, optional, boxed, tag = "1")]
2948 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
2949 #[prost(message, repeated, tag = "2")]
2950 pub path: ::prost::alloc::vec::Vec<StringConstant>,
2951}
2952#[derive(Clone, PartialEq, ::prost::Message)]
2953pub struct CategoricalArrayTimeShiftExpression {
2954 #[prost(message, optional, boxed, tag = "1")]
2955 pub input: ::core::option::Option<
2956 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2957 >,
2958 #[prost(message, optional, tag = "2")]
2959 pub duration: ::core::option::Option<DurationConstant>,
2960}
2961#[derive(Clone, PartialEq, ::prost::Message)]
2962pub struct CategoricalArrayToStartOfIntervalExpression {
2963 #[prost(message, optional, boxed, tag = "1")]
2964 pub input: ::core::option::Option<
2965 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2966 >,
2967 #[prost(message, optional, tag = "2")]
2968 pub interval: ::core::option::Option<DurationExpression>,
2969}
2970#[derive(Clone, PartialEq, ::prost::Message)]
2971pub struct CategoricalArrayTagFilterExpression {
2972 #[prost(message, optional, boxed, tag = "1")]
2973 pub input: ::core::option::Option<
2974 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2975 >,
2976 #[prost(message, optional, tag = "2")]
2977 pub predicate: ::core::option::Option<TagPredicateExpression>,
2978}
2979#[derive(Clone, PartialEq, ::prost::Message)]
2980pub struct CategoricalArrayTagSelectionExpression {
2981 #[prost(message, optional, boxed, tag = "1")]
2982 pub input: ::core::option::Option<
2983 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2984 >,
2985 #[prost(message, optional, tag = "2")]
2986 pub keys: ::core::option::Option<TagKeySet>,
2987}
2988#[derive(Clone, PartialEq, ::prost::Message)]
2989pub struct StructExpression {
2990 #[prost(oneof = "struct_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
2991 pub kind: ::core::option::Option<struct_expression::Kind>,
2992}
2993pub mod struct_expression {
2995 #[derive(Clone, PartialEq, ::prost::Oneof)]
2996 pub enum Kind {
2997 #[prost(message, tag = "1")]
2998 Reference(super::TimeSeriesReference),
2999 #[prost(message, tag = "2")]
3000 ChannelSelection(super::ChannelSelection),
3001 #[prost(message, tag = "3")]
3002 ModuleFunction(super::ModuleFunctionExpression),
3003 #[prost(message, tag = "4")]
3004 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3005 #[prost(message, tag = "5")]
3006 Combine(super::StructCombineExpression),
3007 #[prost(message, tag = "6")]
3008 StructField(::prost::alloc::boxed::Box<super::StructFieldExpression>),
3009 #[prost(message, tag = "7")]
3010 TimeShift(::prost::alloc::boxed::Box<super::StructTimeShiftExpression>),
3011 #[prost(message, tag = "8")]
3012 ToStartOfInterval(
3013 ::prost::alloc::boxed::Box<super::StructToStartOfIntervalExpression>,
3014 ),
3015 #[prost(message, tag = "9")]
3016 TagFilter(::prost::alloc::boxed::Box<super::StructTagFilterExpression>),
3017 #[prost(message, tag = "10")]
3018 TagSelection(::prost::alloc::boxed::Box<super::StructTagSelectionExpression>),
3019 }
3020}
3021#[derive(Clone, PartialEq, ::prost::Message)]
3022pub struct StructFieldExpression {
3023 #[prost(message, optional, boxed, tag = "1")]
3024 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3025 #[prost(message, repeated, tag = "2")]
3026 pub path: ::prost::alloc::vec::Vec<StringConstant>,
3027}
3028#[derive(Clone, PartialEq, ::prost::Message)]
3029pub struct StructTimeShiftExpression {
3030 #[prost(message, optional, boxed, tag = "1")]
3031 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3032 #[prost(message, optional, tag = "2")]
3033 pub duration: ::core::option::Option<DurationConstant>,
3034}
3035#[derive(Clone, PartialEq, ::prost::Message)]
3036pub struct StructToStartOfIntervalExpression {
3037 #[prost(message, optional, boxed, tag = "1")]
3038 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3039 #[prost(message, optional, tag = "2")]
3040 pub interval: ::core::option::Option<DurationExpression>,
3041}
3042#[derive(Clone, PartialEq, ::prost::Message)]
3043pub struct StructTagFilterExpression {
3044 #[prost(message, optional, boxed, tag = "1")]
3045 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3046 #[prost(message, optional, tag = "2")]
3047 pub predicate: ::core::option::Option<TagPredicateExpression>,
3048}
3049#[derive(Clone, PartialEq, ::prost::Message)]
3050pub struct StructTagSelectionExpression {
3051 #[prost(message, optional, boxed, tag = "1")]
3052 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3053 #[prost(message, optional, tag = "2")]
3054 pub keys: ::core::option::Option<TagKeySet>,
3055}
3056#[derive(Clone, PartialEq, ::prost::Message)]
3057pub struct LogExpression {
3058 #[prost(oneof = "log_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
3059 pub kind: ::core::option::Option<log_expression::Kind>,
3060}
3061pub mod log_expression {
3063 #[derive(Clone, PartialEq, ::prost::Oneof)]
3064 pub enum Kind {
3065 #[prost(message, tag = "1")]
3066 Reference(super::TimeSeriesReference),
3067 #[prost(message, tag = "2")]
3068 ChannelSelection(super::ChannelSelection),
3069 #[prost(message, tag = "3")]
3070 ModuleFunction(super::ModuleFunctionExpression),
3071 #[prost(message, tag = "4")]
3072 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3073 #[prost(message, tag = "5")]
3074 Concatenate(super::LogConcatenateExpression),
3075 #[prost(message, tag = "6")]
3076 Filter(::prost::alloc::boxed::Box<super::LogFilterExpression>),
3077 #[prost(message, tag = "7")]
3078 TimeShift(::prost::alloc::boxed::Box<super::LogTimeShiftExpression>),
3079 #[prost(message, tag = "8")]
3080 ToStartOfInterval(
3081 ::prost::alloc::boxed::Box<super::LogToStartOfIntervalExpression>,
3082 ),
3083 #[prost(message, tag = "9")]
3084 TagFilter(::prost::alloc::boxed::Box<super::LogTagFilterExpression>),
3085 #[prost(message, tag = "10")]
3086 TagSelection(::prost::alloc::boxed::Box<super::LogTagSelectionExpression>),
3087 }
3088}
3089#[derive(Clone, PartialEq, ::prost::Message)]
3090pub struct LogTimeShiftExpression {
3091 #[prost(message, optional, boxed, tag = "1")]
3092 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3093 #[prost(message, optional, tag = "2")]
3094 pub duration: ::core::option::Option<DurationConstant>,
3095}
3096#[derive(Clone, PartialEq, ::prost::Message)]
3097pub struct LogToStartOfIntervalExpression {
3098 #[prost(message, optional, boxed, tag = "1")]
3099 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3100 #[prost(message, optional, tag = "2")]
3101 pub interval: ::core::option::Option<DurationExpression>,
3102}
3103#[derive(Clone, PartialEq, ::prost::Message)]
3104pub struct LogTagFilterExpression {
3105 #[prost(message, optional, boxed, tag = "1")]
3106 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3107 #[prost(message, optional, tag = "2")]
3108 pub predicate: ::core::option::Option<TagPredicateExpression>,
3109}
3110#[derive(Clone, PartialEq, ::prost::Message)]
3111pub struct LogTagSelectionExpression {
3112 #[prost(message, optional, boxed, tag = "1")]
3113 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3114 #[prost(message, optional, tag = "2")]
3115 pub keys: ::core::option::Option<TagKeySet>,
3116}
3117#[derive(Clone, PartialEq, ::prost::Message)]
3118pub struct StructCombineExpression {
3119 #[prost(map = "string, message", tag = "1")]
3120 pub fields: ::std::collections::HashMap<
3121 ::prost::alloc::string::String,
3122 SeriesExpression,
3123 >,
3124 #[prost(message, optional, tag = "2")]
3125 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3126}
3127#[derive(Clone, PartialEq, ::prost::Message)]
3128pub struct LogConcatenateExpression {
3129 #[prost(message, repeated, tag = "1")]
3130 pub inputs: ::prost::alloc::vec::Vec<LogExpression>,
3131}
3132#[derive(Clone, PartialEq, ::prost::Message)]
3133pub struct LogFilterExpression {
3134 #[prost(message, optional, boxed, tag = "1")]
3135 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3136 #[prost(message, optional, tag = "2")]
3137 pub predicate: ::core::option::Option<LogPredicate>,
3138}
3139#[derive(Clone, PartialEq, ::prost::Message)]
3140pub struct RangeExpression {
3141 #[prost(
3142 oneof = "range_expression::Kind",
3143 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21"
3144 )]
3145 pub kind: ::core::option::Option<range_expression::Kind>,
3146}
3147pub mod range_expression {
3149 #[derive(Clone, PartialEq, ::prost::Oneof)]
3150 pub enum Kind {
3151 #[prost(string, tag = "1")]
3152 VariableName(::prost::alloc::string::String),
3153 #[prost(message, tag = "2")]
3154 ModuleFunction(super::ModuleFunctionExpression),
3155 #[prost(message, tag = "3")]
3156 Literal(super::LiteralRangeCollection),
3157 #[prost(message, tag = "4")]
3158 Events(super::EventPredicateExpression),
3159 #[prost(message, tag = "5")]
3160 BooleanCondition(::prost::alloc::boxed::Box<super::BooleanRangeExpression>),
3161 #[prost(message, tag = "6")]
3162 NumericThreshold(::prost::alloc::boxed::Box<super::NumericThresholdRanges>),
3163 #[prost(message, tag = "7")]
3164 NumericBounds(::prost::alloc::boxed::Box<super::NumericBoundsRanges>),
3165 #[prost(message, tag = "8")]
3166 CategoricalMembership(
3167 ::prost::alloc::boxed::Box<super::CategoricalMembershipRanges>,
3168 ),
3169 #[prost(message, tag = "9")]
3170 NumericEquality(super::NumericEqualityRanges),
3171 #[prost(message, tag = "10")]
3172 CategoricalEquality(super::CategoricalEqualityRanges),
3173 #[prost(message, tag = "11")]
3174 NumericCrossover(::prost::alloc::boxed::Box<super::NumericCrossoverRanges>),
3175 #[prost(message, tag = "12")]
3176 OnChange(::prost::alloc::boxed::Box<super::SeriesChangeRanges>),
3177 #[prost(message, tag = "13")]
3178 Staleness(::prost::alloc::boxed::Box<super::SeriesStalenessRanges>),
3179 #[prost(message, tag = "14")]
3180 DurationFilter(::prost::alloc::boxed::Box<super::RangeDurationFilter>),
3181 #[prost(message, tag = "15")]
3182 Stability(::prost::alloc::boxed::Box<super::NumericStabilityRanges>),
3183 #[prost(message, tag = "16")]
3184 Extrema(::prost::alloc::boxed::Box<super::NumericExtremaRanges>),
3185 #[prost(message, tag = "17")]
3186 Intersection(super::RangeExpressionCollection),
3187 #[prost(message, tag = "18")]
3188 Union(super::RangeExpressionCollection),
3189 #[prost(message, tag = "19")]
3190 Complement(::prost::alloc::boxed::Box<super::RangeExpression>),
3191 #[prost(message, tag = "20")]
3192 Padding(::prost::alloc::boxed::Box<super::RangePaddingExpression>),
3193 #[prost(message, tag = "21")]
3194 Statistics(::prost::alloc::boxed::Box<super::RangeStatisticsExpression>),
3195 }
3196}
3197#[derive(Clone, PartialEq, ::prost::Message)]
3198pub struct LiteralRangeCollection {
3199 #[prost(message, repeated, tag = "1")]
3200 pub ranges: ::prost::alloc::vec::Vec<LiteralRange>,
3201}
3202#[derive(Clone, PartialEq, ::prost::Message)]
3203pub struct LiteralRange {
3204 #[prost(message, optional, tag = "1")]
3205 pub start: ::core::option::Option<TimestampConstant>,
3206 #[prost(message, optional, tag = "2")]
3207 pub end: ::core::option::Option<TimestampConstant>,
3208 #[prost(message, optional, tag = "3")]
3209 pub grouping: ::core::option::Option<TagGrouping>,
3210}
3211#[derive(Clone, PartialEq, ::prost::Message)]
3212pub struct BooleanRangeExpression {
3213 #[prost(message, optional, boxed, tag = "1")]
3214 pub input: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
3215 #[prost(message, optional, tag = "2")]
3216 pub persistence: ::core::option::Option<RangePersistence>,
3217}
3218#[derive(Clone, PartialEq, ::prost::Message)]
3219pub struct NumericThresholdRanges {
3220 #[prost(message, optional, boxed, tag = "1")]
3221 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3222 #[prost(enumeration = "ComparisonOperation", tag = "2")]
3223 pub comparison: i32,
3224 #[prost(message, optional, tag = "3")]
3225 pub threshold: ::core::option::Option<DoubleConstant>,
3226 #[prost(message, optional, tag = "4")]
3227 pub tolerance: ::core::option::Option<DoubleConstant>,
3228 #[prost(message, optional, tag = "5")]
3229 pub persistence: ::core::option::Option<RangePersistence>,
3230}
3231#[derive(Clone, PartialEq, ::prost::Message)]
3232pub struct NumericBoundsRanges {
3233 #[prost(message, optional, boxed, tag = "1")]
3234 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3235 #[prost(message, optional, tag = "2")]
3236 pub lower: ::core::option::Option<DoubleConstant>,
3237 #[prost(message, optional, tag = "3")]
3238 pub upper: ::core::option::Option<DoubleConstant>,
3239 #[prost(enumeration = "NumericBoundsCondition", tag = "4")]
3240 pub condition: i32,
3241 #[prost(message, optional, tag = "5")]
3242 pub persistence: ::core::option::Option<RangePersistence>,
3243}
3244#[derive(Clone, PartialEq, ::prost::Message)]
3245pub struct CategoricalMembershipRanges {
3246 #[prost(message, optional, boxed, tag = "1")]
3247 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
3248 #[prost(message, optional, tag = "2")]
3249 pub values: ::core::option::Option<ParameterizedStringSet>,
3250 #[prost(enumeration = "CategoricalMembershipOperation", tag = "3")]
3251 pub operation: i32,
3252 #[prost(message, optional, tag = "4")]
3253 pub persistence: ::core::option::Option<RangePersistence>,
3254}
3255#[derive(Clone, PartialEq, ::prost::Message)]
3256pub struct NumericEqualityRanges {
3257 #[prost(message, repeated, tag = "1")]
3258 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
3259 #[prost(enumeration = "SeriesEqualityMode", tag = "2")]
3260 pub mode: i32,
3261 #[prost(message, optional, tag = "3")]
3262 pub tolerance: ::core::option::Option<DoubleConstant>,
3263 #[prost(message, optional, tag = "4")]
3264 pub persistence: ::core::option::Option<RangePersistence>,
3265 #[deprecated]
3266 #[prost(message, optional, tag = "5")]
3267 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3268}
3269#[derive(Clone, PartialEq, ::prost::Message)]
3270pub struct CategoricalEqualityRanges {
3271 #[prost(message, repeated, tag = "1")]
3272 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
3273 #[prost(enumeration = "SeriesEqualityMode", tag = "2")]
3274 pub mode: i32,
3275 #[prost(message, optional, tag = "3")]
3276 pub persistence: ::core::option::Option<RangePersistence>,
3277 #[deprecated]
3278 #[prost(message, optional, tag = "4")]
3279 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3280}
3281#[derive(Clone, PartialEq, ::prost::Message)]
3282pub struct NumericCrossoverRanges {
3283 #[prost(message, optional, boxed, tag = "1")]
3284 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3285 #[prost(message, optional, boxed, tag = "2")]
3286 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3287}
3288#[derive(Clone, PartialEq, ::prost::Message)]
3289pub struct SeriesChangeRanges {
3290 #[prost(message, optional, boxed, tag = "1")]
3291 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
3292}
3293#[derive(Clone, PartialEq, ::prost::Message)]
3294pub struct SeriesStalenessRanges {
3295 #[prost(message, optional, boxed, tag = "1")]
3296 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
3297 #[prost(message, optional, tag = "2")]
3298 pub threshold: ::core::option::Option<DurationInput>,
3299 #[prost(message, optional, tag = "3")]
3300 pub start: ::core::option::Option<TimestampConstant>,
3301 #[deprecated]
3302 #[prost(message, optional, tag = "4")]
3303 pub end: ::core::option::Option<TimestampConstant>,
3304}
3305#[derive(Clone, PartialEq, ::prost::Message)]
3306pub struct RangeDurationFilter {
3307 #[prost(message, optional, boxed, tag = "1")]
3308 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3309 #[prost(message, optional, tag = "2")]
3310 pub threshold: ::core::option::Option<DurationInput>,
3311 #[prost(enumeration = "ComparisonOperation", tag = "3")]
3312 pub comparison: i32,
3313 #[prost(enumeration = "UnboundedDurationComparison", optional, tag = "4")]
3314 pub unbounded: ::core::option::Option<i32>,
3315}
3316#[derive(Clone, PartialEq, ::prost::Message)]
3317pub struct NumericStabilityRanges {
3318 #[prost(message, optional, boxed, tag = "1")]
3319 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3320 #[prost(message, optional, tag = "2")]
3321 pub window: ::core::option::Option<DurationInput>,
3322 #[prost(message, optional, tag = "3")]
3323 pub min_points: ::core::option::Option<IntegerConstant>,
3324 #[prost(message, optional, tag = "4")]
3325 pub threshold: ::core::option::Option<SpreadThreshold>,
3326}
3327#[derive(Clone, PartialEq, ::prost::Message)]
3328pub struct NumericExtremaRanges {
3329 #[prost(message, optional, boxed, tag = "1")]
3330 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3331 #[prost(enumeration = "ExtremaSelection", tag = "2")]
3332 pub selection: i32,
3333 #[prost(message, optional, tag = "3")]
3334 pub min_prominence: ::core::option::Option<DoubleConstant>,
3335}
3336#[derive(Clone, PartialEq, ::prost::Message)]
3337pub struct RangeExpressionCollection {
3338 #[prost(message, repeated, tag = "1")]
3339 pub inputs: ::prost::alloc::vec::Vec<RangeExpression>,
3340}
3341#[derive(Clone, PartialEq, ::prost::Message)]
3342pub struct RangePaddingExpression {
3343 #[prost(message, optional, boxed, tag = "1")]
3344 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3345 #[prost(message, optional, tag = "2")]
3346 pub padding: ::core::option::Option<DurationInput>,
3347 #[prost(enumeration = "RangePaddingSides", optional, tag = "3")]
3348 pub sides: ::core::option::Option<i32>,
3349}
3350#[derive(Clone, PartialEq, ::prost::Message)]
3351pub struct RangeStatisticsExpression {
3352 #[prost(message, optional, boxed, tag = "1")]
3353 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3354 #[prost(message, optional, boxed, tag = "2")]
3355 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3356 #[prost(oneof = "range_statistics_expression::Statistics", tags = "3, 4")]
3357 pub statistics: ::core::option::Option<range_statistics_expression::Statistics>,
3358}
3359pub mod range_statistics_expression {
3361 #[derive(Clone, PartialEq, ::prost::Oneof)]
3362 pub enum Statistics {
3363 #[prost(message, tag = "3")]
3364 Reduction(super::NumericReduction),
3365 #[prost(message, tag = "4")]
3366 All(super::AllStatistics),
3367 }
3368}
3369#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3370pub struct AllStatistics {}
3371#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3372#[repr(i32)]
3373pub enum ComputeAlignmentStrategy {
3374 Unspecified = 0,
3375 DriverSeries = 1,
3376 Union = 2,
3377}
3378impl ComputeAlignmentStrategy {
3379 pub fn as_str_name(&self) -> &'static str {
3384 match self {
3385 Self::Unspecified => "COMPUTE_ALIGNMENT_STRATEGY_UNSPECIFIED",
3386 Self::DriverSeries => "COMPUTE_ALIGNMENT_STRATEGY_DRIVER_SERIES",
3387 Self::Union => "COMPUTE_ALIGNMENT_STRATEGY_UNION",
3388 }
3389 }
3390 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3392 match value {
3393 "COMPUTE_ALIGNMENT_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
3394 "COMPUTE_ALIGNMENT_STRATEGY_DRIVER_SERIES" => Some(Self::DriverSeries),
3395 "COMPUTE_ALIGNMENT_STRATEGY_UNION" => Some(Self::Union),
3396 _ => None,
3397 }
3398 }
3399}
3400#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3401#[repr(i32)]
3402pub enum BuiltinCurveForm {
3403 Unspecified = 0,
3404 Exponential = 1,
3405 Logarithmic = 2,
3406 Power = 3,
3407}
3408impl BuiltinCurveForm {
3409 pub fn as_str_name(&self) -> &'static str {
3414 match self {
3415 Self::Unspecified => "BUILTIN_CURVE_FORM_UNSPECIFIED",
3416 Self::Exponential => "BUILTIN_CURVE_FORM_EXPONENTIAL",
3417 Self::Logarithmic => "BUILTIN_CURVE_FORM_LOGARITHMIC",
3418 Self::Power => "BUILTIN_CURVE_FORM_POWER",
3419 }
3420 }
3421 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3423 match value {
3424 "BUILTIN_CURVE_FORM_UNSPECIFIED" => Some(Self::Unspecified),
3425 "BUILTIN_CURVE_FORM_EXPONENTIAL" => Some(Self::Exponential),
3426 "BUILTIN_CURVE_FORM_LOGARITHMIC" => Some(Self::Logarithmic),
3427 "BUILTIN_CURVE_FORM_POWER" => Some(Self::Power),
3428 _ => None,
3429 }
3430 }
3431}
3432#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3433#[repr(i32)]
3434pub enum UnboundedRangePolicy {
3435 Unspecified = 0,
3436 ClampToWindow = 1,
3437 Drop = 2,
3438}
3439impl UnboundedRangePolicy {
3440 pub fn as_str_name(&self) -> &'static str {
3445 match self {
3446 Self::Unspecified => "UNBOUNDED_RANGE_POLICY_UNSPECIFIED",
3447 Self::ClampToWindow => "UNBOUNDED_RANGE_POLICY_CLAMP_TO_WINDOW",
3448 Self::Drop => "UNBOUNDED_RANGE_POLICY_DROP",
3449 }
3450 }
3451 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3453 match value {
3454 "UNBOUNDED_RANGE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
3455 "UNBOUNDED_RANGE_POLICY_CLAMP_TO_WINDOW" => Some(Self::ClampToWindow),
3456 "UNBOUNDED_RANGE_POLICY_DROP" => Some(Self::Drop),
3457 _ => None,
3458 }
3459 }
3460}
3461#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3462#[repr(i32)]
3463pub enum ChronologicalOrder {
3464 Unspecified = 0,
3465 Ascending = 1,
3466 Descending = 2,
3467}
3468impl ChronologicalOrder {
3469 pub fn as_str_name(&self) -> &'static str {
3474 match self {
3475 Self::Unspecified => "CHRONOLOGICAL_ORDER_UNSPECIFIED",
3476 Self::Ascending => "CHRONOLOGICAL_ORDER_ASCENDING",
3477 Self::Descending => "CHRONOLOGICAL_ORDER_DESCENDING",
3478 }
3479 }
3480 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3482 match value {
3483 "CHRONOLOGICAL_ORDER_UNSPECIFIED" => Some(Self::Unspecified),
3484 "CHRONOLOGICAL_ORDER_ASCENDING" => Some(Self::Ascending),
3485 "CHRONOLOGICAL_ORDER_DESCENDING" => Some(Self::Descending),
3486 _ => None,
3487 }
3488 }
3489}
3490#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3491#[repr(i32)]
3492pub enum UnaryNumericOperation {
3493 Unspecified = 0,
3494 Abs = 1,
3495 Negate = 2,
3496 Cos = 3,
3497 Sin = 4,
3498 Tan = 5,
3499 Acos = 6,
3500 Asin = 7,
3501 Ln = 8,
3502 Log10 = 9,
3503 Sqrt = 10,
3504}
3505impl UnaryNumericOperation {
3506 pub fn as_str_name(&self) -> &'static str {
3511 match self {
3512 Self::Unspecified => "UNARY_NUMERIC_OPERATION_UNSPECIFIED",
3513 Self::Abs => "UNARY_NUMERIC_OPERATION_ABS",
3514 Self::Negate => "UNARY_NUMERIC_OPERATION_NEGATE",
3515 Self::Cos => "UNARY_NUMERIC_OPERATION_COS",
3516 Self::Sin => "UNARY_NUMERIC_OPERATION_SIN",
3517 Self::Tan => "UNARY_NUMERIC_OPERATION_TAN",
3518 Self::Acos => "UNARY_NUMERIC_OPERATION_ACOS",
3519 Self::Asin => "UNARY_NUMERIC_OPERATION_ASIN",
3520 Self::Ln => "UNARY_NUMERIC_OPERATION_LN",
3521 Self::Log10 => "UNARY_NUMERIC_OPERATION_LOG10",
3522 Self::Sqrt => "UNARY_NUMERIC_OPERATION_SQRT",
3523 }
3524 }
3525 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3527 match value {
3528 "UNARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3529 "UNARY_NUMERIC_OPERATION_ABS" => Some(Self::Abs),
3530 "UNARY_NUMERIC_OPERATION_NEGATE" => Some(Self::Negate),
3531 "UNARY_NUMERIC_OPERATION_COS" => Some(Self::Cos),
3532 "UNARY_NUMERIC_OPERATION_SIN" => Some(Self::Sin),
3533 "UNARY_NUMERIC_OPERATION_TAN" => Some(Self::Tan),
3534 "UNARY_NUMERIC_OPERATION_ACOS" => Some(Self::Acos),
3535 "UNARY_NUMERIC_OPERATION_ASIN" => Some(Self::Asin),
3536 "UNARY_NUMERIC_OPERATION_LN" => Some(Self::Ln),
3537 "UNARY_NUMERIC_OPERATION_LOG10" => Some(Self::Log10),
3538 "UNARY_NUMERIC_OPERATION_SQRT" => Some(Self::Sqrt),
3539 _ => None,
3540 }
3541 }
3542}
3543#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3544#[repr(i32)]
3545pub enum BinaryNumericOperation {
3546 Unspecified = 0,
3547 Add = 1,
3548 Subtract = 2,
3549 Multiply = 3,
3550 Divide = 4,
3551 FloorDivide = 5,
3552 Power = 6,
3553 Modulo = 7,
3554 Atan2 = 8,
3555}
3556impl BinaryNumericOperation {
3557 pub fn as_str_name(&self) -> &'static str {
3562 match self {
3563 Self::Unspecified => "BINARY_NUMERIC_OPERATION_UNSPECIFIED",
3564 Self::Add => "BINARY_NUMERIC_OPERATION_ADD",
3565 Self::Subtract => "BINARY_NUMERIC_OPERATION_SUBTRACT",
3566 Self::Multiply => "BINARY_NUMERIC_OPERATION_MULTIPLY",
3567 Self::Divide => "BINARY_NUMERIC_OPERATION_DIVIDE",
3568 Self::FloorDivide => "BINARY_NUMERIC_OPERATION_FLOOR_DIVIDE",
3569 Self::Power => "BINARY_NUMERIC_OPERATION_POWER",
3570 Self::Modulo => "BINARY_NUMERIC_OPERATION_MODULO",
3571 Self::Atan2 => "BINARY_NUMERIC_OPERATION_ATAN2",
3572 }
3573 }
3574 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3576 match value {
3577 "BINARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3578 "BINARY_NUMERIC_OPERATION_ADD" => Some(Self::Add),
3579 "BINARY_NUMERIC_OPERATION_SUBTRACT" => Some(Self::Subtract),
3580 "BINARY_NUMERIC_OPERATION_MULTIPLY" => Some(Self::Multiply),
3581 "BINARY_NUMERIC_OPERATION_DIVIDE" => Some(Self::Divide),
3582 "BINARY_NUMERIC_OPERATION_FLOOR_DIVIDE" => Some(Self::FloorDivide),
3583 "BINARY_NUMERIC_OPERATION_POWER" => Some(Self::Power),
3584 "BINARY_NUMERIC_OPERATION_MODULO" => Some(Self::Modulo),
3585 "BINARY_NUMERIC_OPERATION_ATAN2" => Some(Self::Atan2),
3586 _ => None,
3587 }
3588 }
3589}
3590#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3591#[repr(i32)]
3592pub enum NaryNumericOperation {
3593 Unspecified = 0,
3594 Max = 1,
3595 Mean = 2,
3596 Min = 3,
3597 Sum = 4,
3598 Product = 5,
3599}
3600impl NaryNumericOperation {
3601 pub fn as_str_name(&self) -> &'static str {
3606 match self {
3607 Self::Unspecified => "NARY_NUMERIC_OPERATION_UNSPECIFIED",
3608 Self::Max => "NARY_NUMERIC_OPERATION_MAX",
3609 Self::Mean => "NARY_NUMERIC_OPERATION_MEAN",
3610 Self::Min => "NARY_NUMERIC_OPERATION_MIN",
3611 Self::Sum => "NARY_NUMERIC_OPERATION_SUM",
3612 Self::Product => "NARY_NUMERIC_OPERATION_PRODUCT",
3613 }
3614 }
3615 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3617 match value {
3618 "NARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3619 "NARY_NUMERIC_OPERATION_MAX" => Some(Self::Max),
3620 "NARY_NUMERIC_OPERATION_MEAN" => Some(Self::Mean),
3621 "NARY_NUMERIC_OPERATION_MIN" => Some(Self::Min),
3622 "NARY_NUMERIC_OPERATION_SUM" => Some(Self::Sum),
3623 "NARY_NUMERIC_OPERATION_PRODUCT" => Some(Self::Product),
3624 _ => None,
3625 }
3626 }
3627}
3628#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3629#[repr(i32)]
3630pub enum BitwiseOperation {
3631 Unspecified = 0,
3632 And = 1,
3633 Or = 2,
3634 Xor = 3,
3635 ShiftRight = 4,
3636 ShiftLeft = 5,
3637 Test = 6,
3638}
3639impl BitwiseOperation {
3640 pub fn as_str_name(&self) -> &'static str {
3645 match self {
3646 Self::Unspecified => "BITWISE_OPERATION_UNSPECIFIED",
3647 Self::And => "BITWISE_OPERATION_AND",
3648 Self::Or => "BITWISE_OPERATION_OR",
3649 Self::Xor => "BITWISE_OPERATION_XOR",
3650 Self::ShiftRight => "BITWISE_OPERATION_SHIFT_RIGHT",
3651 Self::ShiftLeft => "BITWISE_OPERATION_SHIFT_LEFT",
3652 Self::Test => "BITWISE_OPERATION_TEST",
3653 }
3654 }
3655 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3657 match value {
3658 "BITWISE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3659 "BITWISE_OPERATION_AND" => Some(Self::And),
3660 "BITWISE_OPERATION_OR" => Some(Self::Or),
3661 "BITWISE_OPERATION_XOR" => Some(Self::Xor),
3662 "BITWISE_OPERATION_SHIFT_RIGHT" => Some(Self::ShiftRight),
3663 "BITWISE_OPERATION_SHIFT_LEFT" => Some(Self::ShiftLeft),
3664 "BITWISE_OPERATION_TEST" => Some(Self::Test),
3665 _ => None,
3666 }
3667 }
3668}
3669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3670#[repr(i32)]
3671pub enum ComparisonOperation {
3672 Unspecified = 0,
3673 GreaterThan = 1,
3674 LessThan = 2,
3675 EqualTo = 3,
3676 NotEqualTo = 4,
3677 GreaterThanOrEqualTo = 5,
3678 LessThanOrEqualTo = 6,
3679}
3680impl ComparisonOperation {
3681 pub fn as_str_name(&self) -> &'static str {
3686 match self {
3687 Self::Unspecified => "COMPARISON_OPERATION_UNSPECIFIED",
3688 Self::GreaterThan => "COMPARISON_OPERATION_GREATER_THAN",
3689 Self::LessThan => "COMPARISON_OPERATION_LESS_THAN",
3690 Self::EqualTo => "COMPARISON_OPERATION_EQUAL_TO",
3691 Self::NotEqualTo => "COMPARISON_OPERATION_NOT_EQUAL_TO",
3692 Self::GreaterThanOrEqualTo => "COMPARISON_OPERATION_GREATER_THAN_OR_EQUAL_TO",
3693 Self::LessThanOrEqualTo => "COMPARISON_OPERATION_LESS_THAN_OR_EQUAL_TO",
3694 }
3695 }
3696 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3698 match value {
3699 "COMPARISON_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3700 "COMPARISON_OPERATION_GREATER_THAN" => Some(Self::GreaterThan),
3701 "COMPARISON_OPERATION_LESS_THAN" => Some(Self::LessThan),
3702 "COMPARISON_OPERATION_EQUAL_TO" => Some(Self::EqualTo),
3703 "COMPARISON_OPERATION_NOT_EQUAL_TO" => Some(Self::NotEqualTo),
3704 "COMPARISON_OPERATION_GREATER_THAN_OR_EQUAL_TO" => {
3705 Some(Self::GreaterThanOrEqualTo)
3706 }
3707 "COMPARISON_OPERATION_LESS_THAN_OR_EQUAL_TO" => Some(Self::LessThanOrEqualTo),
3708 _ => None,
3709 }
3710 }
3711}
3712#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3713#[repr(i32)]
3714pub enum LogicalOperation {
3715 Unspecified = 0,
3716 And = 1,
3717 Or = 2,
3718}
3719impl LogicalOperation {
3720 pub fn as_str_name(&self) -> &'static str {
3725 match self {
3726 Self::Unspecified => "LOGICAL_OPERATION_UNSPECIFIED",
3727 Self::And => "LOGICAL_OPERATION_AND",
3728 Self::Or => "LOGICAL_OPERATION_OR",
3729 }
3730 }
3731 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3733 match value {
3734 "LOGICAL_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3735 "LOGICAL_OPERATION_AND" => Some(Self::And),
3736 "LOGICAL_OPERATION_OR" => Some(Self::Or),
3737 _ => None,
3738 }
3739 }
3740}
3741#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3742#[repr(i32)]
3743pub enum NegativeValuePolicy {
3744 Unspecified = 0,
3745 Allow = 1,
3746 ClampToZero = 2,
3747 Exclude = 3,
3748}
3749impl NegativeValuePolicy {
3750 pub fn as_str_name(&self) -> &'static str {
3755 match self {
3756 Self::Unspecified => "NEGATIVE_VALUE_POLICY_UNSPECIFIED",
3757 Self::Allow => "NEGATIVE_VALUE_POLICY_ALLOW",
3758 Self::ClampToZero => "NEGATIVE_VALUE_POLICY_CLAMP_TO_ZERO",
3759 Self::Exclude => "NEGATIVE_VALUE_POLICY_EXCLUDE",
3760 }
3761 }
3762 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3764 match value {
3765 "NEGATIVE_VALUE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
3766 "NEGATIVE_VALUE_POLICY_ALLOW" => Some(Self::Allow),
3767 "NEGATIVE_VALUE_POLICY_CLAMP_TO_ZERO" => Some(Self::ClampToZero),
3768 "NEGATIVE_VALUE_POLICY_EXCLUDE" => Some(Self::Exclude),
3769 _ => None,
3770 }
3771 }
3772}
3773#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3774#[repr(i32)]
3775pub enum PointLimitOrder {
3776 Unspecified = 0,
3777 Newest = 1,
3778 Oldest = 2,
3779}
3780impl PointLimitOrder {
3781 pub fn as_str_name(&self) -> &'static str {
3786 match self {
3787 Self::Unspecified => "POINT_LIMIT_ORDER_UNSPECIFIED",
3788 Self::Newest => "POINT_LIMIT_ORDER_NEWEST",
3789 Self::Oldest => "POINT_LIMIT_ORDER_OLDEST",
3790 }
3791 }
3792 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3794 match value {
3795 "POINT_LIMIT_ORDER_UNSPECIFIED" => Some(Self::Unspecified),
3796 "POINT_LIMIT_ORDER_NEWEST" => Some(Self::Newest),
3797 "POINT_LIMIT_ORDER_OLDEST" => Some(Self::Oldest),
3798 _ => None,
3799 }
3800 }
3801}
3802#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3803#[repr(i32)]
3804pub enum ApproximateComparisonOperation {
3805 Unspecified = 0,
3806 EqualTo = 1,
3807 NotEqualTo = 2,
3808}
3809impl ApproximateComparisonOperation {
3810 pub fn as_str_name(&self) -> &'static str {
3815 match self {
3816 Self::Unspecified => "APPROXIMATE_COMPARISON_OPERATION_UNSPECIFIED",
3817 Self::EqualTo => "APPROXIMATE_COMPARISON_OPERATION_EQUAL_TO",
3818 Self::NotEqualTo => "APPROXIMATE_COMPARISON_OPERATION_NOT_EQUAL_TO",
3819 }
3820 }
3821 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3823 match value {
3824 "APPROXIMATE_COMPARISON_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3825 "APPROXIMATE_COMPARISON_OPERATION_EQUAL_TO" => Some(Self::EqualTo),
3826 "APPROXIMATE_COMPARISON_OPERATION_NOT_EQUAL_TO" => Some(Self::NotEqualTo),
3827 _ => None,
3828 }
3829 }
3830}
3831#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3832#[repr(i32)]
3833pub enum DuplicateMergeOperation {
3834 Unspecified = 0,
3835 Min = 1,
3836 Max = 2,
3837 Mean = 3,
3838 Sum = 4,
3839 Count = 5,
3840 StandardDeviation = 6,
3841 RootMeanSquare = 7,
3842 Reject = 8,
3843}
3844impl DuplicateMergeOperation {
3845 pub fn as_str_name(&self) -> &'static str {
3850 match self {
3851 Self::Unspecified => "DUPLICATE_MERGE_OPERATION_UNSPECIFIED",
3852 Self::Min => "DUPLICATE_MERGE_OPERATION_MIN",
3853 Self::Max => "DUPLICATE_MERGE_OPERATION_MAX",
3854 Self::Mean => "DUPLICATE_MERGE_OPERATION_MEAN",
3855 Self::Sum => "DUPLICATE_MERGE_OPERATION_SUM",
3856 Self::Count => "DUPLICATE_MERGE_OPERATION_COUNT",
3857 Self::StandardDeviation => "DUPLICATE_MERGE_OPERATION_STANDARD_DEVIATION",
3858 Self::RootMeanSquare => "DUPLICATE_MERGE_OPERATION_ROOT_MEAN_SQUARE",
3859 Self::Reject => "DUPLICATE_MERGE_OPERATION_REJECT",
3860 }
3861 }
3862 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3864 match value {
3865 "DUPLICATE_MERGE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3866 "DUPLICATE_MERGE_OPERATION_MIN" => Some(Self::Min),
3867 "DUPLICATE_MERGE_OPERATION_MAX" => Some(Self::Max),
3868 "DUPLICATE_MERGE_OPERATION_MEAN" => Some(Self::Mean),
3869 "DUPLICATE_MERGE_OPERATION_SUM" => Some(Self::Sum),
3870 "DUPLICATE_MERGE_OPERATION_COUNT" => Some(Self::Count),
3871 "DUPLICATE_MERGE_OPERATION_STANDARD_DEVIATION" => {
3872 Some(Self::StandardDeviation)
3873 }
3874 "DUPLICATE_MERGE_OPERATION_ROOT_MEAN_SQUARE" => Some(Self::RootMeanSquare),
3875 "DUPLICATE_MERGE_OPERATION_REJECT" => Some(Self::Reject),
3876 _ => None,
3877 }
3878 }
3879}
3880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3881#[repr(i32)]
3882pub enum LiteralBitwiseOperation {
3883 Unspecified = 0,
3884 And = 1,
3885 Or = 2,
3886 Xor = 3,
3887}
3888impl LiteralBitwiseOperation {
3889 pub fn as_str_name(&self) -> &'static str {
3894 match self {
3895 Self::Unspecified => "LITERAL_BITWISE_OPERATION_UNSPECIFIED",
3896 Self::And => "LITERAL_BITWISE_OPERATION_AND",
3897 Self::Or => "LITERAL_BITWISE_OPERATION_OR",
3898 Self::Xor => "LITERAL_BITWISE_OPERATION_XOR",
3899 }
3900 }
3901 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3903 match value {
3904 "LITERAL_BITWISE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3905 "LITERAL_BITWISE_OPERATION_AND" => Some(Self::And),
3906 "LITERAL_BITWISE_OPERATION_OR" => Some(Self::Or),
3907 "LITERAL_BITWISE_OPERATION_XOR" => Some(Self::Xor),
3908 _ => None,
3909 }
3910 }
3911}
3912#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3913#[repr(i32)]
3914pub enum ShiftDirection {
3915 Unspecified = 0,
3916 Left = 1,
3917 Right = 2,
3918}
3919impl ShiftDirection {
3920 pub fn as_str_name(&self) -> &'static str {
3925 match self {
3926 Self::Unspecified => "SHIFT_DIRECTION_UNSPECIFIED",
3927 Self::Left => "SHIFT_DIRECTION_LEFT",
3928 Self::Right => "SHIFT_DIRECTION_RIGHT",
3929 }
3930 }
3931 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3933 match value {
3934 "SHIFT_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
3935 "SHIFT_DIRECTION_LEFT" => Some(Self::Left),
3936 "SHIFT_DIRECTION_RIGHT" => Some(Self::Right),
3937 _ => None,
3938 }
3939 }
3940}
3941#[derive(Clone, PartialEq, ::prost::Message)]
3942pub struct DatasetScope {
3943 #[prost(message, optional, tag = "1")]
3944 pub dataset: ::core::option::Option<DatasetExpression>,
3945 #[prost(message, optional, tag = "2")]
3946 pub context: ::core::option::Option<ComputeContext>,
3947}
3948#[derive(Clone, PartialEq, ::prost::Message)]
3949pub struct ScalarValue {
3950 #[prost(oneof = "scalar_value::Kind", tags = "1, 2, 3")]
3951 pub kind: ::core::option::Option<scalar_value::Kind>,
3952}
3953pub mod scalar_value {
3955 #[derive(Clone, PartialEq, ::prost::Oneof)]
3956 pub enum Kind {
3957 #[prost(string, tag = "1")]
3958 StringValue(::prost::alloc::string::String),
3959 #[prost(double, tag = "2")]
3960 Float64Value(f64),
3961 #[prost(int64, tag = "3")]
3962 Int64Value(i64),
3963 }
3964}
3965#[derive(Clone, PartialEq, ::prost::Message)]
3966pub struct ComputeValue {
3967 #[prost(oneof = "compute_value::Kind", tags = "1, 2, 3")]
3968 pub kind: ::core::option::Option<compute_value::Kind>,
3969}
3970pub mod compute_value {
3972 #[derive(Clone, PartialEq, ::prost::Oneof)]
3973 pub enum Kind {
3974 #[prost(message, tag = "1")]
3975 Scalar(super::ScalarValue),
3976 #[prost(message, tag = "2")]
3977 Array(super::ComputeValueArray),
3978 #[prost(message, tag = "3")]
3979 Object(super::StructuredObject),
3980 }
3981}
3982#[derive(Clone, PartialEq, ::prost::Message)]
3983pub struct ComputeValueArray {
3984 #[prost(message, repeated, tag = "1")]
3985 pub values: ::prost::alloc::vec::Vec<NullableComputeValue>,
3986}
3987#[derive(Clone, PartialEq, ::prost::Message)]
3988pub struct NullableComputeValue {
3989 #[prost(oneof = "nullable_compute_value::Kind", tags = "1, 2")]
3990 pub kind: ::core::option::Option<nullable_compute_value::Kind>,
3991}
3992pub mod nullable_compute_value {
3994 #[derive(Clone, PartialEq, ::prost::Oneof)]
3995 pub enum Kind {
3996 #[prost(message, tag = "1")]
3997 Value(super::ComputeValue),
3998 #[prost(
3999 enumeration = "super::super::super::super::google::protobuf::NullValue",
4000 tag = "2"
4001 )]
4002 NullValue(i32),
4003 }
4004}
4005#[derive(Clone, PartialEq, ::prost::Message)]
4006pub struct StructuredObject {
4007 #[prost(map = "string, message", tag = "1")]
4008 pub fields: ::std::collections::HashMap<
4009 ::prost::alloc::string::String,
4010 StructuredFieldValue,
4011 >,
4012}
4013#[derive(Clone, PartialEq, ::prost::Message)]
4014pub struct StructuredFieldValue {
4015 #[prost(oneof = "structured_field_value::Kind", tags = "1, 2, 3, 4, 5, 6, 7")]
4016 pub kind: ::core::option::Option<structured_field_value::Kind>,
4017}
4018pub mod structured_field_value {
4020 #[derive(Clone, PartialEq, ::prost::Oneof)]
4021 pub enum Kind {
4022 #[prost(message, tag = "1")]
4023 Scalar(super::ScalarValue),
4024 #[prost(
4025 enumeration = "super::super::super::super::google::protobuf::NullValue",
4026 tag = "2"
4027 )]
4028 NullValue(i32),
4029 #[prost(bool, tag = "3")]
4030 BooleanValue(bool),
4031 #[prost(uint64, tag = "4")]
4032 Uint64Value(u64),
4033 #[prost(message, tag = "5")]
4034 ArbitraryInteger(super::ArbitraryInteger),
4035 #[prost(message, tag = "6")]
4036 Object(super::StructuredObject),
4037 #[prost(message, tag = "7")]
4038 Array(super::StructuredArray),
4039 }
4040}
4041#[derive(Clone, PartialEq, ::prost::Message)]
4042pub struct StructuredArray {
4043 #[prost(message, repeated, tag = "1")]
4044 pub values: ::prost::alloc::vec::Vec<StructuredFieldValue>,
4045}
4046#[derive(Clone, PartialEq, ::prost::Message)]
4047pub struct ArbitraryInteger {
4048 #[prost(string, tag = "1")]
4049 pub decimal: ::prost::alloc::string::String,
4050}
4051#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4052pub struct ResultInterval {
4053 #[prost(message, optional, tag = "1")]
4054 pub start: ::core::option::Option<super::super::types::time::Timestamp>,
4055 #[prost(message, optional, tag = "2")]
4056 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
4057 #[prost(message, optional, tag = "3")]
4058 pub value: ::core::option::Option<IntervalValue>,
4059}
4060#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4061pub struct IntervalValue {
4062 #[prost(oneof = "interval_value::Kind", tags = "1, 2, 3")]
4063 pub kind: ::core::option::Option<interval_value::Kind>,
4064}
4065pub mod interval_value {
4067 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
4068 pub enum Kind {
4069 #[prost(double, tag = "1")]
4070 Aggregate(f64),
4071 #[prost(message, tag = "2")]
4072 Statistics(super::IntervalStatistics),
4073 #[prost(message, tag = "3")]
4074 NoPoints(super::NoPointsInInterval),
4075 }
4076}
4077#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4078pub struct NoPointsInInterval {}
4079#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4080pub struct IntervalStatistics {
4081 #[prost(double, tag = "1")]
4082 pub mean: f64,
4083 #[prost(double, tag = "2")]
4084 pub min: f64,
4085 #[prost(double, tag = "3")]
4086 pub max: f64,
4087 #[prost(double, tag = "4")]
4088 pub standard_deviation: f64,
4089 #[prost(double, tag = "5")]
4090 pub count: f64,
4091 #[prost(double, tag = "6")]
4092 pub sum: f64,
4093 #[prost(double, optional, tag = "7")]
4094 pub root_mean_square: ::core::option::Option<f64>,
4095}
4096#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4097pub struct NumericSample {
4098 #[prost(message, optional, tag = "1")]
4099 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
4100 #[prost(double, tag = "2")]
4101 pub value: f64,
4102}
4103#[derive(Clone, PartialEq, ::prost::Message)]
4104pub struct CategoricalSample {
4105 #[prost(message, optional, tag = "1")]
4106 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
4107 #[prost(string, tag = "2")]
4108 pub value: ::prost::alloc::string::String,
4109}
4110#[derive(Clone, PartialEq, ::prost::Message)]
4111pub struct ValueSample {
4112 #[prost(message, optional, tag = "1")]
4113 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
4114 #[prost(message, optional, tag = "2")]
4115 pub value: ::core::option::Option<ComputeValue>,
4116 #[prost(bool, tag = "3")]
4117 pub precision_loss: bool,
4118}
4119#[derive(Clone, PartialEq, ::prost::Message)]
4120pub struct LogSample {
4121 #[prost(message, optional, tag = "1")]
4122 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
4123 #[prost(string, tag = "2")]
4124 pub message: ::prost::alloc::string::String,
4125 #[prost(map = "string, string", tag = "3")]
4126 pub attributes: ::std::collections::HashMap<
4127 ::prost::alloc::string::String,
4128 ::prost::alloc::string::String,
4129 >,
4130 #[prost(string, tag = "4")]
4131 pub id: ::prost::alloc::string::String,
4132}
4133#[derive(Clone, PartialEq, ::prost::Message)]
4134pub struct ResultGrouping {
4135 #[prost(map = "string, string", tag = "1")]
4136 pub tags: ::std::collections::HashMap<
4137 ::prost::alloc::string::String,
4138 ::prost::alloc::string::String,
4139 >,
4140}
4141#[derive(Clone, PartialEq, ::prost::Message)]
4142pub struct ResultGroupingKeys {
4143 #[prost(string, repeated, tag = "1")]
4144 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4145}
4146#[derive(Clone, PartialEq, ::prost::Message)]
4147pub struct ArrowResult {
4148 #[prost(bytes = "vec", tag = "1")]
4149 pub ipc_stream: ::prost::alloc::vec::Vec<u8>,
4150 #[prost(enumeration = "ArrowResultShape", tag = "2")]
4151 pub shape: i32,
4152 #[prost(message, optional, tag = "3")]
4153 pub grouping_keys: ::core::option::Option<ResultGroupingKeys>,
4154 #[prost(string, tag = "4")]
4155 pub next_page_token: ::prost::alloc::string::String,
4156}
4157#[derive(Clone, PartialEq, ::prost::Message)]
4158pub struct ComputationFailure {
4159 #[prost(string, tag = "1")]
4160 pub error_type: ::prost::alloc::string::String,
4161 #[prost(int32, tag = "2")]
4162 pub http_status_code: i32,
4163}
4164#[derive(Clone, PartialEq, ::prost::Message)]
4165pub struct ChannelUnitReference {
4166 #[prost(string, tag = "1")]
4167 pub data_source_rid: ::prost::alloc::string::String,
4168 #[prost(string, tag = "2")]
4169 pub channel: ::prost::alloc::string::String,
4170}
4171#[derive(Clone, PartialEq, ::prost::Message)]
4172pub struct MissingInputUnits {
4173 #[deprecated]
4174 #[prost(string, repeated, tag = "1")]
4175 pub logical_series_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4176 #[prost(message, repeated, tag = "2")]
4177 pub channels: ::prost::alloc::vec::Vec<ChannelUnitReference>,
4178}
4179#[derive(Clone, PartialEq, ::prost::Message)]
4180pub struct IncompatibleUnitCalculation {
4181 #[prost(enumeration = "UnitCalculationOperation", tag = "1")]
4182 pub operation: i32,
4183 #[prost(string, repeated, tag = "2")]
4184 pub units: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4185}
4186#[derive(Clone, PartialEq, ::prost::Message)]
4187pub struct UnitCalculationIssue {
4188 #[prost(oneof = "unit_calculation_issue::Kind", tags = "1, 2, 3")]
4189 pub kind: ::core::option::Option<unit_calculation_issue::Kind>,
4190}
4191pub mod unit_calculation_issue {
4193 #[derive(Clone, PartialEq, ::prost::Oneof)]
4194 pub enum Kind {
4195 #[prost(message, tag = "1")]
4196 Incompatible(super::IncompatibleUnitCalculation),
4197 #[prost(message, tag = "2")]
4198 Missing(super::MissingInputUnits),
4199 #[prost(message, tag = "3")]
4200 Error(super::super::super::types::SerializableError),
4201 }
4202}
4203#[derive(Clone, PartialEq, ::prost::Message)]
4204pub struct UnavailableUnit {
4205 #[prost(message, repeated, tag = "1")]
4206 pub issues: ::prost::alloc::vec::Vec<UnitCalculationIssue>,
4207}
4208#[derive(Clone, PartialEq, ::prost::Message)]
4209pub struct ComputedUnit {
4210 #[prost(oneof = "computed_unit::Kind", tags = "1, 2")]
4211 pub kind: ::core::option::Option<computed_unit::Kind>,
4212}
4213pub mod computed_unit {
4215 #[derive(Clone, PartialEq, ::prost::Oneof)]
4216 pub enum Kind {
4217 #[prost(string, tag = "1")]
4218 Symbol(::prost::alloc::string::String),
4219 #[prost(message, tag = "2")]
4220 Unavailable(super::UnavailableUnit),
4221 }
4222}
4223#[derive(Clone, PartialEq, ::prost::Message)]
4224pub struct CartesianComputedUnits {
4225 #[prost(message, optional, tag = "1")]
4226 pub x: ::core::option::Option<ComputedUnit>,
4227 #[prost(message, optional, tag = "2")]
4228 pub y: ::core::option::Option<ComputedUnit>,
4229}
4230#[derive(Clone, PartialEq, ::prost::Message)]
4231pub struct Cartesian3dComputedUnits {
4232 #[prost(message, optional, tag = "1")]
4233 pub x: ::core::option::Option<ComputedUnit>,
4234 #[prost(message, optional, tag = "2")]
4235 pub y: ::core::option::Option<ComputedUnit>,
4236 #[prost(message, optional, tag = "3")]
4237 pub z: ::core::option::Option<ComputedUnit>,
4238}
4239#[derive(Clone, PartialEq, ::prost::Message)]
4240pub struct MultivariateComputedUnits {
4241 #[prost(message, repeated, tag = "1")]
4242 pub units: ::prost::alloc::vec::Vec<ComputedUnit>,
4243}
4244#[derive(Clone, PartialEq, ::prost::Message)]
4245pub struct ComputationUnits {
4246 #[prost(oneof = "computation_units::Kind", tags = "1, 2, 3, 4")]
4247 pub kind: ::core::option::Option<computation_units::Kind>,
4248}
4249pub mod computation_units {
4251 #[derive(Clone, PartialEq, ::prost::Oneof)]
4252 pub enum Kind {
4253 #[prost(message, tag = "1")]
4254 Single(super::ComputedUnit),
4255 #[prost(message, tag = "2")]
4256 Cartesian(super::CartesianComputedUnits),
4257 #[prost(message, tag = "3")]
4258 Cartesian3d(super::Cartesian3dComputedUnits),
4259 #[prost(message, tag = "4")]
4260 Multivariate(super::MultivariateComputedUnits),
4261 }
4262}
4263#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4264#[repr(i32)]
4265pub enum ArrowResultShape {
4266 Unspecified = 0,
4267 Numeric = 1,
4268 NumericBuckets = 2,
4269 Categorical = 3,
4270 CategoricalBuckets = 4,
4271 Log = 5,
4272 Struct = 6,
4273 StructBuckets = 7,
4274 FullResolution = 8,
4275 MultivariateBuckets = 9,
4276 NumericArrayBuckets = 10,
4277 CategoricalArrayBuckets = 11,
4278}
4279impl ArrowResultShape {
4280 pub fn as_str_name(&self) -> &'static str {
4285 match self {
4286 Self::Unspecified => "ARROW_RESULT_SHAPE_UNSPECIFIED",
4287 Self::Numeric => "ARROW_RESULT_SHAPE_NUMERIC",
4288 Self::NumericBuckets => "ARROW_RESULT_SHAPE_NUMERIC_BUCKETS",
4289 Self::Categorical => "ARROW_RESULT_SHAPE_CATEGORICAL",
4290 Self::CategoricalBuckets => "ARROW_RESULT_SHAPE_CATEGORICAL_BUCKETS",
4291 Self::Log => "ARROW_RESULT_SHAPE_LOG",
4292 Self::Struct => "ARROW_RESULT_SHAPE_STRUCT",
4293 Self::StructBuckets => "ARROW_RESULT_SHAPE_STRUCT_BUCKETS",
4294 Self::FullResolution => "ARROW_RESULT_SHAPE_FULL_RESOLUTION",
4295 Self::MultivariateBuckets => "ARROW_RESULT_SHAPE_MULTIVARIATE_BUCKETS",
4296 Self::NumericArrayBuckets => "ARROW_RESULT_SHAPE_NUMERIC_ARRAY_BUCKETS",
4297 Self::CategoricalArrayBuckets => {
4298 "ARROW_RESULT_SHAPE_CATEGORICAL_ARRAY_BUCKETS"
4299 }
4300 }
4301 }
4302 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4304 match value {
4305 "ARROW_RESULT_SHAPE_UNSPECIFIED" => Some(Self::Unspecified),
4306 "ARROW_RESULT_SHAPE_NUMERIC" => Some(Self::Numeric),
4307 "ARROW_RESULT_SHAPE_NUMERIC_BUCKETS" => Some(Self::NumericBuckets),
4308 "ARROW_RESULT_SHAPE_CATEGORICAL" => Some(Self::Categorical),
4309 "ARROW_RESULT_SHAPE_CATEGORICAL_BUCKETS" => Some(Self::CategoricalBuckets),
4310 "ARROW_RESULT_SHAPE_LOG" => Some(Self::Log),
4311 "ARROW_RESULT_SHAPE_STRUCT" => Some(Self::Struct),
4312 "ARROW_RESULT_SHAPE_STRUCT_BUCKETS" => Some(Self::StructBuckets),
4313 "ARROW_RESULT_SHAPE_FULL_RESOLUTION" => Some(Self::FullResolution),
4314 "ARROW_RESULT_SHAPE_MULTIVARIATE_BUCKETS" => Some(Self::MultivariateBuckets),
4315 "ARROW_RESULT_SHAPE_NUMERIC_ARRAY_BUCKETS" => Some(Self::NumericArrayBuckets),
4316 "ARROW_RESULT_SHAPE_CATEGORICAL_ARRAY_BUCKETS" => {
4317 Some(Self::CategoricalArrayBuckets)
4318 }
4319 _ => None,
4320 }
4321 }
4322}
4323#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4324#[repr(i32)]
4325pub enum UnitCalculationOperation {
4326 Unspecified = 0,
4327 UnitAsExponent = 1,
4328 NonIntegerAsExponent = 2,
4329 FloorDivision = 3,
4330 Modulo = 4,
4331 CrossoverComparison = 5,
4332 Max = 6,
4333 Min = 7,
4334 Mean = 8,
4335 Union = 9,
4336 Addition = 10,
4337 Subtraction = 11,
4338 UnitConversion = 12,
4339 Comparison = 13,
4340 TernaryOperator = 14,
4341}
4342impl UnitCalculationOperation {
4343 pub fn as_str_name(&self) -> &'static str {
4348 match self {
4349 Self::Unspecified => "UNIT_CALCULATION_OPERATION_UNSPECIFIED",
4350 Self::UnitAsExponent => "UNIT_CALCULATION_OPERATION_UNIT_AS_EXPONENT",
4351 Self::NonIntegerAsExponent => {
4352 "UNIT_CALCULATION_OPERATION_NON_INTEGER_AS_EXPONENT"
4353 }
4354 Self::FloorDivision => "UNIT_CALCULATION_OPERATION_FLOOR_DIVISION",
4355 Self::Modulo => "UNIT_CALCULATION_OPERATION_MODULO",
4356 Self::CrossoverComparison => {
4357 "UNIT_CALCULATION_OPERATION_CROSSOVER_COMPARISON"
4358 }
4359 Self::Max => "UNIT_CALCULATION_OPERATION_MAX",
4360 Self::Min => "UNIT_CALCULATION_OPERATION_MIN",
4361 Self::Mean => "UNIT_CALCULATION_OPERATION_MEAN",
4362 Self::Union => "UNIT_CALCULATION_OPERATION_UNION",
4363 Self::Addition => "UNIT_CALCULATION_OPERATION_ADDITION",
4364 Self::Subtraction => "UNIT_CALCULATION_OPERATION_SUBTRACTION",
4365 Self::UnitConversion => "UNIT_CALCULATION_OPERATION_UNIT_CONVERSION",
4366 Self::Comparison => "UNIT_CALCULATION_OPERATION_COMPARISON",
4367 Self::TernaryOperator => "UNIT_CALCULATION_OPERATION_TERNARY_OPERATOR",
4368 }
4369 }
4370 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4372 match value {
4373 "UNIT_CALCULATION_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4374 "UNIT_CALCULATION_OPERATION_UNIT_AS_EXPONENT" => Some(Self::UnitAsExponent),
4375 "UNIT_CALCULATION_OPERATION_NON_INTEGER_AS_EXPONENT" => {
4376 Some(Self::NonIntegerAsExponent)
4377 }
4378 "UNIT_CALCULATION_OPERATION_FLOOR_DIVISION" => Some(Self::FloorDivision),
4379 "UNIT_CALCULATION_OPERATION_MODULO" => Some(Self::Modulo),
4380 "UNIT_CALCULATION_OPERATION_CROSSOVER_COMPARISON" => {
4381 Some(Self::CrossoverComparison)
4382 }
4383 "UNIT_CALCULATION_OPERATION_MAX" => Some(Self::Max),
4384 "UNIT_CALCULATION_OPERATION_MIN" => Some(Self::Min),
4385 "UNIT_CALCULATION_OPERATION_MEAN" => Some(Self::Mean),
4386 "UNIT_CALCULATION_OPERATION_UNION" => Some(Self::Union),
4387 "UNIT_CALCULATION_OPERATION_ADDITION" => Some(Self::Addition),
4388 "UNIT_CALCULATION_OPERATION_SUBTRACTION" => Some(Self::Subtraction),
4389 "UNIT_CALCULATION_OPERATION_UNIT_CONVERSION" => Some(Self::UnitConversion),
4390 "UNIT_CALCULATION_OPERATION_COMPARISON" => Some(Self::Comparison),
4391 "UNIT_CALCULATION_OPERATION_TERNARY_OPERATOR" => Some(Self::TernaryOperator),
4392 _ => None,
4393 }
4394 }
4395}
4396#[derive(Clone, PartialEq, ::prost::Message)]
4397pub struct NumericSamples {
4398 #[prost(message, repeated, tag = "1")]
4399 pub samples: ::prost::alloc::vec::Vec<NumericSample>,
4400 #[prost(string, tag = "2")]
4401 pub next_page_token: ::prost::alloc::string::String,
4402}
4403#[derive(Clone, PartialEq, ::prost::Message)]
4404pub struct NumericBucketStatistics {
4405 #[prost(double, optional, tag = "1")]
4406 pub min: ::core::option::Option<f64>,
4407 #[prost(double, optional, tag = "2")]
4408 pub max: ::core::option::Option<f64>,
4409 #[prost(double, optional, tag = "3")]
4410 pub mean: ::core::option::Option<f64>,
4411 #[prost(int64, optional, tag = "4")]
4412 pub count: ::core::option::Option<i64>,
4413 #[prost(double, optional, tag = "5")]
4414 pub variance: ::core::option::Option<f64>,
4415 #[prost(message, optional, tag = "6")]
4416 pub first: ::core::option::Option<NumericSample>,
4417 #[prost(message, optional, tag = "7")]
4418 pub last: ::core::option::Option<NumericSample>,
4419 #[prost(map = "string, double", tag = "8")]
4420 pub aggregations: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
4421}
4422#[derive(Clone, PartialEq, ::prost::Message)]
4423pub struct NumericResultBucket {
4424 #[prost(message, optional, tag = "1")]
4425 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
4426 #[prost(message, optional, tag = "2")]
4427 pub statistics: ::core::option::Option<NumericBucketStatistics>,
4428}
4429#[derive(Clone, PartialEq, ::prost::Message)]
4430pub struct NumericBuckets {
4431 #[prost(message, repeated, tag = "1")]
4432 pub buckets: ::prost::alloc::vec::Vec<NumericResultBucket>,
4433}
4434#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4435pub struct HistogramInputCount {
4436 #[prost(int64, tag = "1")]
4437 pub count: i64,
4438}
4439#[derive(Clone, PartialEq, ::prost::Message)]
4440pub struct NumericHistogramBin {
4441 #[prost(double, tag = "1")]
4442 pub lower_bound: f64,
4443 #[prost(double, tag = "2")]
4444 pub upper_bound: f64,
4445 #[prost(map = "string, message", tag = "3")]
4446 pub counts_by_input: ::std::collections::HashMap<
4447 ::prost::alloc::string::String,
4448 HistogramInputCount,
4449 >,
4450}
4451#[derive(Clone, PartialEq, ::prost::Message)]
4452pub struct NumericHistogram {
4453 #[prost(message, repeated, tag = "1")]
4454 pub bins: ::prost::alloc::vec::Vec<NumericHistogramBin>,
4455}
4456#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4457pub struct CategoricalCodeSample {
4458 #[prost(message, optional, tag = "1")]
4459 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
4460 #[prost(int32, tag = "2")]
4461 pub category_index: i32,
4462}
4463#[derive(Clone, PartialEq, ::prost::Message)]
4464pub struct CategoricalSamples {
4465 #[prost(string, repeated, tag = "1")]
4466 pub categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4467 #[prost(message, repeated, tag = "2")]
4468 pub samples: ::prost::alloc::vec::Vec<CategoricalCodeSample>,
4469 #[prost(string, tag = "3")]
4470 pub next_page_token: ::prost::alloc::string::String,
4471}
4472#[derive(Clone, PartialEq, ::prost::Message)]
4473pub struct CategoricalBucketStatistics {
4474 #[prost(map = "int32, int64", tag = "1")]
4475 pub count_by_category_index: ::std::collections::HashMap<i32, i64>,
4476 #[prost(message, optional, tag = "2")]
4477 pub first: ::core::option::Option<CategoricalCodeSample>,
4478 #[prost(message, optional, tag = "3")]
4479 pub last: ::core::option::Option<CategoricalCodeSample>,
4480}
4481#[derive(Clone, PartialEq, ::prost::Message)]
4482pub struct CategoricalResultBucket {
4483 #[prost(message, optional, tag = "1")]
4484 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
4485 #[prost(message, optional, tag = "2")]
4486 pub statistics: ::core::option::Option<CategoricalBucketStatistics>,
4487}
4488#[derive(Clone, PartialEq, ::prost::Message)]
4489pub struct CategoricalBuckets {
4490 #[prost(string, repeated, tag = "1")]
4491 pub categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4492 #[prost(message, repeated, tag = "2")]
4493 pub buckets: ::prost::alloc::vec::Vec<CategoricalResultBucket>,
4494}
4495#[derive(Clone, PartialEq, ::prost::Message)]
4496pub struct CategoricalHistogramBin {
4497 #[prost(string, tag = "1")]
4498 pub value: ::prost::alloc::string::String,
4499 #[prost(map = "string, message", tag = "2")]
4500 pub counts_by_input: ::std::collections::HashMap<
4501 ::prost::alloc::string::String,
4502 HistogramInputCount,
4503 >,
4504}
4505#[derive(Clone, PartialEq, ::prost::Message)]
4506pub struct CategoricalHistogram {
4507 #[prost(message, repeated, tag = "1")]
4508 pub bins: ::prost::alloc::vec::Vec<CategoricalHistogramBin>,
4509}
4510#[derive(Clone, PartialEq, ::prost::Message)]
4511pub struct LogSamples {
4512 #[prost(message, repeated, tag = "1")]
4513 pub samples: ::prost::alloc::vec::Vec<LogSample>,
4514 #[prost(string, tag = "2")]
4515 pub next_page_token: ::prost::alloc::string::String,
4516}
4517#[derive(Clone, PartialEq, ::prost::Message)]
4518pub struct SeriesSummarization {
4519 #[prost(oneof = "series_summarization::Kind", tags = "1, 2, 3, 4, 5")]
4520 pub kind: ::core::option::Option<series_summarization::Kind>,
4521}
4522pub mod series_summarization {
4524 #[derive(Clone, PartialEq, ::prost::Oneof)]
4525 pub enum Kind {
4526 #[prost(message, tag = "1")]
4527 FixedResolution(super::FixedResolutionSummary),
4528 #[prost(message, tag = "2")]
4529 BucketCount(super::BucketCountSummary),
4530 #[prost(message, tag = "3")]
4531 LargestTriangleThreeBuckets(super::LargestTriangleThreeBucketsSummary),
4532 #[prost(message, tag = "4")]
4533 PointPage(super::PointPageSummary),
4534 #[prost(message, tag = "5")]
4535 Truncated(super::TruncatedSummary),
4536 }
4537}
4538#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4539pub struct FixedResolutionSummary {
4540 #[prost(int64, tag = "1")]
4541 pub resolution_nanos: i64,
4542}
4543#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4544pub struct BucketCountSummary {
4545 #[prost(int32, tag = "1")]
4546 pub bucket_count: i32,
4547}
4548#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4549pub struct LargestTriangleThreeBucketsSummary {
4550 #[prost(int32, tag = "1")]
4551 pub max_points_per_group: i32,
4552}
4553#[derive(Clone, PartialEq, ::prost::Message)]
4554pub struct PointPageSummary {
4555 #[prost(uint32, tag = "1")]
4556 pub page_size: u32,
4557 #[prost(enumeration = "ComputeTimeDirection", tag = "2")]
4558 pub direction: i32,
4559 #[prost(string, tag = "3")]
4560 pub page_token: ::prost::alloc::string::String,
4561}
4562#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4563pub struct TruncatedSummary {
4564 #[prost(int32, tag = "1")]
4565 pub max_points: i32,
4566}
4567#[derive(Clone, PartialEq, ::prost::Message)]
4568pub struct NumericOutputSelection {
4569 #[prost(message, optional, tag = "1")]
4570 pub columns: ::core::option::Option<NumericOutputColumns>,
4571 #[prost(map = "string, message", tag = "2")]
4572 pub named_reductions: ::std::collections::HashMap<
4573 ::prost::alloc::string::String,
4574 NumericReduction,
4575 >,
4576}
4577#[derive(Clone, PartialEq, ::prost::Message)]
4578pub struct NumericOutputColumns {
4579 #[prost(message, repeated, tag = "1")]
4580 pub columns: ::prost::alloc::vec::Vec<NumericOutputColumn>,
4581}
4582#[derive(Clone, PartialEq, ::prost::Message)]
4583pub struct NumericOutputColumn {
4584 #[prost(oneof = "numeric_output_column::Kind", tags = "1, 2")]
4585 pub kind: ::core::option::Option<numeric_output_column::Kind>,
4586}
4587pub mod numeric_output_column {
4589 #[derive(Clone, PartialEq, ::prost::Oneof)]
4590 pub enum Kind {
4591 #[prost(enumeration = "super::NumericOutputStatistic", tag = "1")]
4592 Statistic(i32),
4593 #[prost(message, tag = "2")]
4594 Percentile(super::PercentileOutputColumn),
4595 }
4596}
4597#[derive(Clone, PartialEq, ::prost::Message)]
4598pub struct PercentileOutputColumn {
4599 #[prost(message, optional, tag = "1")]
4600 pub percentile: ::core::option::Option<DoubleConstant>,
4601 #[prost(string, optional, tag = "2")]
4602 pub output_name: ::core::option::Option<::prost::alloc::string::String>,
4603}
4604#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4605pub struct StftConfiguration {
4606 #[prost(enumeration = "ComputeFftWindow", optional, tag = "1")]
4607 pub window: ::core::option::Option<i32>,
4608 #[prost(enumeration = "ComputeWindowSymmetry", optional, tag = "2")]
4609 pub window_symmetry: ::core::option::Option<i32>,
4610 #[prost(double, optional, tag = "3")]
4611 pub sampling_frequency: ::core::option::Option<f64>,
4612 #[prost(int32, optional, tag = "4")]
4613 pub segment_length: ::core::option::Option<i32>,
4614 #[prost(int32, optional, tag = "5")]
4615 pub overlap_length: ::core::option::Option<i32>,
4616 #[prost(int32, optional, tag = "6")]
4617 pub fft_length: ::core::option::Option<i32>,
4618 #[prost(enumeration = "ComputeDetrend", optional, tag = "7")]
4619 pub detrend: ::core::option::Option<i32>,
4620}
4621#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4622pub struct FrequencyBucketing {
4623 #[prost(int32, tag = "1")]
4624 pub bucket_count: i32,
4625 #[prost(double, optional, tag = "2")]
4626 pub min_frequency: ::core::option::Option<f64>,
4627 #[prost(double, optional, tag = "3")]
4628 pub max_frequency: ::core::option::Option<f64>,
4629}
4630#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4631pub struct SpectrogramBucketing {
4632 #[prost(int32, optional, tag = "1")]
4633 pub max_time_buckets: ::core::option::Option<i32>,
4634 #[prost(int32, optional, tag = "2")]
4635 pub max_frequency_buckets: ::core::option::Option<i32>,
4636 #[prost(double, optional, tag = "3")]
4637 pub min_frequency: ::core::option::Option<f64>,
4638 #[prost(double, optional, tag = "4")]
4639 pub max_frequency: ::core::option::Option<f64>,
4640 #[prost(enumeration = "SpectrogramReduction", optional, tag = "5")]
4641 pub time_reduction: ::core::option::Option<i32>,
4642 #[prost(enumeration = "SpectrogramReduction", optional, tag = "6")]
4643 pub frequency_reduction: ::core::option::Option<i32>,
4644}
4645#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4646#[repr(i32)]
4647pub enum ComputeOutputFormat {
4648 Unspecified = 0,
4649 Typed = 1,
4650 Arrow = 2,
4651}
4652impl ComputeOutputFormat {
4653 pub fn as_str_name(&self) -> &'static str {
4658 match self {
4659 Self::Unspecified => "COMPUTE_OUTPUT_FORMAT_UNSPECIFIED",
4660 Self::Typed => "COMPUTE_OUTPUT_FORMAT_TYPED",
4661 Self::Arrow => "COMPUTE_OUTPUT_FORMAT_ARROW",
4662 }
4663 }
4664 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4666 match value {
4667 "COMPUTE_OUTPUT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
4668 "COMPUTE_OUTPUT_FORMAT_TYPED" => Some(Self::Typed),
4669 "COMPUTE_OUTPUT_FORMAT_ARROW" => Some(Self::Arrow),
4670 _ => None,
4671 }
4672 }
4673}
4674#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4675#[repr(i32)]
4676pub enum ComputeTimeDirection {
4677 Unspecified = 0,
4678 Ascending = 1,
4679 Descending = 2,
4680}
4681impl ComputeTimeDirection {
4682 pub fn as_str_name(&self) -> &'static str {
4687 match self {
4688 Self::Unspecified => "COMPUTE_TIME_DIRECTION_UNSPECIFIED",
4689 Self::Ascending => "COMPUTE_TIME_DIRECTION_ASCENDING",
4690 Self::Descending => "COMPUTE_TIME_DIRECTION_DESCENDING",
4691 }
4692 }
4693 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4695 match value {
4696 "COMPUTE_TIME_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
4697 "COMPUTE_TIME_DIRECTION_ASCENDING" => Some(Self::Ascending),
4698 "COMPUTE_TIME_DIRECTION_DESCENDING" => Some(Self::Descending),
4699 _ => None,
4700 }
4701 }
4702}
4703#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4704#[repr(i32)]
4705pub enum NumericOutputStatistic {
4706 Unspecified = 0,
4707 Min = 1,
4708 Max = 2,
4709 Mean = 3,
4710 Count = 4,
4711 Variance = 5,
4712 FirstPoint = 6,
4713 LastPoint = 7,
4714 Sum = 8,
4715 StandardDeviation = 9,
4716 RootMeanSquare = 10,
4717}
4718impl NumericOutputStatistic {
4719 pub fn as_str_name(&self) -> &'static str {
4724 match self {
4725 Self::Unspecified => "NUMERIC_OUTPUT_STATISTIC_UNSPECIFIED",
4726 Self::Min => "NUMERIC_OUTPUT_STATISTIC_MIN",
4727 Self::Max => "NUMERIC_OUTPUT_STATISTIC_MAX",
4728 Self::Mean => "NUMERIC_OUTPUT_STATISTIC_MEAN",
4729 Self::Count => "NUMERIC_OUTPUT_STATISTIC_COUNT",
4730 Self::Variance => "NUMERIC_OUTPUT_STATISTIC_VARIANCE",
4731 Self::FirstPoint => "NUMERIC_OUTPUT_STATISTIC_FIRST_POINT",
4732 Self::LastPoint => "NUMERIC_OUTPUT_STATISTIC_LAST_POINT",
4733 Self::Sum => "NUMERIC_OUTPUT_STATISTIC_SUM",
4734 Self::StandardDeviation => "NUMERIC_OUTPUT_STATISTIC_STANDARD_DEVIATION",
4735 Self::RootMeanSquare => "NUMERIC_OUTPUT_STATISTIC_ROOT_MEAN_SQUARE",
4736 }
4737 }
4738 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4740 match value {
4741 "NUMERIC_OUTPUT_STATISTIC_UNSPECIFIED" => Some(Self::Unspecified),
4742 "NUMERIC_OUTPUT_STATISTIC_MIN" => Some(Self::Min),
4743 "NUMERIC_OUTPUT_STATISTIC_MAX" => Some(Self::Max),
4744 "NUMERIC_OUTPUT_STATISTIC_MEAN" => Some(Self::Mean),
4745 "NUMERIC_OUTPUT_STATISTIC_COUNT" => Some(Self::Count),
4746 "NUMERIC_OUTPUT_STATISTIC_VARIANCE" => Some(Self::Variance),
4747 "NUMERIC_OUTPUT_STATISTIC_FIRST_POINT" => Some(Self::FirstPoint),
4748 "NUMERIC_OUTPUT_STATISTIC_LAST_POINT" => Some(Self::LastPoint),
4749 "NUMERIC_OUTPUT_STATISTIC_SUM" => Some(Self::Sum),
4750 "NUMERIC_OUTPUT_STATISTIC_STANDARD_DEVIATION" => {
4751 Some(Self::StandardDeviation)
4752 }
4753 "NUMERIC_OUTPUT_STATISTIC_ROOT_MEAN_SQUARE" => Some(Self::RootMeanSquare),
4754 _ => None,
4755 }
4756 }
4757}
4758#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4759#[repr(i32)]
4760pub enum ComputeFftWindow {
4761 Unspecified = 0,
4762 Blackman = 1,
4763 Hann = 2,
4764 Hamming = 3,
4765 Rectangular = 4,
4766}
4767impl ComputeFftWindow {
4768 pub fn as_str_name(&self) -> &'static str {
4773 match self {
4774 Self::Unspecified => "COMPUTE_FFT_WINDOW_UNSPECIFIED",
4775 Self::Blackman => "COMPUTE_FFT_WINDOW_BLACKMAN",
4776 Self::Hann => "COMPUTE_FFT_WINDOW_HANN",
4777 Self::Hamming => "COMPUTE_FFT_WINDOW_HAMMING",
4778 Self::Rectangular => "COMPUTE_FFT_WINDOW_RECTANGULAR",
4779 }
4780 }
4781 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4783 match value {
4784 "COMPUTE_FFT_WINDOW_UNSPECIFIED" => Some(Self::Unspecified),
4785 "COMPUTE_FFT_WINDOW_BLACKMAN" => Some(Self::Blackman),
4786 "COMPUTE_FFT_WINDOW_HANN" => Some(Self::Hann),
4787 "COMPUTE_FFT_WINDOW_HAMMING" => Some(Self::Hamming),
4788 "COMPUTE_FFT_WINDOW_RECTANGULAR" => Some(Self::Rectangular),
4789 _ => None,
4790 }
4791 }
4792}
4793#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4794#[repr(i32)]
4795pub enum ComputeWindowSymmetry {
4796 Unspecified = 0,
4797 DftEven = 1,
4798 Symmetric = 2,
4799}
4800impl ComputeWindowSymmetry {
4801 pub fn as_str_name(&self) -> &'static str {
4806 match self {
4807 Self::Unspecified => "COMPUTE_WINDOW_SYMMETRY_UNSPECIFIED",
4808 Self::DftEven => "COMPUTE_WINDOW_SYMMETRY_DFT_EVEN",
4809 Self::Symmetric => "COMPUTE_WINDOW_SYMMETRY_SYMMETRIC",
4810 }
4811 }
4812 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4814 match value {
4815 "COMPUTE_WINDOW_SYMMETRY_UNSPECIFIED" => Some(Self::Unspecified),
4816 "COMPUTE_WINDOW_SYMMETRY_DFT_EVEN" => Some(Self::DftEven),
4817 "COMPUTE_WINDOW_SYMMETRY_SYMMETRIC" => Some(Self::Symmetric),
4818 _ => None,
4819 }
4820 }
4821}
4822#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4823#[repr(i32)]
4824pub enum ComputeDetrend {
4825 Unspecified = 0,
4826 Constant = 1,
4827 Linear = 2,
4828 None = 3,
4829}
4830impl ComputeDetrend {
4831 pub fn as_str_name(&self) -> &'static str {
4836 match self {
4837 Self::Unspecified => "COMPUTE_DETREND_UNSPECIFIED",
4838 Self::Constant => "COMPUTE_DETREND_CONSTANT",
4839 Self::Linear => "COMPUTE_DETREND_LINEAR",
4840 Self::None => "COMPUTE_DETREND_NONE",
4841 }
4842 }
4843 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4845 match value {
4846 "COMPUTE_DETREND_UNSPECIFIED" => Some(Self::Unspecified),
4847 "COMPUTE_DETREND_CONSTANT" => Some(Self::Constant),
4848 "COMPUTE_DETREND_LINEAR" => Some(Self::Linear),
4849 "COMPUTE_DETREND_NONE" => Some(Self::None),
4850 _ => None,
4851 }
4852 }
4853}
4854#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4855#[repr(i32)]
4856pub enum ComputeMagnitudeScaling {
4857 Unspecified = 0,
4858 Linear = 1,
4859 Decibel10 = 2,
4860 Decibel20 = 3,
4861}
4862impl ComputeMagnitudeScaling {
4863 pub fn as_str_name(&self) -> &'static str {
4868 match self {
4869 Self::Unspecified => "COMPUTE_MAGNITUDE_SCALING_UNSPECIFIED",
4870 Self::Linear => "COMPUTE_MAGNITUDE_SCALING_LINEAR",
4871 Self::Decibel10 => "COMPUTE_MAGNITUDE_SCALING_DECIBEL_10",
4872 Self::Decibel20 => "COMPUTE_MAGNITUDE_SCALING_DECIBEL_20",
4873 }
4874 }
4875 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4877 match value {
4878 "COMPUTE_MAGNITUDE_SCALING_UNSPECIFIED" => Some(Self::Unspecified),
4879 "COMPUTE_MAGNITUDE_SCALING_LINEAR" => Some(Self::Linear),
4880 "COMPUTE_MAGNITUDE_SCALING_DECIBEL_10" => Some(Self::Decibel10),
4881 "COMPUTE_MAGNITUDE_SCALING_DECIBEL_20" => Some(Self::Decibel20),
4882 _ => None,
4883 }
4884 }
4885}
4886#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4887#[repr(i32)]
4888pub enum ComputeFrequencyUnit {
4889 Unspecified = 0,
4890 Hertz = 1,
4891 RadiansPerSecond = 2,
4892 CyclesPerSample = 3,
4893 RadiansPerSample = 4,
4894}
4895impl ComputeFrequencyUnit {
4896 pub fn as_str_name(&self) -> &'static str {
4901 match self {
4902 Self::Unspecified => "COMPUTE_FREQUENCY_UNIT_UNSPECIFIED",
4903 Self::Hertz => "COMPUTE_FREQUENCY_UNIT_HERTZ",
4904 Self::RadiansPerSecond => "COMPUTE_FREQUENCY_UNIT_RADIANS_PER_SECOND",
4905 Self::CyclesPerSample => "COMPUTE_FREQUENCY_UNIT_CYCLES_PER_SAMPLE",
4906 Self::RadiansPerSample => "COMPUTE_FREQUENCY_UNIT_RADIANS_PER_SAMPLE",
4907 }
4908 }
4909 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4911 match value {
4912 "COMPUTE_FREQUENCY_UNIT_UNSPECIFIED" => Some(Self::Unspecified),
4913 "COMPUTE_FREQUENCY_UNIT_HERTZ" => Some(Self::Hertz),
4914 "COMPUTE_FREQUENCY_UNIT_RADIANS_PER_SECOND" => Some(Self::RadiansPerSecond),
4915 "COMPUTE_FREQUENCY_UNIT_CYCLES_PER_SAMPLE" => Some(Self::CyclesPerSample),
4916 "COMPUTE_FREQUENCY_UNIT_RADIANS_PER_SAMPLE" => Some(Self::RadiansPerSample),
4917 _ => None,
4918 }
4919 }
4920}
4921#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4922#[repr(i32)]
4923pub enum ComputePhaseUnit {
4924 Unspecified = 0,
4925 Radians = 1,
4926 Degrees = 2,
4927}
4928impl ComputePhaseUnit {
4929 pub fn as_str_name(&self) -> &'static str {
4934 match self {
4935 Self::Unspecified => "COMPUTE_PHASE_UNIT_UNSPECIFIED",
4936 Self::Radians => "COMPUTE_PHASE_UNIT_RADIANS",
4937 Self::Degrees => "COMPUTE_PHASE_UNIT_DEGREES",
4938 }
4939 }
4940 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4942 match value {
4943 "COMPUTE_PHASE_UNIT_UNSPECIFIED" => Some(Self::Unspecified),
4944 "COMPUTE_PHASE_UNIT_RADIANS" => Some(Self::Radians),
4945 "COMPUTE_PHASE_UNIT_DEGREES" => Some(Self::Degrees),
4946 _ => None,
4947 }
4948 }
4949}
4950#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4951#[repr(i32)]
4952pub enum SpectrogramQuantity {
4953 Unspecified = 0,
4954 PowerSpectralDensity = 1,
4955 Amplitude = 2,
4956}
4957impl SpectrogramQuantity {
4958 pub fn as_str_name(&self) -> &'static str {
4963 match self {
4964 Self::Unspecified => "SPECTROGRAM_QUANTITY_UNSPECIFIED",
4965 Self::PowerSpectralDensity => "SPECTROGRAM_QUANTITY_POWER_SPECTRAL_DENSITY",
4966 Self::Amplitude => "SPECTROGRAM_QUANTITY_AMPLITUDE",
4967 }
4968 }
4969 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4971 match value {
4972 "SPECTROGRAM_QUANTITY_UNSPECIFIED" => Some(Self::Unspecified),
4973 "SPECTROGRAM_QUANTITY_POWER_SPECTRAL_DENSITY" => {
4974 Some(Self::PowerSpectralDensity)
4975 }
4976 "SPECTROGRAM_QUANTITY_AMPLITUDE" => Some(Self::Amplitude),
4977 _ => None,
4978 }
4979 }
4980}
4981#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4982#[repr(i32)]
4983pub enum SpectrogramReduction {
4984 Unspecified = 0,
4985 Mean = 1,
4986 Max = 2,
4987 GeometricMean = 3,
4988}
4989impl SpectrogramReduction {
4990 pub fn as_str_name(&self) -> &'static str {
4995 match self {
4996 Self::Unspecified => "SPECTROGRAM_REDUCTION_UNSPECIFIED",
4997 Self::Mean => "SPECTROGRAM_REDUCTION_MEAN",
4998 Self::Max => "SPECTROGRAM_REDUCTION_MAX",
4999 Self::GeometricMean => "SPECTROGRAM_REDUCTION_GEOMETRIC_MEAN",
5000 }
5001 }
5002 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5004 match value {
5005 "SPECTROGRAM_REDUCTION_UNSPECIFIED" => Some(Self::Unspecified),
5006 "SPECTROGRAM_REDUCTION_MEAN" => Some(Self::Mean),
5007 "SPECTROGRAM_REDUCTION_MAX" => Some(Self::Max),
5008 "SPECTROGRAM_REDUCTION_GEOMETRIC_MEAN" => Some(Self::GeometricMean),
5009 _ => None,
5010 }
5011 }
5012}
5013#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5014#[repr(i32)]
5015pub enum ScatterTemporalReduction {
5016 Unspecified = 0,
5017 Mean = 1,
5018 Min = 2,
5019 Max = 3,
5020 First = 4,
5021 Last = 5,
5022}
5023impl ScatterTemporalReduction {
5024 pub fn as_str_name(&self) -> &'static str {
5029 match self {
5030 Self::Unspecified => "SCATTER_TEMPORAL_REDUCTION_UNSPECIFIED",
5031 Self::Mean => "SCATTER_TEMPORAL_REDUCTION_MEAN",
5032 Self::Min => "SCATTER_TEMPORAL_REDUCTION_MIN",
5033 Self::Max => "SCATTER_TEMPORAL_REDUCTION_MAX",
5034 Self::First => "SCATTER_TEMPORAL_REDUCTION_FIRST",
5035 Self::Last => "SCATTER_TEMPORAL_REDUCTION_LAST",
5036 }
5037 }
5038 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5040 match value {
5041 "SCATTER_TEMPORAL_REDUCTION_UNSPECIFIED" => Some(Self::Unspecified),
5042 "SCATTER_TEMPORAL_REDUCTION_MEAN" => Some(Self::Mean),
5043 "SCATTER_TEMPORAL_REDUCTION_MIN" => Some(Self::Min),
5044 "SCATTER_TEMPORAL_REDUCTION_MAX" => Some(Self::Max),
5045 "SCATTER_TEMPORAL_REDUCTION_FIRST" => Some(Self::First),
5046 "SCATTER_TEMPORAL_REDUCTION_LAST" => Some(Self::Last),
5047 _ => None,
5048 }
5049 }
5050}
5051#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5052#[repr(i32)]
5053pub enum ScatterDriverAxis {
5054 Unspecified = 0,
5055 X = 1,
5056 Y = 2,
5057 Z = 3,
5058}
5059impl ScatterDriverAxis {
5060 pub fn as_str_name(&self) -> &'static str {
5065 match self {
5066 Self::Unspecified => "SCATTER_DRIVER_AXIS_UNSPECIFIED",
5067 Self::X => "SCATTER_DRIVER_AXIS_X",
5068 Self::Y => "SCATTER_DRIVER_AXIS_Y",
5069 Self::Z => "SCATTER_DRIVER_AXIS_Z",
5070 }
5071 }
5072 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5074 match value {
5075 "SCATTER_DRIVER_AXIS_UNSPECIFIED" => Some(Self::Unspecified),
5076 "SCATTER_DRIVER_AXIS_X" => Some(Self::X),
5077 "SCATTER_DRIVER_AXIS_Y" => Some(Self::Y),
5078 "SCATTER_DRIVER_AXIS_Z" => Some(Self::Z),
5079 _ => None,
5080 }
5081 }
5082}
5083#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5084#[repr(i32)]
5085pub enum MultivariateNumericReduction {
5086 Unspecified = 0,
5087 Mean = 1,
5088 Min = 2,
5089 Max = 3,
5090 First = 4,
5091 Last = 5,
5092}
5093impl MultivariateNumericReduction {
5094 pub fn as_str_name(&self) -> &'static str {
5099 match self {
5100 Self::Unspecified => "MULTIVARIATE_NUMERIC_REDUCTION_UNSPECIFIED",
5101 Self::Mean => "MULTIVARIATE_NUMERIC_REDUCTION_MEAN",
5102 Self::Min => "MULTIVARIATE_NUMERIC_REDUCTION_MIN",
5103 Self::Max => "MULTIVARIATE_NUMERIC_REDUCTION_MAX",
5104 Self::First => "MULTIVARIATE_NUMERIC_REDUCTION_FIRST",
5105 Self::Last => "MULTIVARIATE_NUMERIC_REDUCTION_LAST",
5106 }
5107 }
5108 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5110 match value {
5111 "MULTIVARIATE_NUMERIC_REDUCTION_UNSPECIFIED" => Some(Self::Unspecified),
5112 "MULTIVARIATE_NUMERIC_REDUCTION_MEAN" => Some(Self::Mean),
5113 "MULTIVARIATE_NUMERIC_REDUCTION_MIN" => Some(Self::Min),
5114 "MULTIVARIATE_NUMERIC_REDUCTION_MAX" => Some(Self::Max),
5115 "MULTIVARIATE_NUMERIC_REDUCTION_FIRST" => Some(Self::First),
5116 "MULTIVARIATE_NUMERIC_REDUCTION_LAST" => Some(Self::Last),
5117 _ => None,
5118 }
5119 }
5120}
5121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5122#[repr(i32)]
5123pub enum MultivariateCategoricalReduction {
5124 Unspecified = 0,
5125 Mode = 1,
5126}
5127impl MultivariateCategoricalReduction {
5128 pub fn as_str_name(&self) -> &'static str {
5133 match self {
5134 Self::Unspecified => "MULTIVARIATE_CATEGORICAL_REDUCTION_UNSPECIFIED",
5135 Self::Mode => "MULTIVARIATE_CATEGORICAL_REDUCTION_MODE",
5136 }
5137 }
5138 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5140 match value {
5141 "MULTIVARIATE_CATEGORICAL_REDUCTION_UNSPECIFIED" => Some(Self::Unspecified),
5142 "MULTIVARIATE_CATEGORICAL_REDUCTION_MODE" => Some(Self::Mode),
5143 _ => None,
5144 }
5145 }
5146}
5147#[derive(Clone, PartialEq, ::prost::Message)]
5148pub struct ComputationSpec {
5149 #[prost(oneof = "computation_spec::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
5150 pub kind: ::core::option::Option<computation_spec::Kind>,
5151}
5152pub mod computation_spec {
5154 #[derive(Clone, PartialEq, ::prost::Oneof)]
5155 pub enum Kind {
5156 #[prost(message, tag = "1")]
5157 IntervalSummary(super::IntervalSummarySpec),
5158 #[prost(message, tag = "2")]
5159 SeriesSummary(super::SeriesSummarySpec),
5160 #[prost(message, tag = "3")]
5161 Selection(super::ValueSelectionSpec),
5162 #[prost(message, tag = "4")]
5163 Cartesian(super::CartesianSummarySpec),
5164 #[prost(message, tag = "5")]
5165 Cartesian3d(super::Cartesian3dSummarySpec),
5166 #[prost(message, tag = "6")]
5167 Frequency(super::FrequencyAnalysisSpec),
5168 #[prost(message, tag = "7")]
5169 Spectrogram(super::SpectrogramSpec),
5170 #[prost(message, tag = "8")]
5171 Histogram(super::HistogramSpec),
5172 #[prost(message, tag = "9")]
5173 Curve(super::CurveFitExpression),
5174 #[prost(message, tag = "10")]
5175 Multivariate(super::MultivariateSummarySpec),
5176 }
5177}
5178#[derive(Clone, PartialEq, ::prost::Message)]
5179pub struct IntervalSummarySpec {
5180 #[prost(message, optional, tag = "1")]
5181 pub input: ::core::option::Option<RangeExpression>,
5182 #[prost(int32, optional, tag = "2")]
5183 pub max_intervals: ::core::option::Option<i32>,
5184}
5185#[derive(Clone, PartialEq, ::prost::Message)]
5186pub struct SeriesSummarySpec {
5187 #[prost(message, optional, tag = "1")]
5188 pub input: ::core::option::Option<SeriesExpression>,
5189 #[prost(enumeration = "ComputeOutputFormat", optional, tag = "2")]
5190 pub output_format: ::core::option::Option<i32>,
5191 #[prost(message, optional, tag = "3")]
5192 pub numeric_output: ::core::option::Option<NumericOutputSelection>,
5193 #[prost(message, optional, tag = "4")]
5194 pub summarization: ::core::option::Option<SeriesSummarization>,
5195}
5196#[derive(Clone, PartialEq, ::prost::Message)]
5197pub struct ValueSelectionSpec {
5198 #[prost(oneof = "value_selection_spec::Kind", tags = "1, 2")]
5199 pub kind: ::core::option::Option<value_selection_spec::Kind>,
5200}
5201pub mod value_selection_spec {
5203 #[derive(Clone, PartialEq, ::prost::Oneof)]
5204 pub enum Kind {
5205 #[prost(message, tag = "1")]
5206 Point(super::SeriesPointSelection),
5207 #[prost(message, tag = "2")]
5208 Interval(super::IntervalSelection),
5209 }
5210}
5211#[derive(Clone, PartialEq, ::prost::Message)]
5212pub struct SeriesPointSelection {
5213 #[prost(message, optional, tag = "1")]
5214 pub input: ::core::option::Option<SeriesExpression>,
5215 #[prost(enumeration = "ComputePointRepresentation", tag = "2")]
5216 pub representation: i32,
5217 #[prost(oneof = "series_point_selection::Position", tags = "3, 4")]
5218 pub position: ::core::option::Option<series_point_selection::Position>,
5219}
5220pub mod series_point_selection {
5222 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
5223 pub enum Position {
5224 #[prost(message, tag = "3")]
5225 First(super::FirstSelection),
5226 #[prost(message, tag = "4")]
5227 Last(super::LastSelection),
5228 }
5229}
5230#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5231pub struct FirstSelection {}
5232#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5233pub struct LastSelection {}
5234#[derive(Clone, PartialEq, ::prost::Message)]
5235pub struct IntervalSelection {
5236 #[prost(message, optional, tag = "1")]
5237 pub input: ::core::option::Option<RangeExpression>,
5238 #[prost(oneof = "interval_selection::Kind", tags = "2, 3, 4")]
5239 pub kind: ::core::option::Option<interval_selection::Kind>,
5240}
5241pub mod interval_selection {
5243 #[derive(Clone, PartialEq, ::prost::Oneof)]
5244 pub enum Kind {
5245 #[prost(message, tag = "2")]
5246 First(super::FirstSelection),
5247 #[prost(message, tag = "3")]
5248 Last(super::LastSelection),
5249 #[prost(message, tag = "4")]
5250 Indexed(super::IndexedIntervalSelection),
5251 }
5252}
5253#[derive(Clone, PartialEq, ::prost::Message)]
5254pub struct IndexedIntervalSelection {
5255 #[prost(message, optional, tag = "1")]
5256 pub index: ::core::option::Option<IntegerConstant>,
5257 #[prost(enumeration = "ComputeTimeDirection", tag = "2")]
5258 pub direction: i32,
5259}
5260#[derive(Clone, PartialEq, ::prost::Message)]
5261pub struct CartesianSummarySpec {
5262 #[prost(message, optional, tag = "1")]
5263 pub x: ::core::option::Option<NumericExpression>,
5264 #[prost(message, optional, tag = "2")]
5265 pub y: ::core::option::Option<NumericExpression>,
5266 #[prost(message, optional, tag = "3")]
5267 pub bounds: ::core::option::Option<CartesianSummaryBounds>,
5268 #[prost(message, optional, tag = "4")]
5269 pub summarization: ::core::option::Option<ScatterSummarization>,
5270 #[prost(int32, optional, tag = "5")]
5271 pub max_points: ::core::option::Option<i32>,
5272}
5273#[derive(Clone, PartialEq, ::prost::Message)]
5274pub struct CartesianSummaryBounds {
5275 #[prost(message, optional, tag = "1")]
5276 pub min_x: ::core::option::Option<DoubleConstant>,
5277 #[prost(message, optional, tag = "2")]
5278 pub max_x: ::core::option::Option<DoubleConstant>,
5279 #[prost(message, optional, tag = "3")]
5280 pub min_y: ::core::option::Option<DoubleConstant>,
5281 #[prost(message, optional, tag = "4")]
5282 pub max_y: ::core::option::Option<DoubleConstant>,
5283}
5284#[derive(Clone, PartialEq, ::prost::Message)]
5285pub struct Cartesian3dSummarySpec {
5286 #[prost(message, optional, tag = "1")]
5287 pub x: ::core::option::Option<NumericExpression>,
5288 #[prost(message, optional, tag = "2")]
5289 pub y: ::core::option::Option<NumericExpression>,
5290 #[prost(message, optional, tag = "3")]
5291 pub z: ::core::option::Option<NumericExpression>,
5292 #[prost(enumeration = "ScatterDriverAxis", optional, tag = "4")]
5293 pub driver_axis: ::core::option::Option<i32>,
5294 #[prost(message, optional, tag = "5")]
5295 pub bounds: ::core::option::Option<Cartesian3dSummaryBounds>,
5296 #[prost(message, optional, tag = "6")]
5297 pub summarization: ::core::option::Option<ScatterSummarization>,
5298 #[prost(int32, optional, tag = "7")]
5299 pub max_points: ::core::option::Option<i32>,
5300}
5301#[derive(Clone, PartialEq, ::prost::Message)]
5302pub struct Cartesian3dSummaryBounds {
5303 #[prost(message, optional, tag = "1")]
5304 pub min_x: ::core::option::Option<DoubleConstant>,
5305 #[prost(message, optional, tag = "2")]
5306 pub max_x: ::core::option::Option<DoubleConstant>,
5307 #[prost(message, optional, tag = "3")]
5308 pub min_y: ::core::option::Option<DoubleConstant>,
5309 #[prost(message, optional, tag = "4")]
5310 pub max_y: ::core::option::Option<DoubleConstant>,
5311 #[prost(message, optional, tag = "5")]
5312 pub min_z: ::core::option::Option<DoubleConstant>,
5313 #[prost(message, optional, tag = "6")]
5314 pub max_z: ::core::option::Option<DoubleConstant>,
5315}
5316#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5317pub struct ScatterSummarization {
5318 #[prost(oneof = "scatter_summarization::Kind", tags = "1, 2")]
5319 pub kind: ::core::option::Option<scatter_summarization::Kind>,
5320}
5321pub mod scatter_summarization {
5323 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
5324 pub enum Kind {
5325 #[prost(message, tag = "1")]
5326 Spatial(super::SpatialScatterSummary),
5327 #[prost(message, tag = "2")]
5328 Temporal(super::TemporalScatterSummary),
5329 }
5330}
5331#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5332pub struct SpatialScatterSummary {}
5333#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5334pub struct TemporalScatterSummary {
5335 #[prost(enumeration = "ScatterTemporalReduction", tag = "1")]
5336 pub x_reduction: i32,
5337 #[prost(enumeration = "ScatterTemporalReduction", tag = "2")]
5338 pub y_reduction: i32,
5339}
5340#[derive(Clone, PartialEq, ::prost::Message)]
5341pub struct FrequencyAnalysisSpec {
5342 #[prost(oneof = "frequency_analysis_spec::Kind", tags = "1, 2, 3, 4, 5")]
5343 pub kind: ::core::option::Option<frequency_analysis_spec::Kind>,
5344}
5345pub mod frequency_analysis_spec {
5347 #[derive(Clone, PartialEq, ::prost::Oneof)]
5348 pub enum Kind {
5349 #[prost(message, tag = "1")]
5350 Fft(super::FftSpec),
5351 #[prost(message, tag = "2")]
5352 PowerSpectralDensity(super::PowerSpectralDensitySpec),
5353 #[prost(message, tag = "3")]
5354 CrossSpectralDensity(super::CrossSpectralDensitySpec),
5355 #[prost(message, tag = "4")]
5356 FrequencyResponse(super::FrequencyResponseSpec),
5357 #[prost(message, tag = "5")]
5358 Bode(super::BodeSpec),
5359 }
5360}
5361#[derive(Clone, PartialEq, ::prost::Message)]
5362pub struct FftSpec {
5363 #[prost(message, optional, tag = "1")]
5364 pub input: ::core::option::Option<NumericExpression>,
5365 #[prost(enumeration = "ComputeFftWindow", optional, tag = "2")]
5366 pub window: ::core::option::Option<i32>,
5367 #[prost(message, optional, tag = "3")]
5368 pub bucketing: ::core::option::Option<FrequencyBucketing>,
5369 #[prost(int32, optional, tag = "4")]
5370 pub fft_length: ::core::option::Option<i32>,
5371}
5372#[derive(Clone, PartialEq, ::prost::Message)]
5373pub struct PowerSpectralDensitySpec {
5374 #[prost(message, optional, tag = "1")]
5375 pub input: ::core::option::Option<NumericExpression>,
5376 #[prost(message, optional, tag = "2")]
5377 pub stft: ::core::option::Option<StftConfiguration>,
5378 #[prost(enumeration = "ComputeMagnitudeScaling", optional, tag = "3")]
5379 pub magnitude_scaling: ::core::option::Option<i32>,
5380 #[prost(enumeration = "ComputeFrequencyUnit", optional, tag = "4")]
5381 pub frequency_unit: ::core::option::Option<i32>,
5382 #[prost(message, optional, tag = "5")]
5383 pub bucketing: ::core::option::Option<FrequencyBucketing>,
5384}
5385#[derive(Clone, PartialEq, ::prost::Message)]
5386pub struct CrossSpectralDensitySpec {
5387 #[prost(message, optional, tag = "1")]
5388 pub x: ::core::option::Option<NumericExpression>,
5389 #[prost(message, optional, tag = "2")]
5390 pub y: ::core::option::Option<NumericExpression>,
5391 #[prost(message, optional, tag = "3")]
5392 pub stft: ::core::option::Option<StftConfiguration>,
5393 #[prost(enumeration = "ComputeMagnitudeScaling", optional, tag = "4")]
5394 pub magnitude_scaling: ::core::option::Option<i32>,
5395 #[prost(enumeration = "ComputeFrequencyUnit", optional, tag = "5")]
5396 pub frequency_unit: ::core::option::Option<i32>,
5397 #[prost(bool, optional, tag = "6")]
5398 pub unwrap_phase: ::core::option::Option<bool>,
5399 #[prost(enumeration = "ComputePhaseUnit", optional, tag = "7")]
5400 pub phase_unit: ::core::option::Option<i32>,
5401}
5402#[derive(Clone, PartialEq, ::prost::Message)]
5403pub struct FrequencyResponseSpec {
5404 #[prost(message, optional, tag = "1")]
5405 pub input: ::core::option::Option<NumericExpression>,
5406 #[prost(message, optional, tag = "2")]
5407 pub output: ::core::option::Option<NumericExpression>,
5408 #[prost(message, optional, tag = "3")]
5409 pub stft: ::core::option::Option<StftConfiguration>,
5410}
5411#[derive(Clone, PartialEq, ::prost::Message)]
5412pub struct BodeSpec {
5413 #[prost(message, optional, tag = "1")]
5414 pub input: ::core::option::Option<NumericExpression>,
5415 #[prost(message, optional, tag = "2")]
5416 pub output: ::core::option::Option<NumericExpression>,
5417 #[prost(message, optional, tag = "3")]
5418 pub alignment: ::core::option::Option<SignalAlignment>,
5419 #[prost(message, optional, tag = "4")]
5420 pub stft: ::core::option::Option<StftConfiguration>,
5421 #[prost(enumeration = "ComputeMagnitudeScaling", optional, tag = "5")]
5422 pub magnitude_scaling: ::core::option::Option<i32>,
5423 #[prost(enumeration = "ComputeFrequencyUnit", optional, tag = "6")]
5424 pub frequency_unit: ::core::option::Option<i32>,
5425 #[prost(bool, optional, tag = "7")]
5426 pub unwrap_phase: ::core::option::Option<bool>,
5427}
5428#[derive(Clone, PartialEq, ::prost::Message)]
5429pub struct SignalAlignment {
5430 #[prost(message, optional, tag = "1")]
5431 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
5432 #[prost(enumeration = "SignalAlignmentDriver", tag = "2")]
5433 pub driver: i32,
5434}
5435#[derive(Clone, PartialEq, ::prost::Message)]
5436pub struct SpectrogramSpec {
5437 #[prost(message, optional, tag = "1")]
5438 pub input: ::core::option::Option<NumericExpression>,
5439 #[prost(message, optional, tag = "2")]
5440 pub stft: ::core::option::Option<StftConfiguration>,
5441 #[prost(enumeration = "SpectrogramQuantity", optional, tag = "3")]
5442 pub quantity: ::core::option::Option<i32>,
5443 #[prost(enumeration = "ComputeMagnitudeScaling", optional, tag = "4")]
5444 pub magnitude_scaling: ::core::option::Option<i32>,
5445 #[prost(message, optional, tag = "5")]
5446 pub bucketing: ::core::option::Option<SpectrogramBucketing>,
5447}
5448#[derive(Clone, PartialEq, ::prost::Message)]
5449pub struct HistogramSpec {
5450 #[prost(oneof = "histogram_spec::Kind", tags = "1, 2")]
5451 pub kind: ::core::option::Option<histogram_spec::Kind>,
5452}
5453pub mod histogram_spec {
5455 #[derive(Clone, PartialEq, ::prost::Oneof)]
5456 pub enum Kind {
5457 #[prost(message, tag = "1")]
5458 Numeric(super::NumericHistogramSpec),
5459 #[prost(message, tag = "2")]
5460 Categorical(super::CategoricalHistogramSpec),
5461 }
5462}
5463#[derive(Clone, PartialEq, ::prost::Message)]
5464pub struct NumericHistogramSpec {
5465 #[prost(map = "string, message", tag = "1")]
5466 pub inputs: ::std::collections::HashMap<
5467 ::prost::alloc::string::String,
5468 NumericExpression,
5469 >,
5470 #[prost(message, optional, tag = "2")]
5471 pub bucketing: ::core::option::Option<NumericHistogramBucketing>,
5472}
5473#[derive(Clone, PartialEq, ::prost::Message)]
5474pub struct NumericHistogramBucketing {
5475 #[prost(oneof = "numeric_histogram_bucketing::Kind", tags = "1, 2")]
5476 pub kind: ::core::option::Option<numeric_histogram_bucketing::Kind>,
5477}
5478pub mod numeric_histogram_bucketing {
5480 #[derive(Clone, PartialEq, ::prost::Oneof)]
5481 pub enum Kind {
5482 #[prost(message, tag = "1")]
5483 BucketCount(super::IntegerConstant),
5484 #[prost(message, tag = "2")]
5485 WidthAndOffset(super::HistogramWidthAndOffset),
5486 }
5487}
5488#[derive(Clone, PartialEq, ::prost::Message)]
5489pub struct HistogramWidthAndOffset {
5490 #[prost(message, optional, tag = "1")]
5491 pub width: ::core::option::Option<DoubleConstant>,
5492 #[prost(message, optional, tag = "2")]
5493 pub offset: ::core::option::Option<DoubleConstant>,
5494}
5495#[derive(Clone, PartialEq, ::prost::Message)]
5496pub struct CategoricalHistogramSpec {
5497 #[prost(map = "string, message", tag = "1")]
5498 pub inputs: ::std::collections::HashMap<
5499 ::prost::alloc::string::String,
5500 CategoricalExpression,
5501 >,
5502}
5503#[derive(Clone, PartialEq, ::prost::Message)]
5504pub struct MultivariateSummarySpec {
5505 #[prost(message, repeated, tag = "1")]
5506 pub inputs: ::prost::alloc::vec::Vec<MultivariateSummaryInput>,
5507 #[prost(enumeration = "ComputeOutputFormat", optional, tag = "2")]
5508 pub output_format: ::core::option::Option<i32>,
5509 #[prost(int32, optional, tag = "3")]
5510 pub bucket_count: ::core::option::Option<i32>,
5511 #[prost(message, optional, tag = "4")]
5512 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
5513}
5514#[derive(Clone, PartialEq, ::prost::Message)]
5515pub struct MultivariateSummaryInput {
5516 #[prost(oneof = "multivariate_summary_input::Kind", tags = "1, 2")]
5517 pub kind: ::core::option::Option<multivariate_summary_input::Kind>,
5518}
5519pub mod multivariate_summary_input {
5521 #[derive(Clone, PartialEq, ::prost::Oneof)]
5522 pub enum Kind {
5523 #[prost(message, tag = "1")]
5524 Numeric(super::MultivariateNumericInput),
5525 #[prost(message, tag = "2")]
5526 Categorical(super::MultivariateCategoricalInput),
5527 }
5528}
5529#[derive(Clone, PartialEq, ::prost::Message)]
5530pub struct MultivariateNumericInput {
5531 #[prost(message, optional, tag = "1")]
5532 pub input: ::core::option::Option<NumericExpression>,
5533 #[prost(
5534 enumeration = "MultivariateNumericReduction",
5535 repeated,
5536 packed = "false",
5537 tag = "2"
5538 )]
5539 pub reductions: ::prost::alloc::vec::Vec<i32>,
5540}
5541#[derive(Clone, PartialEq, ::prost::Message)]
5542pub struct MultivariateCategoricalInput {
5543 #[prost(message, optional, tag = "1")]
5544 pub input: ::core::option::Option<CategoricalExpression>,
5545 #[prost(
5546 enumeration = "MultivariateCategoricalReduction",
5547 repeated,
5548 packed = "false",
5549 tag = "2"
5550 )]
5551 pub reductions: ::prost::alloc::vec::Vec<i32>,
5552}
5553#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5554#[repr(i32)]
5555pub enum ComputePointRepresentation {
5556 Unspecified = 0,
5557 TypedSample = 1,
5558 ValueSample = 2,
5559}
5560impl ComputePointRepresentation {
5561 pub fn as_str_name(&self) -> &'static str {
5566 match self {
5567 Self::Unspecified => "COMPUTE_POINT_REPRESENTATION_UNSPECIFIED",
5568 Self::TypedSample => "COMPUTE_POINT_REPRESENTATION_TYPED_SAMPLE",
5569 Self::ValueSample => "COMPUTE_POINT_REPRESENTATION_VALUE_SAMPLE",
5570 }
5571 }
5572 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5574 match value {
5575 "COMPUTE_POINT_REPRESENTATION_UNSPECIFIED" => Some(Self::Unspecified),
5576 "COMPUTE_POINT_REPRESENTATION_TYPED_SAMPLE" => Some(Self::TypedSample),
5577 "COMPUTE_POINT_REPRESENTATION_VALUE_SAMPLE" => Some(Self::ValueSample),
5578 _ => None,
5579 }
5580 }
5581}
5582#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5583#[repr(i32)]
5584pub enum SignalAlignmentDriver {
5585 Unspecified = 0,
5586 Input = 1,
5587 Output = 2,
5588}
5589impl SignalAlignmentDriver {
5590 pub fn as_str_name(&self) -> &'static str {
5595 match self {
5596 Self::Unspecified => "SIGNAL_ALIGNMENT_DRIVER_UNSPECIFIED",
5597 Self::Input => "SIGNAL_ALIGNMENT_DRIVER_INPUT",
5598 Self::Output => "SIGNAL_ALIGNMENT_DRIVER_OUTPUT",
5599 }
5600 }
5601 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5603 match value {
5604 "SIGNAL_ALIGNMENT_DRIVER_UNSPECIFIED" => Some(Self::Unspecified),
5605 "SIGNAL_ALIGNMENT_DRIVER_INPUT" => Some(Self::Input),
5606 "SIGNAL_ALIGNMENT_DRIVER_OUTPUT" => Some(Self::Output),
5607 _ => None,
5608 }
5609 }
5610}
5611#[derive(Clone, PartialEq, ::prost::Message)]
5612pub struct ExecutionInput {
5613 #[prost(message, optional, tag = "1")]
5614 pub computation: ::core::option::Option<ComputationSpec>,
5615 #[prost(message, optional, tag = "2")]
5616 pub start: ::core::option::Option<super::super::types::time::Timestamp>,
5617 #[prost(message, optional, tag = "3")]
5618 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
5619 #[prost(message, optional, tag = "4")]
5620 pub context: ::core::option::Option<ComputeContext>,
5621 #[prost(string, optional, tag = "5")]
5622 pub source_rid: ::core::option::Option<::prost::alloc::string::String>,
5623 #[prost(string, optional, tag = "6")]
5624 pub request_id: ::core::option::Option<::prost::alloc::string::String>,
5625}
5626#[derive(Clone, PartialEq, ::prost::Message)]
5627pub struct UnitResolutionInput {
5628 #[prost(message, optional, tag = "1")]
5629 pub computation: ::core::option::Option<ComputationSpec>,
5630 #[prost(message, optional, tag = "2")]
5631 pub context: ::core::option::Option<ComputeContext>,
5632}
5633#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5634pub struct ExecutionWindowOverride {
5635 #[prost(message, optional, tag = "1")]
5636 pub start: ::core::option::Option<super::super::types::time::Timestamp>,
5637 #[prost(message, optional, tag = "2")]
5638 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
5639}
5640#[derive(Clone, PartialEq, ::prost::Message)]
5641pub struct ParameterOverlay {
5642 #[prost(map = "string, message", tag = "1")]
5643 pub variables: ::std::collections::HashMap<
5644 ::prost::alloc::string::String,
5645 VariableValue,
5646 >,
5647 #[prost(message, optional, tag = "2")]
5648 pub window: ::core::option::Option<ExecutionWindowOverride>,
5649}
5650#[derive(Clone, PartialEq, ::prost::Message)]
5651pub struct ParameterizedExecutionInput {
5652 #[prost(message, optional, tag = "1")]
5653 pub computation: ::core::option::Option<ComputationSpec>,
5654 #[prost(message, optional, tag = "2")]
5655 pub start: ::core::option::Option<super::super::types::time::Timestamp>,
5656 #[prost(message, optional, tag = "3")]
5657 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
5658 #[prost(message, optional, tag = "4")]
5659 pub context: ::core::option::Option<ComputeContext>,
5660 #[prost(string, optional, tag = "5")]
5661 pub source_rid: ::core::option::Option<::prost::alloc::string::String>,
5662 #[prost(message, repeated, tag = "6")]
5663 pub overlays: ::prost::alloc::vec::Vec<ParameterOverlay>,
5664}
5665#[derive(Clone, PartialEq, ::prost::Message)]
5666pub struct ExecutionBatch {
5667 #[prost(message, repeated, tag = "1")]
5668 pub inputs: ::prost::alloc::vec::Vec<ExecutionInput>,
5669}
5670#[derive(Clone, PartialEq, ::prost::Message)]
5671pub struct UnitResolutionBatch {
5672 #[prost(message, repeated, tag = "1")]
5673 pub inputs: ::prost::alloc::vec::Vec<UnitResolutionInput>,
5674}
5675#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5676pub struct CurveFitMetrics {
5677 #[prost(double, tag = "1")]
5678 pub r_squared: f64,
5679 #[prost(double, tag = "2")]
5680 pub mean_absolute_error: f64,
5681 #[prost(double, tag = "3")]
5682 pub mean_squared_error: f64,
5683 #[prost(double, tag = "4")]
5684 pub root_mean_squared_error: f64,
5685 #[prost(double, tag = "5")]
5686 pub max_absolute_error: f64,
5687 #[prost(int32, tag = "6")]
5688 pub sample_count: i32,
5689}
5690#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5691pub struct ExponentialCurveParameters {
5692 #[prost(double, tag = "1")]
5693 pub a: f64,
5694 #[prost(double, tag = "2")]
5695 pub b: f64,
5696}
5697#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5698pub struct LogarithmicCurveParameters {
5699 #[prost(double, tag = "1")]
5700 pub a: f64,
5701 #[prost(double, tag = "2")]
5702 pub b: f64,
5703}
5704#[derive(Clone, PartialEq, ::prost::Message)]
5705pub struct PolynomialCurveParameters {
5706 #[prost(double, repeated, tag = "1")]
5707 pub coefficients: ::prost::alloc::vec::Vec<f64>,
5708}
5709#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5710pub struct PowerCurveParameters {
5711 #[prost(double, tag = "1")]
5712 pub a: f64,
5713 #[prost(double, tag = "2")]
5714 pub b: f64,
5715}
5716#[derive(Clone, PartialEq, ::prost::Message)]
5717pub struct CustomCurveParameters {
5718 #[prost(map = "string, double", tag = "1")]
5719 pub parameters: ::std::collections::HashMap<::prost::alloc::string::String, f64>,
5720 #[prost(bool, tag = "2")]
5721 pub converged: bool,
5722 #[prost(int32, tag = "3")]
5723 pub iterations: i32,
5724}
5725#[derive(Clone, PartialEq, ::prost::Message)]
5726pub struct FittedCurve {
5727 #[prost(message, optional, tag = "1")]
5728 pub metrics: ::core::option::Option<CurveFitMetrics>,
5729 #[prost(oneof = "fitted_curve::Parameters", tags = "2, 3, 4, 5, 6")]
5730 pub parameters: ::core::option::Option<fitted_curve::Parameters>,
5731}
5732pub mod fitted_curve {
5734 #[derive(Clone, PartialEq, ::prost::Oneof)]
5735 pub enum Parameters {
5736 #[prost(message, tag = "2")]
5737 Exponential(super::ExponentialCurveParameters),
5738 #[prost(message, tag = "3")]
5739 Logarithmic(super::LogarithmicCurveParameters),
5740 #[prost(message, tag = "4")]
5741 Polynomial(super::PolynomialCurveParameters),
5742 #[prost(message, tag = "5")]
5743 Power(super::PowerCurveParameters),
5744 #[prost(message, tag = "6")]
5745 Custom(super::CustomCurveParameters),
5746 }
5747}
5748#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5749pub struct RealFrequencySample {
5750 #[prost(double, tag = "1")]
5751 pub frequency: f64,
5752 #[prost(double, tag = "2")]
5753 pub amplitude: f64,
5754}
5755#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5756pub struct ComplexFrequencySample {
5757 #[prost(double, tag = "1")]
5758 pub frequency: f64,
5759 #[prost(double, tag = "2")]
5760 pub real: f64,
5761 #[prost(double, tag = "3")]
5762 pub imaginary: f64,
5763}
5764#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5765pub struct PolarFrequencySample {
5766 #[prost(double, tag = "1")]
5767 pub frequency: f64,
5768 #[prost(double, tag = "2")]
5769 pub magnitude: f64,
5770 #[prost(double, tag = "3")]
5771 pub phase: f64,
5772}
5773#[derive(Clone, PartialEq, ::prost::Message)]
5774pub struct RealFrequencySamples {
5775 #[prost(message, repeated, tag = "1")]
5776 pub samples: ::prost::alloc::vec::Vec<RealFrequencySample>,
5777}
5778#[derive(Clone, PartialEq, ::prost::Message)]
5779pub struct ComplexFrequencySamples {
5780 #[prost(message, repeated, tag = "1")]
5781 pub samples: ::prost::alloc::vec::Vec<ComplexFrequencySample>,
5782}
5783#[derive(Clone, PartialEq, ::prost::Message)]
5784pub struct PolarFrequencySamples {
5785 #[prost(message, repeated, tag = "1")]
5786 pub samples: ::prost::alloc::vec::Vec<PolarFrequencySample>,
5787}
5788#[derive(Clone, PartialEq, ::prost::Message)]
5789pub struct FrequencySamples {
5790 #[prost(oneof = "frequency_samples::Kind", tags = "1, 2, 3")]
5791 pub kind: ::core::option::Option<frequency_samples::Kind>,
5792}
5793pub mod frequency_samples {
5795 #[derive(Clone, PartialEq, ::prost::Oneof)]
5796 pub enum Kind {
5797 #[prost(message, tag = "1")]
5798 Real(super::RealFrequencySamples),
5799 #[prost(message, tag = "2")]
5800 Complex(super::ComplexFrequencySamples),
5801 #[prost(message, tag = "3")]
5802 Polar(super::PolarFrequencySamples),
5803 }
5804}
5805#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5806pub struct FrequencyResultBucket {
5807 #[prost(double, tag = "1")]
5808 pub start_frequency: f64,
5809 #[prost(double, tag = "2")]
5810 pub end_frequency: f64,
5811 #[prost(double, tag = "3")]
5812 pub center_frequency: f64,
5813 #[prost(double, tag = "4")]
5814 pub min_amplitude: f64,
5815 #[prost(double, tag = "5")]
5816 pub max_amplitude: f64,
5817 #[prost(double, tag = "6")]
5818 pub mean_amplitude: f64,
5819 #[prost(int64, tag = "7")]
5820 pub count: i64,
5821 #[prost(message, optional, tag = "8")]
5822 pub first: ::core::option::Option<RealFrequencySample>,
5823 #[prost(message, optional, tag = "9")]
5824 pub last: ::core::option::Option<RealFrequencySample>,
5825}
5826#[derive(Clone, PartialEq, ::prost::Message)]
5827pub struct FrequencyBuckets {
5828 #[prost(message, repeated, tag = "1")]
5829 pub buckets: ::prost::alloc::vec::Vec<FrequencyResultBucket>,
5830}
5831#[derive(Clone, PartialEq, ::prost::Message)]
5832pub struct SpectrogramResultRow {
5833 #[prost(message, optional, tag = "1")]
5834 pub start: ::core::option::Option<super::super::types::time::Timestamp>,
5835 #[prost(message, optional, tag = "2")]
5836 pub end: ::core::option::Option<super::super::types::time::Timestamp>,
5837 #[prost(double, repeated, tag = "3")]
5838 pub values: ::prost::alloc::vec::Vec<f64>,
5839}
5840#[derive(Clone, PartialEq, ::prost::Message)]
5841pub struct SpectrogramGrid {
5842 #[prost(double, repeated, tag = "1")]
5843 pub frequency_centers: ::prost::alloc::vec::Vec<f64>,
5844 #[prost(double, repeated, tag = "2")]
5845 pub frequency_edges: ::prost::alloc::vec::Vec<f64>,
5846 #[prost(message, repeated, tag = "3")]
5847 pub rows: ::prost::alloc::vec::Vec<SpectrogramResultRow>,
5848}
5849#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5850pub struct CartesianSample {
5851 #[prost(message, optional, tag = "1")]
5852 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5853 #[prost(double, tag = "2")]
5854 pub x: f64,
5855 #[prost(double, tag = "3")]
5856 pub y: f64,
5857}
5858#[derive(Clone, PartialEq, ::prost::Message)]
5859pub struct CartesianSamples {
5860 #[prost(message, repeated, tag = "1")]
5861 pub samples: ::prost::alloc::vec::Vec<CartesianSample>,
5862}
5863#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5864pub struct CartesianResultBucket {
5865 #[prost(double, tag = "1")]
5866 pub min_x: f64,
5867 #[prost(double, tag = "2")]
5868 pub max_x: f64,
5869 #[prost(double, tag = "3")]
5870 pub min_y: f64,
5871 #[prost(double, tag = "4")]
5872 pub max_y: f64,
5873 #[prost(message, optional, tag = "5")]
5874 pub min_timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5875 #[prost(message, optional, tag = "6")]
5876 pub max_timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5877 #[prost(int64, tag = "7")]
5878 pub count: i64,
5879}
5880#[derive(Clone, PartialEq, ::prost::Message)]
5881pub struct CartesianBuckets {
5882 #[prost(message, repeated, tag = "1")]
5883 pub buckets: ::prost::alloc::vec::Vec<CartesianResultBucket>,
5884}
5885#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5886pub struct Cartesian3dSample {
5887 #[prost(double, tag = "1")]
5888 pub x: f64,
5889 #[prost(double, tag = "2")]
5890 pub y: f64,
5891 #[prost(double, tag = "3")]
5892 pub z: f64,
5893 #[prost(message, optional, tag = "4")]
5894 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5895}
5896#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5897pub struct Cartesian3dCentroid {
5898 #[prost(double, tag = "1")]
5899 pub x: f64,
5900 #[prost(double, tag = "2")]
5901 pub y: f64,
5902 #[prost(double, tag = "3")]
5903 pub z: f64,
5904}
5905#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5906pub struct Cartesian3dResultBucket {
5907 #[prost(message, optional, tag = "1")]
5908 pub centroid: ::core::option::Option<Cartesian3dCentroid>,
5909 #[prost(message, optional, tag = "2")]
5910 pub min_x_point: ::core::option::Option<Cartesian3dSample>,
5911 #[prost(message, optional, tag = "3")]
5912 pub max_x_point: ::core::option::Option<Cartesian3dSample>,
5913 #[prost(message, optional, tag = "4")]
5914 pub min_y_point: ::core::option::Option<Cartesian3dSample>,
5915 #[prost(message, optional, tag = "5")]
5916 pub max_y_point: ::core::option::Option<Cartesian3dSample>,
5917 #[prost(message, optional, tag = "6")]
5918 pub min_z_point: ::core::option::Option<Cartesian3dSample>,
5919 #[prost(message, optional, tag = "7")]
5920 pub max_z_point: ::core::option::Option<Cartesian3dSample>,
5921 #[prost(message, optional, tag = "8")]
5922 pub min_timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5923 #[prost(message, optional, tag = "9")]
5924 pub max_timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5925 #[prost(int64, tag = "10")]
5926 pub count: i64,
5927}
5928#[derive(Clone, PartialEq, ::prost::Message)]
5929pub struct Cartesian3dBuckets {
5930 #[prost(message, repeated, tag = "1")]
5931 pub buckets: ::prost::alloc::vec::Vec<Cartesian3dResultBucket>,
5932}
5933#[derive(Clone, PartialEq, ::prost::Message)]
5934pub struct MultivariateResultBucket {
5935 #[prost(message, optional, tag = "1")]
5936 pub timestamp: ::core::option::Option<super::super::types::time::Timestamp>,
5937 #[prost(message, repeated, tag = "2")]
5938 pub values: ::prost::alloc::vec::Vec<ComputeValue>,
5939}
5940#[derive(Clone, PartialEq, ::prost::Message)]
5941pub struct MultivariateBuckets {
5942 #[prost(message, repeated, tag = "1")]
5943 pub buckets: ::prost::alloc::vec::Vec<MultivariateResultBucket>,
5944 #[prost(message, optional, tag = "2")]
5945 pub grouping_keys: ::core::option::Option<ResultGroupingKeys>,
5946}
5947#[derive(Clone, PartialEq, ::prost::Message)]
5948pub struct IntervalCollection {
5949 #[prost(message, repeated, tag = "1")]
5950 pub intervals: ::prost::alloc::vec::Vec<ResultInterval>,
5951}
5952#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5953pub struct IntervalSummary {
5954 #[prost(message, optional, tag = "1")]
5955 pub interval: ::core::option::Option<ResultInterval>,
5956 #[prost(int32, tag = "2")]
5957 pub interval_count: i32,
5958}
5959#[derive(Clone, PartialEq, ::prost::Message)]
5960pub struct IntervalSummaries {
5961 #[prost(message, repeated, tag = "1")]
5962 pub summaries: ::prost::alloc::vec::Vec<IntervalSummary>,
5963}
5964#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5965pub struct OptionalIntervalResult {
5966 #[prost(message, optional, tag = "1")]
5967 pub interval: ::core::option::Option<ResultInterval>,
5968}
5969#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5970pub struct OptionalNumericSampleResult {
5971 #[prost(message, optional, tag = "1")]
5972 pub sample: ::core::option::Option<NumericSample>,
5973}
5974#[derive(Clone, PartialEq, ::prost::Message)]
5975pub struct OptionalCategoricalSampleResult {
5976 #[prost(message, optional, tag = "1")]
5977 pub sample: ::core::option::Option<CategoricalSample>,
5978}
5979#[derive(Clone, PartialEq, ::prost::Message)]
5980pub struct OptionalValueSampleResult {
5981 #[prost(message, optional, tag = "1")]
5982 pub sample: ::core::option::Option<ValueSample>,
5983}
5984#[derive(Clone, PartialEq, ::prost::Message)]
5985pub struct OptionalLogSampleResult {
5986 #[prost(message, optional, tag = "1")]
5987 pub sample: ::core::option::Option<LogSample>,
5988}
5989#[derive(Clone, PartialEq, ::prost::Message)]
5990pub struct GroupedComputationResult {
5991 #[prost(message, optional, tag = "1")]
5992 pub grouping: ::core::option::Option<ResultGrouping>,
5993 #[prost(message, optional, tag = "2")]
5994 pub result: ::core::option::Option<ComputationResult>,
5995}
5996#[derive(Clone, PartialEq, ::prost::Message)]
5997pub struct GroupedComputationResults {
5998 #[prost(message, repeated, tag = "1")]
5999 pub groups: ::prost::alloc::vec::Vec<GroupedComputationResult>,
6000}
6001#[derive(Clone, PartialEq, ::prost::Message)]
6002pub struct ComputationResult {
6003 #[prost(
6004 oneof = "computation_result::Kind",
6005 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24"
6006 )]
6007 pub kind: ::core::option::Option<computation_result::Kind>,
6008}
6009pub mod computation_result {
6011 #[derive(Clone, PartialEq, ::prost::Oneof)]
6012 pub enum Kind {
6013 #[prost(message, tag = "1")]
6014 Intervals(super::IntervalCollection),
6015 #[prost(message, tag = "2")]
6016 IntervalSummaries(super::IntervalSummaries),
6017 #[prost(message, tag = "3")]
6018 Interval(super::OptionalIntervalResult),
6019 #[prost(message, tag = "4")]
6020 NumericSamples(super::NumericSamples),
6021 #[prost(message, tag = "5")]
6022 NumericBuckets(super::NumericBuckets),
6023 #[prost(message, tag = "6")]
6024 NumericSample(super::OptionalNumericSampleResult),
6025 #[prost(message, tag = "7")]
6026 ValueSample(super::OptionalValueSampleResult),
6027 #[prost(message, tag = "8")]
6028 CategoricalSamples(super::CategoricalSamples),
6029 #[prost(message, tag = "9")]
6030 CategoricalBuckets(super::CategoricalBuckets),
6031 #[prost(message, tag = "10")]
6032 CategoricalSample(super::OptionalCategoricalSampleResult),
6033 #[prost(message, tag = "11")]
6034 LogSamples(super::LogSamples),
6035 #[prost(message, tag = "12")]
6036 LogSample(super::OptionalLogSampleResult),
6037 #[prost(message, tag = "13")]
6038 CartesianSamples(super::CartesianSamples),
6039 #[prost(message, tag = "14")]
6040 CartesianBuckets(super::CartesianBuckets),
6041 #[prost(message, tag = "15")]
6042 Cartesian3dBuckets(super::Cartesian3dBuckets),
6043 #[prost(message, tag = "16")]
6044 FrequencySamples(super::FrequencySamples),
6045 #[prost(message, tag = "17")]
6046 FrequencyBuckets(super::FrequencyBuckets),
6047 #[prost(message, tag = "18")]
6048 Spectrogram(super::SpectrogramGrid),
6049 #[prost(message, tag = "19")]
6050 NumericHistogram(super::NumericHistogram),
6051 #[prost(message, tag = "20")]
6052 CategoricalHistogram(super::CategoricalHistogram),
6053 #[prost(message, tag = "21")]
6054 FittedCurve(super::FittedCurve),
6055 #[prost(message, tag = "22")]
6056 Grouped(super::GroupedComputationResults),
6057 #[prost(message, tag = "23")]
6058 Arrow(super::ArrowResult),
6059 #[prost(message, tag = "24")]
6060 MultivariateBuckets(super::MultivariateBuckets),
6061 }
6062}
6063#[derive(Clone, PartialEq, ::prost::Message)]
6064pub struct ComputationOutcome {
6065 #[prost(oneof = "computation_outcome::Kind", tags = "1, 2")]
6066 pub kind: ::core::option::Option<computation_outcome::Kind>,
6067}
6068pub mod computation_outcome {
6070 #[derive(Clone, PartialEq, ::prost::Oneof)]
6071 pub enum Kind {
6072 #[prost(message, tag = "1")]
6073 Success(super::ComputationResult),
6074 #[prost(message, tag = "2")]
6075 Failure(super::ComputationFailure),
6076 }
6077}
6078#[derive(Clone, PartialEq, ::prost::Message)]
6079pub struct ComputationWithUnits {
6080 #[prost(message, optional, tag = "1")]
6081 pub result: ::core::option::Option<ComputationResult>,
6082 #[prost(message, optional, tag = "2")]
6083 pub units: ::core::option::Option<ComputationUnits>,
6084}
6085#[derive(Clone, PartialEq, ::prost::Message)]
6086pub struct ComputationOutcomeWithUnits {
6087 #[prost(message, optional, tag = "1")]
6088 pub outcome: ::core::option::Option<ComputationOutcome>,
6089 #[prost(message, optional, tag = "2")]
6090 pub units: ::core::option::Option<ComputationUnits>,
6091}
6092#[derive(Clone, PartialEq, ::prost::Message)]
6093pub struct BatchCancelRequestsRequest {
6094 #[prost(string, repeated, tag = "1")]
6095 pub request_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6096}
6097#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6098pub struct BatchCancelRequestsResponse {}
6099#[derive(Clone, PartialEq, ::prost::Message)]
6100pub struct BatchGetRequestProgressRequest {
6101 #[prost(string, repeated, tag = "1")]
6102 pub request_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6103}
6104#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6105pub struct RequestInProgress {
6106 #[prost(int64, tag = "1")]
6107 pub read_rows: i64,
6108 #[prost(int64, tag = "2")]
6109 pub total_rows_approx: i64,
6110}
6111#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6112pub struct RequestInactive {}
6113#[derive(Clone, PartialEq, ::prost::Message)]
6114pub struct RequestProgress {
6115 #[prost(string, tag = "1")]
6116 pub request_id: ::prost::alloc::string::String,
6117 #[prost(oneof = "request_progress::State", tags = "2, 3")]
6118 pub state: ::core::option::Option<request_progress::State>,
6119}
6120pub mod request_progress {
6122 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
6123 pub enum State {
6124 #[prost(message, tag = "2")]
6125 InProgress(super::RequestInProgress),
6126 #[prost(message, tag = "3")]
6127 Inactive(super::RequestInactive),
6128 }
6129}
6130#[derive(Clone, PartialEq, ::prost::Message)]
6131pub struct BatchGetRequestProgressResponse {
6132 #[prost(message, repeated, tag = "1")]
6133 pub progress: ::prost::alloc::vec::Vec<RequestProgress>,
6134}
6135#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6136pub struct QuotaWindow {
6137 #[prost(message, optional, tag = "1")]
6138 pub start_time: ::core::option::Option<
6139 super::super::super::google::protobuf::Timestamp,
6140 >,
6141 #[prost(message, optional, tag = "2")]
6142 pub end_time: ::core::option::Option<
6143 super::super::super::google::protobuf::Timestamp,
6144 >,
6145}
6146#[derive(Clone, Copy, PartialEq, ::prost::Message)]
6147pub struct QuotaResourceUsage {
6148 #[prost(enumeration = "QuotaResourceType", tag = "1")]
6149 pub resource: i32,
6150 #[prost(double, tag = "2")]
6151 pub used: f64,
6152 #[prost(double, tag = "3")]
6153 pub limit: f64,
6154}
6155#[derive(Clone, PartialEq, ::prost::Message)]
6156pub struct QuotaIntervalUsage {
6157 #[prost(int64, tag = "1")]
6158 pub duration_seconds: i64,
6159 #[prost(message, optional, tag = "2")]
6160 pub current_window: ::core::option::Option<QuotaWindow>,
6161 #[prost(message, repeated, tag = "3")]
6162 pub resources: ::prost::alloc::vec::Vec<QuotaResourceUsage>,
6163}
6164#[derive(Clone, PartialEq, ::prost::Message)]
6165pub struct QuotaUsage {
6166 #[prost(message, repeated, tag = "1")]
6167 pub intervals: ::prost::alloc::vec::Vec<QuotaIntervalUsage>,
6168}
6169#[derive(Clone, PartialEq, ::prost::Message)]
6170pub struct ListQuotaUsageIntervalsRequest {
6171 #[prost(int32, optional, tag = "1")]
6172 pub page_size: ::core::option::Option<i32>,
6173 #[prost(string, tag = "2")]
6174 pub page_token: ::prost::alloc::string::String,
6175}
6176#[derive(Clone, PartialEq, ::prost::Message)]
6177pub struct ListQuotaUsageIntervalsResponse {
6178 #[prost(message, repeated, tag = "1")]
6179 pub intervals: ::prost::alloc::vec::Vec<QuotaIntervalUsage>,
6180 #[prost(string, tag = "2")]
6181 pub next_page_token: ::prost::alloc::string::String,
6182}
6183#[derive(Clone, PartialEq, ::prost::Message)]
6184pub struct ComputeRequest {
6185 #[prost(message, optional, tag = "1")]
6186 pub input: ::core::option::Option<ExecutionInput>,
6187}
6188#[derive(Clone, PartialEq, ::prost::Message)]
6189pub struct ComputeResponse {
6190 #[prost(message, optional, tag = "1")]
6191 pub result: ::core::option::Option<ComputationResult>,
6192}
6193#[derive(Clone, PartialEq, ::prost::Message)]
6194pub struct BatchComputeWithUnitsRequest {
6195 #[prost(message, repeated, tag = "1")]
6196 pub inputs: ::prost::alloc::vec::Vec<ExecutionInput>,
6197}
6198#[derive(Clone, PartialEq, ::prost::Message)]
6199pub struct BatchComputeWithUnitsResponse {
6200 #[prost(message, repeated, tag = "1")]
6201 pub results: ::prost::alloc::vec::Vec<ComputationOutcomeWithUnits>,
6202}
6203#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6204#[repr(i32)]
6205pub enum ComputeRequestControlError {
6206 Unspecified = 0,
6207 InvalidRequestId = 1,
6208 InvalidPageToken = 2,
6209 InvalidPageSize = 3,
6210}
6211impl ComputeRequestControlError {
6212 pub fn as_str_name(&self) -> &'static str {
6217 match self {
6218 Self::Unspecified => "COMPUTE_REQUEST_CONTROL_ERROR_UNSPECIFIED",
6219 Self::InvalidRequestId => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_REQUEST_ID",
6220 Self::InvalidPageToken => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_TOKEN",
6221 Self::InvalidPageSize => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_SIZE",
6222 }
6223 }
6224 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6226 match value {
6227 "COMPUTE_REQUEST_CONTROL_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
6228 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_REQUEST_ID" => {
6229 Some(Self::InvalidRequestId)
6230 }
6231 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_TOKEN" => {
6232 Some(Self::InvalidPageToken)
6233 }
6234 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_SIZE" => {
6235 Some(Self::InvalidPageSize)
6236 }
6237 _ => None,
6238 }
6239 }
6240}
6241#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6242#[repr(i32)]
6243pub enum ComputeRequestAdmissionError {
6244 Unspecified = 0,
6245 TooDeep = 1,
6246 TooManyMessages = 2,
6247 TooLarge = 3,
6248}
6249impl ComputeRequestAdmissionError {
6250 pub fn as_str_name(&self) -> &'static str {
6255 match self {
6256 Self::Unspecified => "COMPUTE_REQUEST_ADMISSION_ERROR_UNSPECIFIED",
6257 Self::TooDeep => "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_DEEP",
6258 Self::TooManyMessages => "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_MANY_MESSAGES",
6259 Self::TooLarge => "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_LARGE",
6260 }
6261 }
6262 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6264 match value {
6265 "COMPUTE_REQUEST_ADMISSION_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
6266 "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_DEEP" => Some(Self::TooDeep),
6267 "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_MANY_MESSAGES" => {
6268 Some(Self::TooManyMessages)
6269 }
6270 "COMPUTE_REQUEST_ADMISSION_ERROR_TOO_LARGE" => Some(Self::TooLarge),
6271 _ => None,
6272 }
6273 }
6274}
6275#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6276#[repr(i32)]
6277pub enum QuotaResourceType {
6278 Unspecified = 0,
6279 ReadRows = 1,
6280 ReadBytes = 2,
6281 Queries = 3,
6282 Errors = 4,
6283 ExecutionTime = 5,
6284}
6285impl QuotaResourceType {
6286 pub fn as_str_name(&self) -> &'static str {
6291 match self {
6292 Self::Unspecified => "QUOTA_RESOURCE_TYPE_UNSPECIFIED",
6293 Self::ReadRows => "QUOTA_RESOURCE_TYPE_READ_ROWS",
6294 Self::ReadBytes => "QUOTA_RESOURCE_TYPE_READ_BYTES",
6295 Self::Queries => "QUOTA_RESOURCE_TYPE_QUERIES",
6296 Self::Errors => "QUOTA_RESOURCE_TYPE_ERRORS",
6297 Self::ExecutionTime => "QUOTA_RESOURCE_TYPE_EXECUTION_TIME",
6298 }
6299 }
6300 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6302 match value {
6303 "QUOTA_RESOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
6304 "QUOTA_RESOURCE_TYPE_READ_ROWS" => Some(Self::ReadRows),
6305 "QUOTA_RESOURCE_TYPE_READ_BYTES" => Some(Self::ReadBytes),
6306 "QUOTA_RESOURCE_TYPE_QUERIES" => Some(Self::Queries),
6307 "QUOTA_RESOURCE_TYPE_ERRORS" => Some(Self::Errors),
6308 "QUOTA_RESOURCE_TYPE_EXECUTION_TIME" => Some(Self::ExecutionTime),
6309 _ => None,
6310 }
6311 }
6312}
6313pub mod compute_service_client {
6315 #![allow(
6316 unused_variables,
6317 dead_code,
6318 missing_docs,
6319 clippy::wildcard_imports,
6320 clippy::let_unit_value,
6321 )]
6322 use tonic::codegen::*;
6323 use tonic::codegen::http::Uri;
6324 #[derive(Debug, Clone)]
6325 pub struct ComputeServiceClient<T> {
6326 inner: tonic::client::Grpc<T>,
6327 }
6328 impl ComputeServiceClient<tonic::transport::Channel> {
6329 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
6331 where
6332 D: TryInto<tonic::transport::Endpoint>,
6333 D::Error: Into<StdError>,
6334 {
6335 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
6336 Ok(Self::new(conn))
6337 }
6338 }
6339 impl<T> ComputeServiceClient<T>
6340 where
6341 T: tonic::client::GrpcService<tonic::body::Body>,
6342 T::Error: Into<StdError>,
6343 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
6344 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
6345 {
6346 pub fn new(inner: T) -> Self {
6347 let inner = tonic::client::Grpc::new(inner);
6348 Self { inner }
6349 }
6350 pub fn with_origin(inner: T, origin: Uri) -> Self {
6351 let inner = tonic::client::Grpc::with_origin(inner, origin);
6352 Self { inner }
6353 }
6354 pub fn with_interceptor<F>(
6355 inner: T,
6356 interceptor: F,
6357 ) -> ComputeServiceClient<InterceptedService<T, F>>
6358 where
6359 F: tonic::service::Interceptor,
6360 T::ResponseBody: Default,
6361 T: tonic::codegen::Service<
6362 http::Request<tonic::body::Body>,
6363 Response = http::Response<
6364 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
6365 >,
6366 >,
6367 <T as tonic::codegen::Service<
6368 http::Request<tonic::body::Body>,
6369 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
6370 {
6371 ComputeServiceClient::new(InterceptedService::new(inner, interceptor))
6372 }
6373 #[must_use]
6378 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6379 self.inner = self.inner.send_compressed(encoding);
6380 self
6381 }
6382 #[must_use]
6384 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6385 self.inner = self.inner.accept_compressed(encoding);
6386 self
6387 }
6388 #[must_use]
6392 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6393 self.inner = self.inner.max_decoding_message_size(limit);
6394 self
6395 }
6396 #[must_use]
6400 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6401 self.inner = self.inner.max_encoding_message_size(limit);
6402 self
6403 }
6404 pub async fn compute(
6405 &mut self,
6406 request: impl tonic::IntoRequest<super::ComputeRequest>,
6407 ) -> std::result::Result<
6408 tonic::Response<super::ComputeResponse>,
6409 tonic::Status,
6410 > {
6411 self.inner
6412 .ready()
6413 .await
6414 .map_err(|e| {
6415 tonic::Status::unknown(
6416 format!("Service was not ready: {}", e.into()),
6417 )
6418 })?;
6419 let codec = tonic::codec::ProstCodec::default();
6420 let path = http::uri::PathAndQuery::from_static(
6421 "/nominal.compute.v1.ComputeService/Compute",
6422 );
6423 let mut req = request.into_request();
6424 req.extensions_mut()
6425 .insert(GrpcMethod::new("nominal.compute.v1.ComputeService", "Compute"));
6426 self.inner.unary(req, path, codec).await
6427 }
6428 pub async fn batch_compute_with_units(
6429 &mut self,
6430 request: impl tonic::IntoRequest<super::BatchComputeWithUnitsRequest>,
6431 ) -> std::result::Result<
6432 tonic::Response<super::BatchComputeWithUnitsResponse>,
6433 tonic::Status,
6434 > {
6435 self.inner
6436 .ready()
6437 .await
6438 .map_err(|e| {
6439 tonic::Status::unknown(
6440 format!("Service was not ready: {}", e.into()),
6441 )
6442 })?;
6443 let codec = tonic::codec::ProstCodec::default();
6444 let path = http::uri::PathAndQuery::from_static(
6445 "/nominal.compute.v1.ComputeService/BatchComputeWithUnits",
6446 );
6447 let mut req = request.into_request();
6448 req.extensions_mut()
6449 .insert(
6450 GrpcMethod::new(
6451 "nominal.compute.v1.ComputeService",
6452 "BatchComputeWithUnits",
6453 ),
6454 );
6455 self.inner.unary(req, path, codec).await
6456 }
6457 pub async fn batch_cancel_requests(
6458 &mut self,
6459 request: impl tonic::IntoRequest<super::BatchCancelRequestsRequest>,
6460 ) -> std::result::Result<
6461 tonic::Response<super::BatchCancelRequestsResponse>,
6462 tonic::Status,
6463 > {
6464 self.inner
6465 .ready()
6466 .await
6467 .map_err(|e| {
6468 tonic::Status::unknown(
6469 format!("Service was not ready: {}", e.into()),
6470 )
6471 })?;
6472 let codec = tonic::codec::ProstCodec::default();
6473 let path = http::uri::PathAndQuery::from_static(
6474 "/nominal.compute.v1.ComputeService/BatchCancelRequests",
6475 );
6476 let mut req = request.into_request();
6477 req.extensions_mut()
6478 .insert(
6479 GrpcMethod::new(
6480 "nominal.compute.v1.ComputeService",
6481 "BatchCancelRequests",
6482 ),
6483 );
6484 self.inner.unary(req, path, codec).await
6485 }
6486 pub async fn batch_get_request_progress(
6487 &mut self,
6488 request: impl tonic::IntoRequest<super::BatchGetRequestProgressRequest>,
6489 ) -> std::result::Result<
6490 tonic::Response<super::BatchGetRequestProgressResponse>,
6491 tonic::Status,
6492 > {
6493 self.inner
6494 .ready()
6495 .await
6496 .map_err(|e| {
6497 tonic::Status::unknown(
6498 format!("Service was not ready: {}", e.into()),
6499 )
6500 })?;
6501 let codec = tonic::codec::ProstCodec::default();
6502 let path = http::uri::PathAndQuery::from_static(
6503 "/nominal.compute.v1.ComputeService/BatchGetRequestProgress",
6504 );
6505 let mut req = request.into_request();
6506 req.extensions_mut()
6507 .insert(
6508 GrpcMethod::new(
6509 "nominal.compute.v1.ComputeService",
6510 "BatchGetRequestProgress",
6511 ),
6512 );
6513 self.inner.unary(req, path, codec).await
6514 }
6515 pub async fn list_quota_usage_intervals(
6516 &mut self,
6517 request: impl tonic::IntoRequest<super::ListQuotaUsageIntervalsRequest>,
6518 ) -> std::result::Result<
6519 tonic::Response<super::ListQuotaUsageIntervalsResponse>,
6520 tonic::Status,
6521 > {
6522 self.inner
6523 .ready()
6524 .await
6525 .map_err(|e| {
6526 tonic::Status::unknown(
6527 format!("Service was not ready: {}", e.into()),
6528 )
6529 })?;
6530 let codec = tonic::codec::ProstCodec::default();
6531 let path = http::uri::PathAndQuery::from_static(
6532 "/nominal.compute.v1.ComputeService/ListQuotaUsageIntervals",
6533 );
6534 let mut req = request.into_request();
6535 req.extensions_mut()
6536 .insert(
6537 GrpcMethod::new(
6538 "nominal.compute.v1.ComputeService",
6539 "ListQuotaUsageIntervals",
6540 ),
6541 );
6542 self.inner.unary(req, path, codec).await
6543 }
6544 }
6545}
6546#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6547#[repr(i32)]
6548pub enum ComputeModelConversionError {
6549 Unspecified = 0,
6550 UnsupportedExpression = 1,
6551 TimeComponentOutOfRange = 2,
6552 IntegerOperandOutOfRange = 3,
6553 ResultIntegerOutOfRange = 4,
6554 InvalidPageToken = 5,
6555}
6556impl ComputeModelConversionError {
6557 pub fn as_str_name(&self) -> &'static str {
6562 match self {
6563 Self::Unspecified => "COMPUTE_MODEL_CONVERSION_ERROR_UNSPECIFIED",
6564 Self::UnsupportedExpression => {
6565 "COMPUTE_MODEL_CONVERSION_ERROR_UNSUPPORTED_EXPRESSION"
6566 }
6567 Self::TimeComponentOutOfRange => {
6568 "COMPUTE_MODEL_CONVERSION_ERROR_TIME_COMPONENT_OUT_OF_RANGE"
6569 }
6570 Self::IntegerOperandOutOfRange => {
6571 "COMPUTE_MODEL_CONVERSION_ERROR_INTEGER_OPERAND_OUT_OF_RANGE"
6572 }
6573 Self::ResultIntegerOutOfRange => {
6574 "COMPUTE_MODEL_CONVERSION_ERROR_RESULT_INTEGER_OUT_OF_RANGE"
6575 }
6576 Self::InvalidPageToken => "COMPUTE_MODEL_CONVERSION_ERROR_INVALID_PAGE_TOKEN",
6577 }
6578 }
6579 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6581 match value {
6582 "COMPUTE_MODEL_CONVERSION_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
6583 "COMPUTE_MODEL_CONVERSION_ERROR_UNSUPPORTED_EXPRESSION" => {
6584 Some(Self::UnsupportedExpression)
6585 }
6586 "COMPUTE_MODEL_CONVERSION_ERROR_TIME_COMPONENT_OUT_OF_RANGE" => {
6587 Some(Self::TimeComponentOutOfRange)
6588 }
6589 "COMPUTE_MODEL_CONVERSION_ERROR_INTEGER_OPERAND_OUT_OF_RANGE" => {
6590 Some(Self::IntegerOperandOutOfRange)
6591 }
6592 "COMPUTE_MODEL_CONVERSION_ERROR_RESULT_INTEGER_OUT_OF_RANGE" => {
6593 Some(Self::ResultIntegerOutOfRange)
6594 }
6595 "COMPUTE_MODEL_CONVERSION_ERROR_INVALID_PAGE_TOKEN" => {
6596 Some(Self::InvalidPageToken)
6597 }
6598 _ => None,
6599 }
6600 }
6601}