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 BatchCancelRequestsRequest {
339 #[prost(string, repeated, tag = "1")]
340 pub request_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
341}
342#[derive(Clone, Copy, PartialEq, ::prost::Message)]
343pub struct BatchCancelRequestsResponse {}
344#[derive(Clone, PartialEq, ::prost::Message)]
345pub struct BatchGetRequestProgressRequest {
346 #[prost(string, repeated, tag = "1")]
347 pub request_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
348}
349#[derive(Clone, Copy, PartialEq, ::prost::Message)]
350pub struct RequestInProgress {
351 #[prost(int64, tag = "1")]
352 pub read_rows: i64,
353 #[prost(int64, tag = "2")]
354 pub total_rows_approx: i64,
355}
356#[derive(Clone, Copy, PartialEq, ::prost::Message)]
357pub struct RequestInactive {}
358#[derive(Clone, PartialEq, ::prost::Message)]
359pub struct RequestProgress {
360 #[prost(string, tag = "1")]
361 pub request_id: ::prost::alloc::string::String,
362 #[prost(oneof = "request_progress::State", tags = "2, 3")]
363 pub state: ::core::option::Option<request_progress::State>,
364}
365pub mod request_progress {
367 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
368 pub enum State {
369 #[prost(message, tag = "2")]
370 InProgress(super::RequestInProgress),
371 #[prost(message, tag = "3")]
372 Inactive(super::RequestInactive),
373 }
374}
375#[derive(Clone, PartialEq, ::prost::Message)]
376pub struct BatchGetRequestProgressResponse {
377 #[prost(message, repeated, tag = "1")]
378 pub progress: ::prost::alloc::vec::Vec<RequestProgress>,
379}
380#[derive(Clone, Copy, PartialEq, ::prost::Message)]
381pub struct QuotaWindow {
382 #[prost(message, optional, tag = "1")]
383 pub start_time: ::core::option::Option<
384 super::super::super::google::protobuf::Timestamp,
385 >,
386 #[prost(message, optional, tag = "2")]
387 pub end_time: ::core::option::Option<
388 super::super::super::google::protobuf::Timestamp,
389 >,
390}
391#[derive(Clone, Copy, PartialEq, ::prost::Message)]
392pub struct QuotaResourceUsage {
393 #[prost(enumeration = "QuotaResourceType", tag = "1")]
394 pub resource: i32,
395 #[prost(double, tag = "2")]
396 pub used: f64,
397 #[prost(double, tag = "3")]
398 pub limit: f64,
399}
400#[derive(Clone, PartialEq, ::prost::Message)]
401pub struct QuotaIntervalUsage {
402 #[prost(int64, tag = "1")]
403 pub duration_seconds: i64,
404 #[prost(message, optional, tag = "2")]
405 pub current_window: ::core::option::Option<QuotaWindow>,
406 #[prost(message, repeated, tag = "3")]
407 pub resources: ::prost::alloc::vec::Vec<QuotaResourceUsage>,
408}
409#[derive(Clone, PartialEq, ::prost::Message)]
410pub struct QuotaUsage {
411 #[prost(message, repeated, tag = "1")]
412 pub intervals: ::prost::alloc::vec::Vec<QuotaIntervalUsage>,
413}
414#[derive(Clone, PartialEq, ::prost::Message)]
415pub struct ListQuotaUsageIntervalsRequest {
416 #[prost(int32, optional, tag = "1")]
417 pub page_size: ::core::option::Option<i32>,
418 #[prost(string, tag = "2")]
419 pub page_token: ::prost::alloc::string::String,
420}
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct ListQuotaUsageIntervalsResponse {
423 #[prost(message, repeated, tag = "1")]
424 pub intervals: ::prost::alloc::vec::Vec<QuotaIntervalUsage>,
425 #[prost(string, tag = "2")]
426 pub next_page_token: ::prost::alloc::string::String,
427}
428#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
429#[repr(i32)]
430pub enum ComputeRequestControlError {
431 Unspecified = 0,
432 InvalidRequestId = 1,
433 InvalidPageToken = 2,
434 InvalidPageSize = 3,
435}
436impl ComputeRequestControlError {
437 pub fn as_str_name(&self) -> &'static str {
442 match self {
443 Self::Unspecified => "COMPUTE_REQUEST_CONTROL_ERROR_UNSPECIFIED",
444 Self::InvalidRequestId => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_REQUEST_ID",
445 Self::InvalidPageToken => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_TOKEN",
446 Self::InvalidPageSize => "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_SIZE",
447 }
448 }
449 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
451 match value {
452 "COMPUTE_REQUEST_CONTROL_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
453 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_REQUEST_ID" => {
454 Some(Self::InvalidRequestId)
455 }
456 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_TOKEN" => {
457 Some(Self::InvalidPageToken)
458 }
459 "COMPUTE_REQUEST_CONTROL_ERROR_INVALID_PAGE_SIZE" => {
460 Some(Self::InvalidPageSize)
461 }
462 _ => None,
463 }
464 }
465}
466#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
467#[repr(i32)]
468pub enum QuotaResourceType {
469 Unspecified = 0,
470 ReadRows = 1,
471 ReadBytes = 2,
472 Queries = 3,
473 Errors = 4,
474 ExecutionTime = 5,
475}
476impl QuotaResourceType {
477 pub fn as_str_name(&self) -> &'static str {
482 match self {
483 Self::Unspecified => "QUOTA_RESOURCE_TYPE_UNSPECIFIED",
484 Self::ReadRows => "QUOTA_RESOURCE_TYPE_READ_ROWS",
485 Self::ReadBytes => "QUOTA_RESOURCE_TYPE_READ_BYTES",
486 Self::Queries => "QUOTA_RESOURCE_TYPE_QUERIES",
487 Self::Errors => "QUOTA_RESOURCE_TYPE_ERRORS",
488 Self::ExecutionTime => "QUOTA_RESOURCE_TYPE_EXECUTION_TIME",
489 }
490 }
491 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
493 match value {
494 "QUOTA_RESOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
495 "QUOTA_RESOURCE_TYPE_READ_ROWS" => Some(Self::ReadRows),
496 "QUOTA_RESOURCE_TYPE_READ_BYTES" => Some(Self::ReadBytes),
497 "QUOTA_RESOURCE_TYPE_QUERIES" => Some(Self::Queries),
498 "QUOTA_RESOURCE_TYPE_ERRORS" => Some(Self::Errors),
499 "QUOTA_RESOURCE_TYPE_EXECUTION_TIME" => Some(Self::ExecutionTime),
500 _ => None,
501 }
502 }
503}
504pub mod compute_service_client {
506 #![allow(
507 unused_variables,
508 dead_code,
509 missing_docs,
510 clippy::wildcard_imports,
511 clippy::let_unit_value,
512 )]
513 use tonic::codegen::*;
514 use tonic::codegen::http::Uri;
515 #[derive(Debug, Clone)]
516 pub struct ComputeServiceClient<T> {
517 inner: tonic::client::Grpc<T>,
518 }
519 impl ComputeServiceClient<tonic::transport::Channel> {
520 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
522 where
523 D: TryInto<tonic::transport::Endpoint>,
524 D::Error: Into<StdError>,
525 {
526 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
527 Ok(Self::new(conn))
528 }
529 }
530 impl<T> ComputeServiceClient<T>
531 where
532 T: tonic::client::GrpcService<tonic::body::Body>,
533 T::Error: Into<StdError>,
534 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
535 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
536 {
537 pub fn new(inner: T) -> Self {
538 let inner = tonic::client::Grpc::new(inner);
539 Self { inner }
540 }
541 pub fn with_origin(inner: T, origin: Uri) -> Self {
542 let inner = tonic::client::Grpc::with_origin(inner, origin);
543 Self { inner }
544 }
545 pub fn with_interceptor<F>(
546 inner: T,
547 interceptor: F,
548 ) -> ComputeServiceClient<InterceptedService<T, F>>
549 where
550 F: tonic::service::Interceptor,
551 T::ResponseBody: Default,
552 T: tonic::codegen::Service<
553 http::Request<tonic::body::Body>,
554 Response = http::Response<
555 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
556 >,
557 >,
558 <T as tonic::codegen::Service<
559 http::Request<tonic::body::Body>,
560 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
561 {
562 ComputeServiceClient::new(InterceptedService::new(inner, interceptor))
563 }
564 #[must_use]
569 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
570 self.inner = self.inner.send_compressed(encoding);
571 self
572 }
573 #[must_use]
575 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
576 self.inner = self.inner.accept_compressed(encoding);
577 self
578 }
579 #[must_use]
583 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
584 self.inner = self.inner.max_decoding_message_size(limit);
585 self
586 }
587 #[must_use]
591 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
592 self.inner = self.inner.max_encoding_message_size(limit);
593 self
594 }
595 pub async fn batch_cancel_requests(
596 &mut self,
597 request: impl tonic::IntoRequest<super::BatchCancelRequestsRequest>,
598 ) -> std::result::Result<
599 tonic::Response<super::BatchCancelRequestsResponse>,
600 tonic::Status,
601 > {
602 self.inner
603 .ready()
604 .await
605 .map_err(|e| {
606 tonic::Status::unknown(
607 format!("Service was not ready: {}", e.into()),
608 )
609 })?;
610 let codec = tonic::codec::ProstCodec::default();
611 let path = http::uri::PathAndQuery::from_static(
612 "/nominal.compute.v1.ComputeService/BatchCancelRequests",
613 );
614 let mut req = request.into_request();
615 req.extensions_mut()
616 .insert(
617 GrpcMethod::new(
618 "nominal.compute.v1.ComputeService",
619 "BatchCancelRequests",
620 ),
621 );
622 self.inner.unary(req, path, codec).await
623 }
624 pub async fn batch_get_request_progress(
625 &mut self,
626 request: impl tonic::IntoRequest<super::BatchGetRequestProgressRequest>,
627 ) -> std::result::Result<
628 tonic::Response<super::BatchGetRequestProgressResponse>,
629 tonic::Status,
630 > {
631 self.inner
632 .ready()
633 .await
634 .map_err(|e| {
635 tonic::Status::unknown(
636 format!("Service was not ready: {}", e.into()),
637 )
638 })?;
639 let codec = tonic::codec::ProstCodec::default();
640 let path = http::uri::PathAndQuery::from_static(
641 "/nominal.compute.v1.ComputeService/BatchGetRequestProgress",
642 );
643 let mut req = request.into_request();
644 req.extensions_mut()
645 .insert(
646 GrpcMethod::new(
647 "nominal.compute.v1.ComputeService",
648 "BatchGetRequestProgress",
649 ),
650 );
651 self.inner.unary(req, path, codec).await
652 }
653 pub async fn list_quota_usage_intervals(
654 &mut self,
655 request: impl tonic::IntoRequest<super::ListQuotaUsageIntervalsRequest>,
656 ) -> std::result::Result<
657 tonic::Response<super::ListQuotaUsageIntervalsResponse>,
658 tonic::Status,
659 > {
660 self.inner
661 .ready()
662 .await
663 .map_err(|e| {
664 tonic::Status::unknown(
665 format!("Service was not ready: {}", e.into()),
666 )
667 })?;
668 let codec = tonic::codec::ProstCodec::default();
669 let path = http::uri::PathAndQuery::from_static(
670 "/nominal.compute.v1.ComputeService/ListQuotaUsageIntervals",
671 );
672 let mut req = request.into_request();
673 req.extensions_mut()
674 .insert(
675 GrpcMethod::new(
676 "nominal.compute.v1.ComputeService",
677 "ListQuotaUsageIntervals",
678 ),
679 );
680 self.inner.unary(req, path, codec).await
681 }
682 }
683}
684#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
685#[repr(i32)]
686pub enum ComputeModelConversionError {
687 Unspecified = 0,
688 UnsupportedExpression = 1,
689 TimeComponentOutOfRange = 2,
690 IntegerOperandOutOfRange = 3,
691}
692impl ComputeModelConversionError {
693 pub fn as_str_name(&self) -> &'static str {
698 match self {
699 Self::Unspecified => "COMPUTE_MODEL_CONVERSION_ERROR_UNSPECIFIED",
700 Self::UnsupportedExpression => {
701 "COMPUTE_MODEL_CONVERSION_ERROR_UNSUPPORTED_EXPRESSION"
702 }
703 Self::TimeComponentOutOfRange => {
704 "COMPUTE_MODEL_CONVERSION_ERROR_TIME_COMPONENT_OUT_OF_RANGE"
705 }
706 Self::IntegerOperandOutOfRange => {
707 "COMPUTE_MODEL_CONVERSION_ERROR_INTEGER_OPERAND_OUT_OF_RANGE"
708 }
709 }
710 }
711 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
713 match value {
714 "COMPUTE_MODEL_CONVERSION_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
715 "COMPUTE_MODEL_CONVERSION_ERROR_UNSUPPORTED_EXPRESSION" => {
716 Some(Self::UnsupportedExpression)
717 }
718 "COMPUTE_MODEL_CONVERSION_ERROR_TIME_COMPONENT_OUT_OF_RANGE" => {
719 Some(Self::TimeComponentOutOfRange)
720 }
721 "COMPUTE_MODEL_CONVERSION_ERROR_INTEGER_OPERAND_OUT_OF_RANGE" => {
722 Some(Self::IntegerOperandOutOfRange)
723 }
724 _ => None,
725 }
726 }
727}
728#[derive(Clone, PartialEq, ::prost::Message)]
729pub struct DatasetReference {
730 #[prost(message, optional, tag = "1")]
731 pub name: ::core::option::Option<StringConstant>,
732}
733#[derive(Clone, PartialEq, ::prost::Message)]
734pub struct DurationExpression {
735 #[prost(oneof = "duration_expression::Kind", tags = "1, 2, 3, 4")]
736 pub kind: ::core::option::Option<duration_expression::Kind>,
737}
738pub mod duration_expression {
740 #[derive(Clone, PartialEq, ::prost::Oneof)]
741 pub enum Kind {
742 #[prost(string, tag = "1")]
743 VariableName(::prost::alloc::string::String),
744 #[prost(message, tag = "2")]
745 Amount(super::DurationAmount),
746 #[prost(message, tag = "3")]
747 Binary(::prost::alloc::boxed::Box<super::BinaryDurationExpression>),
748 #[prost(message, tag = "4")]
749 Negated(::prost::alloc::boxed::Box<super::DurationExpression>),
750 }
751}
752#[derive(Clone, PartialEq, ::prost::Message)]
753pub struct DurationAmount {
754 #[prost(message, optional, tag = "1")]
755 pub count: ::core::option::Option<IntegerConstant>,
756 #[prost(enumeration = "super::super::types::time::TimeUnit", tag = "2")]
757 pub unit: i32,
758}
759#[derive(Clone, PartialEq, ::prost::Message)]
760pub struct BinaryDurationExpression {
761 #[prost(enumeration = "DurationOperation", tag = "1")]
762 pub operation: i32,
763 #[prost(message, optional, boxed, tag = "2")]
764 pub left: ::core::option::Option<::prost::alloc::boxed::Box<DurationExpression>>,
765 #[prost(message, optional, boxed, tag = "3")]
766 pub right: ::core::option::Option<::prost::alloc::boxed::Box<DurationExpression>>,
767}
768#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
769#[repr(i32)]
770pub enum DurationOperation {
771 Unspecified = 0,
772 Add = 1,
773 Subtract = 2,
774}
775impl DurationOperation {
776 pub fn as_str_name(&self) -> &'static str {
781 match self {
782 Self::Unspecified => "DURATION_OPERATION_UNSPECIFIED",
783 Self::Add => "DURATION_OPERATION_ADD",
784 Self::Subtract => "DURATION_OPERATION_SUBTRACT",
785 }
786 }
787 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
789 match value {
790 "DURATION_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
791 "DURATION_OPERATION_ADD" => Some(Self::Add),
792 "DURATION_OPERATION_SUBTRACT" => Some(Self::Subtract),
793 _ => None,
794 }
795 }
796}
797#[derive(Clone, PartialEq, ::prost::Message)]
798pub struct TagPredicateExpression {
799 #[prost(oneof = "tag_predicate_expression::Kind", tags = "1, 2, 3")]
800 pub kind: ::core::option::Option<tag_predicate_expression::Kind>,
801}
802pub mod tag_predicate_expression {
804 #[derive(Clone, PartialEq, ::prost::Oneof)]
805 pub enum Kind {
806 #[prost(message, tag = "1")]
807 In(super::TagMembershipExpression),
808 #[prost(message, tag = "2")]
809 NotIn(super::TagMembershipExpression),
810 #[prost(message, tag = "3")]
811 And(::prost::alloc::boxed::Box<super::TagConjunctionExpression>),
812 }
813}
814#[derive(Clone, PartialEq, ::prost::Message)]
815pub struct TagMembershipExpression {
816 #[prost(message, optional, tag = "1")]
817 pub key: ::core::option::Option<StringConstant>,
818 #[prost(message, optional, tag = "2")]
819 pub values: ::core::option::Option<ParameterizedStringSet>,
820}
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct TagConjunctionExpression {
823 #[prost(message, optional, boxed, tag = "1")]
824 pub left: ::core::option::Option<::prost::alloc::boxed::Box<TagPredicateExpression>>,
825 #[prost(message, optional, boxed, tag = "2")]
826 pub right: ::core::option::Option<
827 ::prost::alloc::boxed::Box<TagPredicateExpression>,
828 >,
829}
830#[derive(Clone, PartialEq, ::prost::Message)]
831pub struct TagKeySet {
832 #[prost(message, optional, tag = "1")]
833 pub keys: ::core::option::Option<ParameterizedStringSet>,
834}
835#[derive(Clone, PartialEq, ::prost::Message)]
836pub struct AssetReferenceExpression {
837 #[prost(oneof = "asset_reference_expression::Kind", tags = "1, 2")]
838 pub kind: ::core::option::Option<asset_reference_expression::Kind>,
839}
840pub mod asset_reference_expression {
842 #[derive(Clone, PartialEq, ::prost::Oneof)]
843 pub enum Kind {
844 #[prost(string, tag = "1")]
845 Literal(::prost::alloc::string::String),
846 #[prost(string, tag = "2")]
847 VariableName(::prost::alloc::string::String),
848 }
849}
850#[derive(Clone, PartialEq, ::prost::Message)]
851pub struct RunReferenceExpression {
852 #[prost(oneof = "run_reference_expression::Kind", tags = "1, 2")]
853 pub kind: ::core::option::Option<run_reference_expression::Kind>,
854}
855pub mod run_reference_expression {
857 #[derive(Clone, PartialEq, ::prost::Oneof)]
858 pub enum Kind {
859 #[prost(string, tag = "1")]
860 Literal(::prost::alloc::string::String),
861 #[prost(string, tag = "2")]
862 VariableName(::prost::alloc::string::String),
863 }
864}
865#[derive(Clone, PartialEq, ::prost::Message)]
866pub struct DataSourceReferenceExpression {
867 #[prost(oneof = "data_source_reference_expression::Kind", tags = "1, 2")]
868 pub kind: ::core::option::Option<data_source_reference_expression::Kind>,
869}
870pub mod data_source_reference_expression {
872 #[derive(Clone, PartialEq, ::prost::Oneof)]
873 pub enum Kind {
874 #[prost(string, tag = "1")]
875 Literal(::prost::alloc::string::String),
876 #[prost(string, tag = "2")]
877 VariableName(::prost::alloc::string::String),
878 }
879}
880#[derive(Clone, PartialEq, ::prost::Message)]
881pub struct ResourceTypeReferenceExpression {
882 #[prost(oneof = "resource_type_reference_expression::Kind", tags = "1, 2")]
883 pub kind: ::core::option::Option<resource_type_reference_expression::Kind>,
884}
885pub mod resource_type_reference_expression {
887 #[derive(Clone, PartialEq, ::prost::Oneof)]
888 pub enum Kind {
889 #[prost(string, tag = "1")]
890 Literal(::prost::alloc::string::String),
891 #[prost(string, tag = "2")]
892 VariableName(::prost::alloc::string::String),
893 }
894}
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct ChannelSelection {
897 #[prost(oneof = "channel_selection::Source", tags = "1, 2, 3")]
898 pub source: ::core::option::Option<channel_selection::Source>,
899}
900pub mod channel_selection {
902 #[derive(Clone, PartialEq, ::prost::Oneof)]
903 pub enum Source {
904 #[prost(message, tag = "1")]
905 DataSource(super::DataSourceChannelSelection),
906 #[prost(message, tag = "2")]
907 Asset(super::AssetChannelSelection),
908 #[prost(message, tag = "3")]
909 Run(super::RunChannelSelection),
910 }
911}
912#[derive(Clone, PartialEq, ::prost::Message)]
913pub struct DataSourceChannelSelection {
914 #[prost(message, optional, tag = "1")]
915 pub data_source: ::core::option::Option<DataSourceReferenceExpression>,
916 #[prost(message, optional, tag = "2")]
917 pub channel: ::core::option::Option<StringConstant>,
918 #[prost(message, optional, tag = "3")]
919 pub tags: ::core::option::Option<ChannelTagConstraints>,
920 #[prost(message, optional, tag = "4")]
921 pub grouping_keys: ::core::option::Option<TagKeySet>,
922 #[prost(enumeration = "SeriesStorageEngine", optional, tag = "5")]
923 pub storage: ::core::option::Option<i32>,
924}
925#[derive(Clone, PartialEq, ::prost::Message)]
926pub struct AssetChannelSelection {
927 #[prost(message, optional, tag = "1")]
928 pub asset: ::core::option::Option<AssetReferenceExpression>,
929 #[prost(message, optional, tag = "2")]
930 pub data_scope: ::core::option::Option<StringConstant>,
931 #[prost(message, optional, tag = "3")]
932 pub channel: ::core::option::Option<StringConstant>,
933 #[prost(message, optional, tag = "4")]
934 pub tags: ::core::option::Option<ChannelTagConstraints>,
935 #[prost(message, optional, tag = "5")]
936 pub grouping_keys: ::core::option::Option<TagKeySet>,
937}
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct RunChannelSelection {
940 #[prost(message, optional, tag = "1")]
941 pub run: ::core::option::Option<RunReferenceExpression>,
942 #[prost(message, optional, tag = "2")]
943 pub asset: ::core::option::Option<AssetReferenceExpression>,
944 #[prost(message, optional, tag = "3")]
945 pub data_scope: ::core::option::Option<StringConstant>,
946 #[prost(message, optional, tag = "4")]
947 pub channel: ::core::option::Option<StringConstant>,
948 #[prost(message, optional, tag = "5")]
949 pub tags: ::core::option::Option<ChannelTagConstraints>,
950 #[prost(message, optional, tag = "6")]
951 pub grouping_keys: ::core::option::Option<TagKeySet>,
952}
953#[derive(Clone, PartialEq, ::prost::Message)]
954pub struct ChannelTagConstraints {
955 #[prost(oneof = "channel_tag_constraints::Kind", tags = "1, 2")]
956 pub kind: ::core::option::Option<channel_tag_constraints::Kind>,
957}
958pub mod channel_tag_constraints {
960 #[derive(Clone, PartialEq, ::prost::Oneof)]
961 pub enum Kind {
962 #[prost(message, tag = "1")]
963 ExactValues(super::ExactTagValues),
964 #[prost(message, tag = "2")]
965 Predicate(super::TagPredicateExpression),
966 }
967}
968#[derive(Clone, PartialEq, ::prost::Message)]
969pub struct ExactTagValues {
970 #[prost(map = "string, message", tag = "1")]
971 pub values: ::std::collections::HashMap<
972 ::prost::alloc::string::String,
973 StringConstant,
974 >,
975}
976#[derive(Clone, PartialEq, ::prost::Message)]
977pub struct SeriesSampling {
978 #[prost(oneof = "series_sampling::Kind", tags = "1, 2")]
979 pub kind: ::core::option::Option<series_sampling::Kind>,
980}
981pub mod series_sampling {
983 #[derive(Clone, PartialEq, ::prost::Oneof)]
984 pub enum Kind {
985 #[prost(message, tag = "1")]
986 EveryNthPerSeries(super::IntegerConstant),
987 #[prost(message, tag = "2")]
988 HashSubsample(super::IntegerConstant),
989 }
990}
991#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
992#[repr(i32)]
993pub enum SeriesStorageEngine {
994 Unspecified = 0,
995 Iceberg = 1,
996 Clickhouse = 2,
997}
998impl SeriesStorageEngine {
999 pub fn as_str_name(&self) -> &'static str {
1004 match self {
1005 Self::Unspecified => "SERIES_STORAGE_ENGINE_UNSPECIFIED",
1006 Self::Iceberg => "SERIES_STORAGE_ENGINE_ICEBERG",
1007 Self::Clickhouse => "SERIES_STORAGE_ENGINE_CLICKHOUSE",
1008 }
1009 }
1010 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1012 match value {
1013 "SERIES_STORAGE_ENGINE_UNSPECIFIED" => Some(Self::Unspecified),
1014 "SERIES_STORAGE_ENGINE_ICEBERG" => Some(Self::Iceberg),
1015 "SERIES_STORAGE_ENGINE_CLICKHOUSE" => Some(Self::Clickhouse),
1016 _ => None,
1017 }
1018 }
1019}
1020#[derive(Clone, PartialEq, ::prost::Message)]
1021pub struct EventPredicateExpression {
1022 #[prost(
1023 oneof = "event_predicate_expression::Kind",
1024 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"
1025 )]
1026 pub kind: ::core::option::Option<event_predicate_expression::Kind>,
1027}
1028pub mod event_predicate_expression {
1030 #[derive(Clone, PartialEq, ::prost::Oneof)]
1031 pub enum Kind {
1032 #[prost(message, tag = "1")]
1033 SearchText(super::StringConstant),
1034 #[prost(message, tag = "2")]
1035 After(super::TimestampConstant),
1036 #[prost(message, tag = "3")]
1037 Before(super::TimestampConstant),
1038 #[prost(message, tag = "4")]
1039 TimestampCondition(super::EventTimestampCondition),
1040 #[prost(message, tag = "5")]
1041 Asset(super::AssetReferenceExpression),
1042 #[prost(message, tag = "6")]
1043 TemplateRid(super::StringConstant),
1044 #[prost(message, tag = "7")]
1045 WorkbookRid(super::StringConstant),
1046 #[prost(message, tag = "8")]
1047 DataReviewRid(super::StringConstant),
1048 #[prost(
1049 enumeration = "super::super::super::event::v2::SearchEventOriginType",
1050 tag = "9"
1051 )]
1052 OriginType(i32),
1053 #[prost(message, tag = "10")]
1054 DataReviewCheckRid(super::StringConstant),
1055 #[prost(
1056 enumeration = "super::super::super::event::v2::EventDispositionStatus",
1057 tag = "11"
1058 )]
1059 Disposition(i32),
1060 #[prost(message, tag = "12")]
1061 Priority(super::StringConstant),
1062 #[prost(message, tag = "13")]
1063 AssigneeRid(super::StringConstant),
1064 #[prost(enumeration = "super::super::super::event::v2::EventType", tag = "14")]
1065 EventType(i32),
1066 #[prost(message, tag = "15")]
1067 CreatedByRid(super::StringConstant),
1068 #[prost(message, tag = "16")]
1069 Label(super::StringConstant),
1070 #[prost(message, tag = "17")]
1071 Property(super::EventPropertyPredicate),
1072 #[prost(message, tag = "18")]
1073 All(super::EventPredicateGroup),
1074 #[prost(message, tag = "19")]
1075 Any(super::EventPredicateGroup),
1076 #[prost(message, tag = "20")]
1077 Negation(::prost::alloc::boxed::Box<super::EventPredicateExpression>),
1078 #[prost(message, tag = "21")]
1079 WorkspaceRid(super::StringConstant),
1080 #[prost(message, tag = "22")]
1081 ProcedureRid(super::StringConstant),
1082 #[prost(message, tag = "23")]
1083 ProcedureExecutionRid(super::StringConstant),
1084 #[prost(message, tag = "24")]
1085 StepId(super::StringConstant),
1086 }
1087}
1088#[derive(Clone, PartialEq, ::prost::Message)]
1089pub struct EventTimestampCondition {
1090 #[prost(message, optional, tag = "1")]
1091 pub timestamp: ::core::option::Option<TimestampConstant>,
1092 #[prost(
1093 enumeration = "super::super::event::v2::EventTimeFilterCondition",
1094 tag = "2"
1095 )]
1096 pub condition: i32,
1097}
1098#[derive(Clone, PartialEq, ::prost::Message)]
1099pub struct EventPropertyPredicate {
1100 #[prost(message, optional, tag = "1")]
1101 pub name: ::core::option::Option<StringConstant>,
1102 #[prost(message, optional, tag = "2")]
1103 pub value: ::core::option::Option<StringConstant>,
1104}
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct EventPredicateGroup {
1107 #[prost(message, repeated, tag = "1")]
1108 pub predicates: ::prost::alloc::vec::Vec<EventPredicateExpression>,
1109}
1110#[derive(Clone, PartialEq, ::prost::Message)]
1111pub struct LogPredicate {
1112 #[prost(oneof = "log_predicate::Kind", tags = "1, 2, 3, 4, 5, 6")]
1113 pub kind: ::core::option::Option<log_predicate::Kind>,
1114}
1115pub mod log_predicate {
1117 #[derive(Clone, PartialEq, ::prost::Oneof)]
1118 pub enum Kind {
1119 #[prost(string, tag = "1")]
1120 MessageRegex(::prost::alloc::string::String),
1121 #[prost(string, tag = "2")]
1122 MessageContainsCaseInsensitive(::prost::alloc::string::String),
1123 #[prost(message, tag = "3")]
1124 AttributeRegex(super::LogAttributeRegex),
1125 #[prost(message, tag = "4")]
1126 All(super::LogPredicateGroup),
1127 #[prost(message, tag = "5")]
1128 Any(super::LogPredicateGroup),
1129 #[prost(message, tag = "6")]
1130 Negation(::prost::alloc::boxed::Box<super::LogPredicate>),
1131 }
1132}
1133#[derive(Clone, PartialEq, ::prost::Message)]
1134pub struct LogAttributeRegex {
1135 #[prost(message, optional, tag = "1")]
1136 pub key: ::core::option::Option<StringConstant>,
1137 #[prost(string, tag = "2")]
1138 pub regex: ::prost::alloc::string::String,
1139}
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct LogPredicateGroup {
1142 #[prost(message, repeated, tag = "1")]
1143 pub predicates: ::prost::alloc::vec::Vec<LogPredicate>,
1144}
1145#[derive(Clone, PartialEq, ::prost::Message)]
1146pub struct NumericReduction {
1147 #[prost(oneof = "numeric_reduction::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
1148 pub kind: ::core::option::Option<numeric_reduction::Kind>,
1149}
1150pub mod numeric_reduction {
1152 #[derive(Clone, PartialEq, ::prost::Oneof)]
1153 pub enum Kind {
1154 #[prost(message, tag = "1")]
1155 Sum(super::SumReduction),
1156 #[prost(message, tag = "2")]
1157 Average(super::AverageReduction),
1158 #[prost(message, tag = "3")]
1159 Min(super::MinReduction),
1160 #[prost(message, tag = "4")]
1161 Max(super::MaxReduction),
1162 #[prost(message, tag = "5")]
1163 Count(super::CountReduction),
1164 #[prost(message, tag = "6")]
1165 StandardDeviation(super::StandardDeviationReduction),
1166 #[prost(message, tag = "7")]
1167 RootMeanSquare(super::RootMeanSquareReduction),
1168 #[prost(message, tag = "8")]
1169 Percentile(super::DoubleConstant),
1170 #[prost(message, tag = "9")]
1171 Udf(super::super::super::modules::v1::UdfSource),
1172 }
1173}
1174#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1175pub struct SumReduction {}
1176#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1177pub struct AverageReduction {}
1178#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1179pub struct MinReduction {}
1180#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1181pub struct MaxReduction {}
1182#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1183pub struct CountReduction {}
1184#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1185pub struct StandardDeviationReduction {}
1186#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1187pub struct RootMeanSquareReduction {}
1188#[derive(Clone, PartialEq, ::prost::Message)]
1189pub struct DurationInput {
1190 #[prost(oneof = "duration_input::Kind", tags = "1, 2")]
1191 pub kind: ::core::option::Option<duration_input::Kind>,
1192}
1193pub mod duration_input {
1195 #[derive(Clone, PartialEq, ::prost::Oneof)]
1196 pub enum Kind {
1197 #[prost(message, tag = "1")]
1198 Components(super::DurationConstant),
1199 #[prost(message, tag = "2")]
1200 Arithmetic(super::DurationExpression),
1201 }
1202}
1203#[derive(Clone, PartialEq, ::prost::Message)]
1204pub struct RangePersistence {
1205 #[prost(message, optional, tag = "1")]
1206 pub min_points: ::core::option::Option<IntegerConstant>,
1207 #[prost(message, optional, tag = "2")]
1208 pub min_duration: ::core::option::Option<DurationInput>,
1209 #[prost(enumeration = "RangeStartSelection", optional, tag = "3")]
1210 pub start: ::core::option::Option<i32>,
1211}
1212#[derive(Clone, PartialEq, ::prost::Message)]
1213pub struct SpreadThreshold {
1214 #[prost(oneof = "spread_threshold::Kind", tags = "1, 2")]
1215 pub kind: ::core::option::Option<spread_threshold::Kind>,
1216}
1217pub mod spread_threshold {
1219 #[derive(Clone, PartialEq, ::prost::Oneof)]
1220 pub enum Kind {
1221 #[prost(message, tag = "1")]
1222 Absolute(super::DoubleConstant),
1223 #[prost(message, tag = "2")]
1224 Percentage(super::DoubleConstant),
1225 }
1226}
1227#[derive(Clone, PartialEq, ::prost::Message)]
1228pub struct TagGrouping {
1229 #[prost(map = "string, string", tag = "1")]
1230 pub tags: ::std::collections::HashMap<
1231 ::prost::alloc::string::String,
1232 ::prost::alloc::string::String,
1233 >,
1234}
1235#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1236#[repr(i32)]
1237pub enum RangeStartSelection {
1238 Unspecified = 0,
1239 ConditionStart = 1,
1240 PersistenceStart = 2,
1241}
1242impl RangeStartSelection {
1243 pub fn as_str_name(&self) -> &'static str {
1248 match self {
1249 Self::Unspecified => "RANGE_START_SELECTION_UNSPECIFIED",
1250 Self::ConditionStart => "RANGE_START_SELECTION_CONDITION_START",
1251 Self::PersistenceStart => "RANGE_START_SELECTION_PERSISTENCE_START",
1252 }
1253 }
1254 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1256 match value {
1257 "RANGE_START_SELECTION_UNSPECIFIED" => Some(Self::Unspecified),
1258 "RANGE_START_SELECTION_CONDITION_START" => Some(Self::ConditionStart),
1259 "RANGE_START_SELECTION_PERSISTENCE_START" => Some(Self::PersistenceStart),
1260 _ => None,
1261 }
1262 }
1263}
1264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1265#[repr(i32)]
1266pub enum UnboundedDurationComparison {
1267 Unspecified = 0,
1268 Infinity = 1,
1269 WindowBound = 2,
1270}
1271impl UnboundedDurationComparison {
1272 pub fn as_str_name(&self) -> &'static str {
1277 match self {
1278 Self::Unspecified => "UNBOUNDED_DURATION_COMPARISON_UNSPECIFIED",
1279 Self::Infinity => "UNBOUNDED_DURATION_COMPARISON_INFINITY",
1280 Self::WindowBound => "UNBOUNDED_DURATION_COMPARISON_WINDOW_BOUND",
1281 }
1282 }
1283 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1285 match value {
1286 "UNBOUNDED_DURATION_COMPARISON_UNSPECIFIED" => Some(Self::Unspecified),
1287 "UNBOUNDED_DURATION_COMPARISON_INFINITY" => Some(Self::Infinity),
1288 "UNBOUNDED_DURATION_COMPARISON_WINDOW_BOUND" => Some(Self::WindowBound),
1289 _ => None,
1290 }
1291 }
1292}
1293#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1294#[repr(i32)]
1295pub enum NumericBoundsCondition {
1296 Unspecified = 0,
1297 Outside = 1,
1298 OutsideOrEqual = 2,
1299 Inside = 3,
1300 InsideOrEqual = 4,
1301}
1302impl NumericBoundsCondition {
1303 pub fn as_str_name(&self) -> &'static str {
1308 match self {
1309 Self::Unspecified => "NUMERIC_BOUNDS_CONDITION_UNSPECIFIED",
1310 Self::Outside => "NUMERIC_BOUNDS_CONDITION_OUTSIDE",
1311 Self::OutsideOrEqual => "NUMERIC_BOUNDS_CONDITION_OUTSIDE_OR_EQUAL",
1312 Self::Inside => "NUMERIC_BOUNDS_CONDITION_INSIDE",
1313 Self::InsideOrEqual => "NUMERIC_BOUNDS_CONDITION_INSIDE_OR_EQUAL",
1314 }
1315 }
1316 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1318 match value {
1319 "NUMERIC_BOUNDS_CONDITION_UNSPECIFIED" => Some(Self::Unspecified),
1320 "NUMERIC_BOUNDS_CONDITION_OUTSIDE" => Some(Self::Outside),
1321 "NUMERIC_BOUNDS_CONDITION_OUTSIDE_OR_EQUAL" => Some(Self::OutsideOrEqual),
1322 "NUMERIC_BOUNDS_CONDITION_INSIDE" => Some(Self::Inside),
1323 "NUMERIC_BOUNDS_CONDITION_INSIDE_OR_EQUAL" => Some(Self::InsideOrEqual),
1324 _ => None,
1325 }
1326 }
1327}
1328#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1329#[repr(i32)]
1330pub enum SeriesEqualityMode {
1331 Unspecified = 0,
1332 AllEqual = 1,
1333 NotAllEqual = 2,
1334}
1335impl SeriesEqualityMode {
1336 pub fn as_str_name(&self) -> &'static str {
1341 match self {
1342 Self::Unspecified => "SERIES_EQUALITY_MODE_UNSPECIFIED",
1343 Self::AllEqual => "SERIES_EQUALITY_MODE_ALL_EQUAL",
1344 Self::NotAllEqual => "SERIES_EQUALITY_MODE_NOT_ALL_EQUAL",
1345 }
1346 }
1347 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1349 match value {
1350 "SERIES_EQUALITY_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1351 "SERIES_EQUALITY_MODE_ALL_EQUAL" => Some(Self::AllEqual),
1352 "SERIES_EQUALITY_MODE_NOT_ALL_EQUAL" => Some(Self::NotAllEqual),
1353 _ => None,
1354 }
1355 }
1356}
1357#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1358#[repr(i32)]
1359pub enum CategoricalMembershipOperation {
1360 Unspecified = 0,
1361 In = 1,
1362 NotIn = 2,
1363 MatchesAnyRegex = 3,
1364}
1365impl CategoricalMembershipOperation {
1366 pub fn as_str_name(&self) -> &'static str {
1371 match self {
1372 Self::Unspecified => "CATEGORICAL_MEMBERSHIP_OPERATION_UNSPECIFIED",
1373 Self::In => "CATEGORICAL_MEMBERSHIP_OPERATION_IN",
1374 Self::NotIn => "CATEGORICAL_MEMBERSHIP_OPERATION_NOT_IN",
1375 Self::MatchesAnyRegex => "CATEGORICAL_MEMBERSHIP_OPERATION_MATCHES_ANY_REGEX",
1376 }
1377 }
1378 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1380 match value {
1381 "CATEGORICAL_MEMBERSHIP_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
1382 "CATEGORICAL_MEMBERSHIP_OPERATION_IN" => Some(Self::In),
1383 "CATEGORICAL_MEMBERSHIP_OPERATION_NOT_IN" => Some(Self::NotIn),
1384 "CATEGORICAL_MEMBERSHIP_OPERATION_MATCHES_ANY_REGEX" => {
1385 Some(Self::MatchesAnyRegex)
1386 }
1387 _ => None,
1388 }
1389 }
1390}
1391#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1392#[repr(i32)]
1393pub enum ExtremaSelection {
1394 Unspecified = 0,
1395 Peaks = 1,
1396 Troughs = 2,
1397 Both = 3,
1398}
1399impl ExtremaSelection {
1400 pub fn as_str_name(&self) -> &'static str {
1405 match self {
1406 Self::Unspecified => "EXTREMA_SELECTION_UNSPECIFIED",
1407 Self::Peaks => "EXTREMA_SELECTION_PEAKS",
1408 Self::Troughs => "EXTREMA_SELECTION_TROUGHS",
1409 Self::Both => "EXTREMA_SELECTION_BOTH",
1410 }
1411 }
1412 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1414 match value {
1415 "EXTREMA_SELECTION_UNSPECIFIED" => Some(Self::Unspecified),
1416 "EXTREMA_SELECTION_PEAKS" => Some(Self::Peaks),
1417 "EXTREMA_SELECTION_TROUGHS" => Some(Self::Troughs),
1418 "EXTREMA_SELECTION_BOTH" => Some(Self::Both),
1419 _ => None,
1420 }
1421 }
1422}
1423#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1424#[repr(i32)]
1425pub enum RangePaddingSides {
1426 Unspecified = 0,
1427 Start = 1,
1428 End = 2,
1429 Both = 3,
1430}
1431impl RangePaddingSides {
1432 pub fn as_str_name(&self) -> &'static str {
1437 match self {
1438 Self::Unspecified => "RANGE_PADDING_SIDES_UNSPECIFIED",
1439 Self::Start => "RANGE_PADDING_SIDES_START",
1440 Self::End => "RANGE_PADDING_SIDES_END",
1441 Self::Both => "RANGE_PADDING_SIDES_BOTH",
1442 }
1443 }
1444 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1446 match value {
1447 "RANGE_PADDING_SIDES_UNSPECIFIED" => Some(Self::Unspecified),
1448 "RANGE_PADDING_SIDES_START" => Some(Self::Start),
1449 "RANGE_PADDING_SIDES_END" => Some(Self::End),
1450 "RANGE_PADDING_SIDES_BOTH" => Some(Self::Both),
1451 _ => None,
1452 }
1453 }
1454}
1455#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1456#[repr(i32)]
1457pub enum RefpropSubstance {
1458 Unspecified = 0,
1459 Nitrogen = 1,
1460 Oxygen = 2,
1461 Helium = 3,
1462 Hydrogen = 4,
1463 Methane = 5,
1464 Propane = 6,
1465 Butane = 7,
1466 Water = 8,
1467 Xenon = 9,
1468 Air = 10,
1469 CarbonDioxide = 11,
1470 Argon = 12,
1471 CarbonMonoxide = 13,
1472 JetA4658 = 14,
1473 JetA3638 = 15,
1474}
1475impl RefpropSubstance {
1476 pub fn as_str_name(&self) -> &'static str {
1481 match self {
1482 Self::Unspecified => "REFPROP_SUBSTANCE_UNSPECIFIED",
1483 Self::Nitrogen => "REFPROP_SUBSTANCE_NITROGEN",
1484 Self::Oxygen => "REFPROP_SUBSTANCE_OXYGEN",
1485 Self::Helium => "REFPROP_SUBSTANCE_HELIUM",
1486 Self::Hydrogen => "REFPROP_SUBSTANCE_HYDROGEN",
1487 Self::Methane => "REFPROP_SUBSTANCE_METHANE",
1488 Self::Propane => "REFPROP_SUBSTANCE_PROPANE",
1489 Self::Butane => "REFPROP_SUBSTANCE_BUTANE",
1490 Self::Water => "REFPROP_SUBSTANCE_WATER",
1491 Self::Xenon => "REFPROP_SUBSTANCE_XENON",
1492 Self::Air => "REFPROP_SUBSTANCE_AIR",
1493 Self::CarbonDioxide => "REFPROP_SUBSTANCE_CARBON_DIOXIDE",
1494 Self::Argon => "REFPROP_SUBSTANCE_ARGON",
1495 Self::CarbonMonoxide => "REFPROP_SUBSTANCE_CARBON_MONOXIDE",
1496 Self::JetA4658 => "REFPROP_SUBSTANCE_JET_A_4658",
1497 Self::JetA3638 => "REFPROP_SUBSTANCE_JET_A_3638",
1498 }
1499 }
1500 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1502 match value {
1503 "REFPROP_SUBSTANCE_UNSPECIFIED" => Some(Self::Unspecified),
1504 "REFPROP_SUBSTANCE_NITROGEN" => Some(Self::Nitrogen),
1505 "REFPROP_SUBSTANCE_OXYGEN" => Some(Self::Oxygen),
1506 "REFPROP_SUBSTANCE_HELIUM" => Some(Self::Helium),
1507 "REFPROP_SUBSTANCE_HYDROGEN" => Some(Self::Hydrogen),
1508 "REFPROP_SUBSTANCE_METHANE" => Some(Self::Methane),
1509 "REFPROP_SUBSTANCE_PROPANE" => Some(Self::Propane),
1510 "REFPROP_SUBSTANCE_BUTANE" => Some(Self::Butane),
1511 "REFPROP_SUBSTANCE_WATER" => Some(Self::Water),
1512 "REFPROP_SUBSTANCE_XENON" => Some(Self::Xenon),
1513 "REFPROP_SUBSTANCE_AIR" => Some(Self::Air),
1514 "REFPROP_SUBSTANCE_CARBON_DIOXIDE" => Some(Self::CarbonDioxide),
1515 "REFPROP_SUBSTANCE_ARGON" => Some(Self::Argon),
1516 "REFPROP_SUBSTANCE_CARBON_MONOXIDE" => Some(Self::CarbonMonoxide),
1517 "REFPROP_SUBSTANCE_JET_A_4658" => Some(Self::JetA4658),
1518 "REFPROP_SUBSTANCE_JET_A_3638" => Some(Self::JetA3638),
1519 _ => None,
1520 }
1521 }
1522}
1523#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1524#[repr(i32)]
1525pub enum RefpropProperty {
1526 Unspecified = 0,
1527 Temperature = 1,
1528 Pressure = 2,
1529 MassDensity = 3,
1530 MassSpecificEnthalpy = 4,
1531 MassSpecificInternalEnergy = 5,
1532 MassSpecificEntropy = 6,
1533 Viscosity = 7,
1534}
1535impl RefpropProperty {
1536 pub fn as_str_name(&self) -> &'static str {
1541 match self {
1542 Self::Unspecified => "REFPROP_PROPERTY_UNSPECIFIED",
1543 Self::Temperature => "REFPROP_PROPERTY_TEMPERATURE",
1544 Self::Pressure => "REFPROP_PROPERTY_PRESSURE",
1545 Self::MassDensity => "REFPROP_PROPERTY_MASS_DENSITY",
1546 Self::MassSpecificEnthalpy => "REFPROP_PROPERTY_MASS_SPECIFIC_ENTHALPY",
1547 Self::MassSpecificInternalEnergy => {
1548 "REFPROP_PROPERTY_MASS_SPECIFIC_INTERNAL_ENERGY"
1549 }
1550 Self::MassSpecificEntropy => "REFPROP_PROPERTY_MASS_SPECIFIC_ENTROPY",
1551 Self::Viscosity => "REFPROP_PROPERTY_VISCOSITY",
1552 }
1553 }
1554 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1556 match value {
1557 "REFPROP_PROPERTY_UNSPECIFIED" => Some(Self::Unspecified),
1558 "REFPROP_PROPERTY_TEMPERATURE" => Some(Self::Temperature),
1559 "REFPROP_PROPERTY_PRESSURE" => Some(Self::Pressure),
1560 "REFPROP_PROPERTY_MASS_DENSITY" => Some(Self::MassDensity),
1561 "REFPROP_PROPERTY_MASS_SPECIFIC_ENTHALPY" => Some(Self::MassSpecificEnthalpy),
1562 "REFPROP_PROPERTY_MASS_SPECIFIC_INTERNAL_ENERGY" => {
1563 Some(Self::MassSpecificInternalEnergy)
1564 }
1565 "REFPROP_PROPERTY_MASS_SPECIFIC_ENTROPY" => Some(Self::MassSpecificEntropy),
1566 "REFPROP_PROPERTY_VISCOSITY" => Some(Self::Viscosity),
1567 _ => None,
1568 }
1569 }
1570}
1571#[derive(Clone, PartialEq, ::prost::Message)]
1572pub struct ResourcePredicate {
1573 #[prost(oneof = "resource_predicate::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
1574 pub kind: ::core::option::Option<resource_predicate::Kind>,
1575}
1576pub mod resource_predicate {
1578 #[derive(Clone, PartialEq, ::prost::Oneof)]
1579 pub enum Kind {
1580 #[prost(message, tag = "1")]
1581 Properties(super::super::super::types::PropertiesFilter),
1582 #[prost(message, tag = "2")]
1583 NumericProperty(super::super::super::types::NumericPropertyPredicate),
1584 #[prost(message, tag = "3")]
1585 NumericPropertyRange(super::super::super::types::NumericPropertyRangePredicate),
1586 #[prost(message, tag = "4")]
1587 Labels(super::super::super::types::LabelsFilter),
1588 #[prost(message, tag = "5")]
1589 Workspace(super::StringConstant),
1590 #[prost(message, tag = "6")]
1591 All(super::ResourcePredicateGroup),
1592 #[prost(message, tag = "7")]
1593 Any(super::ResourcePredicateGroup),
1594 #[prost(message, tag = "8")]
1595 Negation(::prost::alloc::boxed::Box<super::ResourcePredicate>),
1596 }
1597}
1598#[derive(Clone, PartialEq, ::prost::Message)]
1599pub struct ResourcePredicateGroup {
1600 #[prost(message, repeated, tag = "1")]
1601 pub predicates: ::prost::alloc::vec::Vec<ResourcePredicate>,
1602}
1603#[derive(Clone, PartialEq, ::prost::Message)]
1604pub struct DatasetResourceSearch {
1605 #[prost(int32, optional, tag = "3")]
1606 pub max_results: ::core::option::Option<i32>,
1607 #[prost(oneof = "dataset_resource_search::Target", tags = "1, 2")]
1608 pub target: ::core::option::Option<dataset_resource_search::Target>,
1609}
1610pub mod dataset_resource_search {
1612 #[derive(Clone, PartialEq, ::prost::Oneof)]
1613 pub enum Target {
1614 #[prost(message, tag = "1")]
1615 Assets(super::ResourcePredicate),
1616 #[prost(message, tag = "2")]
1617 Runs(super::ResourcePredicate),
1618 }
1619}
1620#[derive(Clone, PartialEq, ::prost::Message)]
1621pub struct SignalFilterConfiguration {
1622 #[prost(oneof = "signal_filter_configuration::Kind", tags = "1, 2, 3, 4")]
1623 pub kind: ::core::option::Option<signal_filter_configuration::Kind>,
1624}
1625pub mod signal_filter_configuration {
1627 #[derive(Clone, PartialEq, ::prost::Oneof)]
1628 pub enum Kind {
1629 #[prost(message, tag = "1")]
1630 LowPass(super::SingleCutoffFilter),
1631 #[prost(message, tag = "2")]
1632 HighPass(super::SingleCutoffFilter),
1633 #[prost(message, tag = "3")]
1634 BandPass(super::FrequencyBandFilter),
1635 #[prost(message, tag = "4")]
1636 BandStop(super::FrequencyBandFilter),
1637 }
1638}
1639#[derive(Clone, PartialEq, ::prost::Message)]
1640pub struct SingleCutoffFilter {
1641 #[prost(message, optional, tag = "1")]
1642 pub cutoff_frequency: ::core::option::Option<DoubleConstant>,
1643}
1644#[derive(Clone, PartialEq, ::prost::Message)]
1645pub struct FrequencyBandFilter {
1646 #[prost(message, optional, tag = "1")]
1647 pub lower_frequency: ::core::option::Option<DoubleConstant>,
1648 #[prost(message, optional, tag = "2")]
1649 pub upper_frequency: ::core::option::Option<DoubleConstant>,
1650}
1651#[derive(Clone, PartialEq, ::prost::Message)]
1652pub struct NumericExpression {
1653 #[prost(
1654 oneof = "numeric_expression::Kind",
1655 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"
1656 )]
1657 pub kind: ::core::option::Option<numeric_expression::Kind>,
1658}
1659pub mod numeric_expression {
1661 #[derive(Clone, PartialEq, ::prost::Oneof)]
1662 pub enum Kind {
1663 #[prost(message, tag = "1")]
1664 Reference(super::TimeSeriesReference),
1665 #[prost(message, tag = "2")]
1666 Constant(super::DoubleConstant),
1667 #[prost(message, tag = "3")]
1668 Unary(::prost::alloc::boxed::Box<super::NumericUnaryExpression>),
1669 #[prost(message, tag = "4")]
1670 Binary(::prost::alloc::boxed::Box<super::NumericBinaryExpression>),
1671 #[prost(message, tag = "5")]
1672 Nary(super::NumericNaryExpression),
1673 #[prost(message, tag = "6")]
1674 Bitwise(::prost::alloc::boxed::Box<super::NumericBitwiseExpression>),
1675 #[prost(message, tag = "7")]
1676 Conditional(::prost::alloc::boxed::Box<super::NumericConditionalExpression>),
1677 #[prost(message, tag = "8")]
1678 CumulativeSum(::prost::alloc::boxed::Box<super::NumericCumulativeSumExpression>),
1679 #[prost(message, tag = "9")]
1680 Derivative(::prost::alloc::boxed::Box<super::NumericDerivativeExpression>),
1681 #[prost(message, tag = "10")]
1682 Integral(::prost::alloc::boxed::Box<super::NumericIntegralExpression>),
1683 #[prost(message, tag = "11")]
1684 TimeRangeFilter(
1685 ::prost::alloc::boxed::Box<super::NumericTimeRangeFilterExpression>,
1686 ),
1687 #[prost(message, tag = "12")]
1688 TimeShift(::prost::alloc::boxed::Box<super::NumericTimeShiftExpression>),
1689 #[prost(message, tag = "13")]
1690 ValueDifference(
1691 ::prost::alloc::boxed::Box<super::NumericValueDifferenceExpression>,
1692 ),
1693 #[prost(message, tag = "14")]
1694 PhaseUnwrap(::prost::alloc::boxed::Box<super::NumericPhaseUnwrapExpression>),
1695 #[prost(message, tag = "15")]
1696 PointLimit(::prost::alloc::boxed::Box<super::NumericPointLimitExpression>),
1697 #[prost(message, tag = "16")]
1698 NthPointDownsample(
1699 ::prost::alloc::boxed::Box<super::NumericNthPointDownsampleExpression>,
1700 ),
1701 #[prost(message, tag = "17")]
1702 LargestTriangleThreeBuckets(
1703 ::prost::alloc::boxed::Box<
1704 super::NumericLargestTriangleThreeBucketsExpression,
1705 >,
1706 ),
1707 #[prost(message, tag = "18")]
1708 ConditionFilter(
1709 ::prost::alloc::boxed::Box<super::NumericConditionFilterExpression>,
1710 ),
1711 #[prost(message, tag = "19")]
1712 ThresholdFilter(
1713 ::prost::alloc::boxed::Box<super::NumericThresholdFilterExpression>,
1714 ),
1715 #[prost(message, tag = "57")]
1716 DropNan(::prost::alloc::boxed::Box<super::NumericDropNanExpression>),
1717 #[prost(message, tag = "20")]
1718 ApproximateFilter(
1719 ::prost::alloc::boxed::Box<super::NumericApproximateFilterExpression>,
1720 ),
1721 #[prost(message, tag = "21")]
1722 SignalFilter(::prost::alloc::boxed::Box<super::NumericSignalFilterExpression>),
1723 #[prost(message, tag = "22")]
1724 UnitConversion(
1725 ::prost::alloc::boxed::Box<super::NumericUnitConversionExpression>,
1726 ),
1727 #[prost(message, tag = "23")]
1728 UnitOverride(::prost::alloc::boxed::Box<super::NumericUnitOverrideExpression>),
1729 #[prost(message, tag = "24")]
1730 ZScore(::prost::alloc::boxed::Box<super::NumericZScoreExpression>),
1731 #[prost(message, tag = "25")]
1732 Union(super::NumericUnionExpression),
1733 #[prost(message, tag = "26")]
1734 TimeShiftV2(::prost::alloc::boxed::Box<super::NumericTimeShiftV2Expression>),
1735 #[prost(message, tag = "27")]
1736 ResampleV2(::prost::alloc::boxed::Box<super::NumericResampleV2Expression>),
1737 #[prost(message, tag = "28")]
1738 ToStartOfInterval(
1739 ::prost::alloc::boxed::Box<super::NumericToStartOfIntervalExpression>,
1740 ),
1741 #[prost(message, tag = "29")]
1742 ScalarTransform(
1743 ::prost::alloc::boxed::Box<super::NumericScalarTransformExpression>,
1744 ),
1745 #[prost(message, tag = "30")]
1746 Arithmetic(super::NumericArithmeticExpression),
1747 #[prost(message, tag = "31")]
1748 FormulaFilter(super::NumericFormulaFilterExpression),
1749 #[prost(message, tag = "32")]
1750 LiteralBitwise(
1751 ::prost::alloc::boxed::Box<super::NumericLiteralBitwiseExpression>,
1752 ),
1753 #[prost(message, tag = "33")]
1754 Resample(::prost::alloc::boxed::Box<super::NumericResampleExpression>),
1755 #[prost(message, tag = "34")]
1756 Refprop(super::NumericRefpropExpression),
1757 #[prost(message, tag = "35")]
1758 RollingAggregation(
1759 ::prost::alloc::boxed::Box<super::NumericRollingAggregationExpression>,
1760 ),
1761 #[prost(message, tag = "36")]
1762 DuplicateTimestampAggregation(
1763 ::prost::alloc::boxed::Box<
1764 super::NumericDuplicateTimestampAggregationExpression,
1765 >,
1766 ),
1767 #[prost(message, tag = "37")]
1768 TagFilter(::prost::alloc::boxed::Box<super::NumericTagFilterExpression>),
1769 #[prost(message, tag = "38")]
1770 TagSelection(::prost::alloc::boxed::Box<super::NumericTagSelectionExpression>),
1771 #[prost(message, tag = "39")]
1772 AbsoluteTimestamp(
1773 ::prost::alloc::boxed::Box<super::NumericAbsoluteTimestampExpression>,
1774 ),
1775 #[prost(message, tag = "40")]
1776 ReduceUnderRanges(
1777 ::prost::alloc::boxed::Box<super::NumericReduceUnderRangesExpression>,
1778 ),
1779 #[prost(message, tag = "41")]
1780 ChannelSelection(super::ChannelSelection),
1781 #[prost(message, tag = "42")]
1782 LogMatches(::prost::alloc::boxed::Box<super::NumericLogMatchesExpression>),
1783 #[prost(message, tag = "43")]
1784 CountDuplicates(super::NumericCountDuplicatesExpression),
1785 #[prost(message, tag = "44")]
1786 ModuleFunction(super::ModuleFunctionExpression),
1787 #[prost(message, tag = "45")]
1788 CategoricalMapping(
1789 ::prost::alloc::boxed::Box<super::NumericCategoricalMappingExpression>,
1790 ),
1791 #[prost(message, tag = "46")]
1792 StructField(::prost::alloc::boxed::Box<super::NumericStructFieldExpression>),
1793 #[prost(message, tag = "47")]
1794 RangeFilter(::prost::alloc::boxed::Box<super::NumericRangeFilterExpression>),
1795 #[prost(message, tag = "48")]
1796 GroupWithinRanges(
1797 ::prost::alloc::boxed::Box<super::NumericGroupWithinRangesExpression>,
1798 ),
1799 #[prost(message, tag = "49")]
1800 Aggregation(::prost::alloc::boxed::Box<super::NumericAggregationExpression>),
1801 #[prost(message, tag = "50")]
1802 RangeDuration(::prost::alloc::boxed::Box<super::NumericRangeDurationExpression>),
1803 #[prost(message, tag = "51")]
1804 ScalarUdf(super::ScalarUdfExpression),
1805 #[prost(message, tag = "52")]
1806 ArrayIndex(::prost::alloc::boxed::Box<super::NumericArrayIndexExpression>),
1807 #[prost(message, tag = "53")]
1808 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
1809 #[prost(message, tag = "54")]
1810 ResourceProperty(::prost::alloc::boxed::Box<super::ResourcePropertySelection>),
1811 #[prost(message, tag = "55")]
1812 IntervalTags(::prost::alloc::boxed::Box<super::NumericIntervalTagsExpression>),
1813 #[prost(message, tag = "56")]
1814 TimeDifference(
1815 ::prost::alloc::boxed::Box<super::NumericTimeDifferenceExpression>,
1816 ),
1817 }
1818}
1819#[derive(Clone, PartialEq, ::prost::Message)]
1820pub struct ComputeContext {
1821 #[prost(map = "string, message", tag = "1")]
1822 pub variables: ::std::collections::HashMap<
1823 ::prost::alloc::string::String,
1824 VariableValue,
1825 >,
1826 #[prost(map = "string, message", tag = "2")]
1827 pub datasets: ::std::collections::HashMap<
1828 ::prost::alloc::string::String,
1829 DatasetExpression,
1830 >,
1831 #[prost(message, optional, tag = "3")]
1832 pub default_fill: ::core::option::Option<ComputeFillStrategy>,
1833 #[prost(enumeration = "ComputeAlignmentStrategy", optional, tag = "4")]
1834 pub default_alignment: ::core::option::Option<i32>,
1835 #[prost(bool, optional, tag = "5")]
1836 pub apply_data_scope_offsets: ::core::option::Option<bool>,
1837 #[prost(bool, optional, tag = "6")]
1838 pub resolve_assets_through_datasets: ::core::option::Option<bool>,
1839}
1840#[derive(Clone, PartialEq, ::prost::Message)]
1841pub struct ComputeFillStrategy {
1842 #[prost(oneof = "compute_fill_strategy::Kind", tags = "1")]
1843 pub kind: ::core::option::Option<compute_fill_strategy::Kind>,
1844}
1845pub mod compute_fill_strategy {
1847 #[derive(Clone, PartialEq, ::prost::Oneof)]
1848 pub enum Kind {
1849 #[prost(message, tag = "1")]
1850 ForwardFill(super::DurationConstant),
1851 }
1852}
1853#[derive(Clone, PartialEq, ::prost::Message)]
1854pub struct VariableValue {
1855 #[prost(oneof = "variable_value::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
1856 pub kind: ::core::option::Option<variable_value::Kind>,
1857}
1858pub mod variable_value {
1860 #[derive(Clone, PartialEq, ::prost::Oneof)]
1861 pub enum Kind {
1862 #[prost(double, tag = "1")]
1863 DoubleValue(f64),
1864 #[prost(int32, tag = "2")]
1865 IntegerValue(i32),
1866 #[prost(string, tag = "3")]
1867 StringValue(::prost::alloc::string::String),
1868 #[prost(message, tag = "4")]
1869 StringSet(super::StringSetLiteral),
1870 #[prost(message, tag = "5")]
1871 Duration(super::ComputeDuration),
1872 #[prost(message, tag = "6")]
1873 Timestamp(super::ComputeTimestamp),
1874 #[prost(message, tag = "7")]
1875 Expression(super::BoundExpression),
1876 #[prost(message, tag = "8")]
1877 Channel(super::ChannelSelection),
1878 #[prost(message, tag = "9")]
1879 Series(super::SeriesBinding),
1880 #[prost(message, tag = "10")]
1881 ModuleFunction(super::ModuleFunctionExpression),
1882 }
1883}
1884#[derive(Clone, PartialEq, ::prost::Message)]
1885pub struct BoundExpression {
1886 #[prost(message, optional, tag = "1")]
1887 pub expression: ::core::option::Option<ExpressionNode>,
1888 #[prost(message, optional, tag = "2")]
1889 pub context: ::core::option::Option<ComputeContext>,
1890}
1891#[derive(Clone, PartialEq, ::prost::Message)]
1892pub struct SeriesBinding {
1893 #[prost(message, optional, tag = "1")]
1894 pub series_selection: ::core::option::Option<SeriesSelection>,
1895 #[prost(message, optional, tag = "2")]
1896 pub grouping_keys: ::core::option::Option<TagKeySet>,
1897}
1898#[derive(Clone, PartialEq, ::prost::Message)]
1899pub struct ModuleFunctionExpression {
1900 #[prost(message, optional, tag = "1")]
1901 pub module: ::core::option::Option<StringConstant>,
1902 #[prost(message, optional, tag = "2")]
1903 pub function_name: ::core::option::Option<StringConstant>,
1904 #[prost(message, optional, tag = "3")]
1905 pub version: ::core::option::Option<StringConstant>,
1906 #[prost(map = "string, message", tag = "4")]
1907 pub arguments: ::std::collections::HashMap<
1908 ::prost::alloc::string::String,
1909 FunctionArgument,
1910 >,
1911}
1912#[derive(Clone, PartialEq, ::prost::Message)]
1913pub struct FunctionArgument {
1914 #[prost(oneof = "function_argument::Kind", tags = "1, 2")]
1915 pub kind: ::core::option::Option<function_argument::Kind>,
1916}
1917pub mod function_argument {
1919 #[derive(Clone, PartialEq, ::prost::Oneof)]
1920 pub enum Kind {
1921 #[prost(string, tag = "1")]
1922 VariableName(::prost::alloc::string::String),
1923 #[prost(message, tag = "2")]
1924 Value(super::VariableValue),
1925 }
1926}
1927#[derive(Clone, PartialEq, ::prost::Message)]
1928pub struct DatasetExpression {
1929 #[prost(
1930 oneof = "dataset_expression::Kind",
1931 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13"
1932 )]
1933 pub kind: ::core::option::Option<dataset_expression::Kind>,
1934}
1935pub mod dataset_expression {
1937 #[derive(Clone, PartialEq, ::prost::Oneof)]
1938 pub enum Kind {
1939 #[prost(message, tag = "1")]
1940 Asset(super::AssetReferenceExpression),
1941 #[prost(message, tag = "2")]
1942 Run(super::RunReferenceExpression),
1943 #[prost(message, tag = "3")]
1944 DataSource(super::DataSourceReferenceExpression),
1945 #[prost(message, tag = "4")]
1946 ResourceSearch(super::DatasetResourceSearch),
1947 #[prost(message, tag = "5")]
1948 Concatenate(super::DatasetConcatenation),
1949 #[prost(message, tag = "6")]
1950 Tag(::prost::alloc::boxed::Box<super::DatasetTagInjection>),
1951 #[prost(message, tag = "7")]
1952 Filter(::prost::alloc::boxed::Box<super::DatasetTagFilter>),
1953 #[prost(message, tag = "8")]
1954 TimeShift(::prost::alloc::boxed::Box<super::DatasetTimeShift>),
1955 #[prost(message, tag = "9")]
1956 AnchorAlignment(::prost::alloc::boxed::Box<super::DatasetAnchorAlignment>),
1957 #[prost(message, tag = "10")]
1958 AddSeries(::prost::alloc::boxed::Box<super::DatasetSeriesAddition>),
1959 #[prost(message, tag = "11")]
1960 RemoveSeries(::prost::alloc::boxed::Box<super::DatasetSeriesRemoval>),
1961 #[prost(message, tag = "12")]
1962 Reference(super::DatasetReference),
1963 #[prost(message, tag = "13")]
1964 Dimensions(::prost::alloc::boxed::Box<super::DatasetDimensions>),
1965 }
1966}
1967#[derive(Clone, PartialEq, ::prost::Message)]
1968pub struct DatasetConcatenation {
1969 #[prost(message, repeated, tag = "1")]
1970 pub inputs: ::prost::alloc::vec::Vec<DatasetExpression>,
1971}
1972#[derive(Clone, PartialEq, ::prost::Message)]
1973pub struct DatasetTagInjection {
1974 #[prost(message, optional, boxed, tag = "1")]
1975 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1976 #[prost(message, optional, tag = "2")]
1977 pub key: ::core::option::Option<StringConstant>,
1978 #[prost(message, optional, tag = "3")]
1979 pub value: ::core::option::Option<StringConstant>,
1980}
1981#[derive(Clone, PartialEq, ::prost::Message)]
1982pub struct DatasetTagFilter {
1983 #[prost(message, optional, boxed, tag = "1")]
1984 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1985 #[prost(message, optional, tag = "2")]
1986 pub predicate: ::core::option::Option<TagPredicateExpression>,
1987}
1988#[derive(Clone, PartialEq, ::prost::Message)]
1989pub struct DatasetTimeShift {
1990 #[prost(message, optional, boxed, tag = "1")]
1991 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1992 #[prost(message, optional, tag = "2")]
1993 pub offset: ::core::option::Option<DurationExpression>,
1994}
1995#[derive(Clone, PartialEq, ::prost::Message)]
1996pub struct DatasetSeriesAddition {
1997 #[prost(message, optional, boxed, tag = "1")]
1998 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
1999 #[prost(message, repeated, tag = "2")]
2000 pub series: ::prost::alloc::vec::Vec<NamedSeriesExpression>,
2001}
2002#[derive(Clone, PartialEq, ::prost::Message)]
2003pub struct NamedSeriesExpression {
2004 #[prost(message, optional, tag = "1")]
2005 pub name: ::core::option::Option<StringConstant>,
2006 #[prost(message, optional, tag = "2")]
2007 pub definition: ::core::option::Option<SeriesExpression>,
2008}
2009#[derive(Clone, PartialEq, ::prost::Message)]
2010pub struct DatasetSeriesRemoval {
2011 #[prost(message, optional, boxed, tag = "1")]
2012 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2013 #[prost(message, repeated, tag = "2")]
2014 pub names: ::prost::alloc::vec::Vec<StringConstant>,
2015}
2016#[derive(Clone, PartialEq, ::prost::Message)]
2017pub struct DatasetDimensions {
2018 #[prost(message, optional, boxed, tag = "1")]
2019 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2020 #[prost(message, repeated, tag = "2")]
2021 pub dimensions: ::prost::alloc::vec::Vec<ResourceDimension>,
2022}
2023#[derive(Clone, PartialEq, ::prost::Message)]
2024pub struct ResourceDimension {
2025 #[prost(message, optional, tag = "1")]
2026 pub tag_key: ::core::option::Option<StringConstant>,
2027 #[prost(oneof = "resource_dimension::Value", tags = "2, 3")]
2028 pub value: ::core::option::Option<resource_dimension::Value>,
2029}
2030pub mod resource_dimension {
2032 #[derive(Clone, PartialEq, ::prost::Oneof)]
2033 pub enum Value {
2034 #[prost(message, tag = "2")]
2035 StringProperty(super::StringConstant),
2036 #[prost(message, tag = "3")]
2037 Identity(super::ResourceTypeReferenceExpression),
2038 }
2039}
2040#[derive(Clone, PartialEq, ::prost::Message)]
2041pub struct SeriesSelection {
2042 #[prost(message, optional, tag = "1")]
2043 pub name: ::core::option::Option<StringConstant>,
2044 #[prost(message, optional, boxed, tag = "2")]
2045 pub dataset: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2046 #[prost(message, optional, tag = "3")]
2047 pub sampling: ::core::option::Option<SeriesSampling>,
2048 #[prost(enumeration = "SeriesStorageEngine", optional, tag = "4")]
2049 pub storage: ::core::option::Option<i32>,
2050}
2051#[derive(Clone, PartialEq, ::prost::Message)]
2052pub struct ResourcePropertySelection {
2053 #[prost(string, tag = "1")]
2054 pub property: ::prost::alloc::string::String,
2055 #[prost(message, optional, boxed, tag = "2")]
2056 pub dataset: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2057}
2058#[derive(Clone, PartialEq, ::prost::Message)]
2059pub struct ExpressionNode {
2060 #[prost(oneof = "expression_node::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
2061 pub kind: ::core::option::Option<expression_node::Kind>,
2062}
2063pub mod expression_node {
2065 #[derive(Clone, PartialEq, ::prost::Oneof)]
2066 pub enum Kind {
2067 #[prost(message, tag = "1")]
2068 Numeric(super::NumericExpression),
2069 #[prost(message, tag = "2")]
2070 Categorical(super::CategoricalExpression),
2071 #[prost(message, tag = "3")]
2072 Log(super::LogExpression),
2073 #[prost(message, tag = "4")]
2074 Ranges(super::RangeExpression),
2075 #[prost(message, tag = "5")]
2076 Array(super::ArrayExpression),
2077 #[prost(message, tag = "6")]
2078 Structure(super::StructExpression),
2079 #[prost(message, tag = "7")]
2080 CurveFit(super::CurveFitExpression),
2081 #[prost(message, tag = "8")]
2082 Video(super::TimeSeriesReference),
2083 #[prost(message, tag = "9")]
2084 Reference(super::TimeSeriesReference),
2085 }
2086}
2087#[derive(Clone, PartialEq, ::prost::Message)]
2088pub struct SeriesExpression {
2089 #[prost(oneof = "series_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7")]
2090 pub kind: ::core::option::Option<series_expression::Kind>,
2091}
2092pub mod series_expression {
2094 #[derive(Clone, PartialEq, ::prost::Oneof)]
2095 pub enum Kind {
2096 #[prost(message, tag = "1")]
2097 Numeric(::prost::alloc::boxed::Box<super::NumericExpression>),
2098 #[prost(message, tag = "2")]
2099 Categorical(::prost::alloc::boxed::Box<super::CategoricalExpression>),
2100 #[prost(message, tag = "3")]
2101 Log(::prost::alloc::boxed::Box<super::LogExpression>),
2102 #[prost(message, tag = "4")]
2103 Array(::prost::alloc::boxed::Box<super::ArrayExpression>),
2104 #[prost(message, tag = "5")]
2105 Structure(::prost::alloc::boxed::Box<super::StructExpression>),
2106 #[prost(message, tag = "6")]
2107 Video(super::TimeSeriesReference),
2108 #[prost(message, tag = "7")]
2109 Reference(super::TimeSeriesReference),
2110 }
2111}
2112#[derive(Clone, PartialEq, ::prost::Message)]
2113pub struct ArrayExpression {
2114 #[prost(oneof = "array_expression::Kind", tags = "1, 2")]
2115 pub kind: ::core::option::Option<array_expression::Kind>,
2116}
2117pub mod array_expression {
2119 #[derive(Clone, PartialEq, ::prost::Oneof)]
2120 pub enum Kind {
2121 #[prost(message, tag = "1")]
2122 Numeric(::prost::alloc::boxed::Box<super::NumericArrayExpression>),
2123 #[prost(message, tag = "2")]
2124 Categorical(::prost::alloc::boxed::Box<super::CategoricalArrayExpression>),
2125 }
2126}
2127#[derive(Clone, PartialEq, ::prost::Message)]
2128pub struct CurveFitExpression {
2129 #[prost(message, optional, tag = "1")]
2130 pub target: ::core::option::Option<CurveSeriesVariable>,
2131 #[prost(message, optional, tag = "2")]
2132 pub interval: ::core::option::Option<CurveFitInterval>,
2133 #[prost(message, optional, tag = "3")]
2134 pub model: ::core::option::Option<CurveModel>,
2135}
2136#[derive(Clone, PartialEq, ::prost::Message)]
2137pub struct CurveFitInterval {
2138 #[prost(message, optional, tag = "1")]
2139 pub start: ::core::option::Option<TimestampConstant>,
2140 #[prost(message, optional, tag = "2")]
2141 pub end: ::core::option::Option<TimestampConstant>,
2142}
2143#[derive(Clone, PartialEq, ::prost::Message)]
2144pub struct CurveSeriesVariable {
2145 #[prost(message, optional, tag = "1")]
2146 pub series: ::core::option::Option<NumericExpression>,
2147 #[prost(message, optional, tag = "2")]
2148 pub bounds: ::core::option::Option<CurveVariableBounds>,
2149}
2150#[derive(Clone, PartialEq, ::prost::Message)]
2151pub struct CurveVariableBounds {
2152 #[prost(message, optional, tag = "1")]
2153 pub min: ::core::option::Option<DoubleConstant>,
2154 #[prost(message, optional, tag = "2")]
2155 pub max: ::core::option::Option<DoubleConstant>,
2156}
2157#[derive(Clone, PartialEq, ::prost::Message)]
2158pub struct CurveVariable {
2159 #[prost(oneof = "curve_variable::Kind", tags = "1, 2")]
2160 pub kind: ::core::option::Option<curve_variable::Kind>,
2161}
2162pub mod curve_variable {
2164 #[derive(Clone, PartialEq, ::prost::Oneof)]
2165 pub enum Kind {
2166 #[prost(message, tag = "1")]
2167 Series(super::CurveSeriesVariable),
2168 #[prost(message, tag = "2")]
2169 Time(super::CurveTimeVariable),
2170 }
2171}
2172#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2173pub struct CurveTimeVariable {
2174 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "1")]
2175 pub unit: ::core::option::Option<i32>,
2176}
2177#[derive(Clone, PartialEq, ::prost::Message)]
2178pub struct CurveModel {
2179 #[prost(oneof = "curve_model::Kind", tags = "1, 2, 3")]
2180 pub kind: ::core::option::Option<curve_model::Kind>,
2181}
2182pub mod curve_model {
2184 #[derive(Clone, PartialEq, ::prost::Oneof)]
2185 pub enum Kind {
2186 #[prost(message, tag = "1")]
2187 Builtin(super::BuiltinCurveModel),
2188 #[prost(message, tag = "2")]
2189 Polynomial(super::PolynomialCurveModel),
2190 #[prost(message, tag = "3")]
2191 Custom(super::CustomCurveModel),
2192 }
2193}
2194#[derive(Clone, PartialEq, ::prost::Message)]
2195pub struct BuiltinCurveModel {
2196 #[prost(enumeration = "BuiltinCurveForm", tag = "1")]
2197 pub form: i32,
2198 #[prost(message, optional, tag = "2")]
2199 pub independent_variable: ::core::option::Option<CurveVariable>,
2200}
2201#[derive(Clone, PartialEq, ::prost::Message)]
2202pub struct PolynomialCurveModel {
2203 #[prost(message, optional, tag = "1")]
2204 pub independent_variable: ::core::option::Option<CurveVariable>,
2205 #[prost(message, optional, tag = "2")]
2206 pub degree: ::core::option::Option<IntegerConstant>,
2207 #[prost(message, optional, tag = "3")]
2208 pub intercept: ::core::option::Option<DoubleConstant>,
2209}
2210#[derive(Clone, PartialEq, ::prost::Message)]
2211pub struct CustomCurveModel {
2212 #[prost(message, optional, tag = "1")]
2213 pub formula: ::core::option::Option<StringConstant>,
2214 #[prost(map = "string, message", tag = "2")]
2215 pub variables: ::std::collections::HashMap<
2216 ::prost::alloc::string::String,
2217 CurveVariable,
2218 >,
2219 #[prost(map = "string, message", tag = "3")]
2220 pub parameters: ::std::collections::HashMap<
2221 ::prost::alloc::string::String,
2222 DoubleConstant,
2223 >,
2224}
2225#[derive(Clone, PartialEq, ::prost::Message)]
2226pub struct NumericAbsoluteTimestampExpression {
2227 #[prost(message, optional, boxed, tag = "1")]
2228 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
2229 #[prost(enumeration = "super::super::types::time::TimeUnit", tag = "2")]
2230 pub unit: i32,
2231}
2232#[derive(Clone, PartialEq, ::prost::Message)]
2233pub struct NumericTimeDifferenceExpression {
2234 #[prost(message, optional, boxed, tag = "1")]
2235 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
2236 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "2")]
2237 pub unit: ::core::option::Option<i32>,
2238}
2239#[derive(Clone, PartialEq, ::prost::Message)]
2240pub struct NumericReduceUnderRangesExpression {
2241 #[prost(message, optional, boxed, tag = "1")]
2242 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2243 #[prost(message, optional, boxed, tag = "2")]
2244 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2245 #[prost(message, optional, tag = "3")]
2246 pub reduction: ::core::option::Option<NumericReduction>,
2247}
2248#[derive(Clone, PartialEq, ::prost::Message)]
2249pub struct NumericLogMatchesExpression {
2250 #[prost(message, optional, boxed, tag = "1")]
2251 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
2252 #[prost(message, optional, tag = "2")]
2253 pub predicate: ::core::option::Option<LogPredicate>,
2254}
2255#[derive(Clone, PartialEq, ::prost::Message)]
2256pub struct NumericCountDuplicatesExpression {
2257 #[prost(message, repeated, tag = "1")]
2258 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
2259}
2260#[derive(Clone, PartialEq, ::prost::Message)]
2261pub struct NumericCategoricalMappingExpression {
2262 #[prost(message, optional, boxed, tag = "1")]
2263 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2264 #[prost(map = "string, message", tag = "2")]
2265 pub mapping: ::std::collections::HashMap<
2266 ::prost::alloc::string::String,
2267 DoubleConstant,
2268 >,
2269 #[prost(message, optional, tag = "3")]
2270 pub default_value: ::core::option::Option<DoubleConstant>,
2271}
2272#[derive(Clone, PartialEq, ::prost::Message)]
2273pub struct NumericStructFieldExpression {
2274 #[prost(message, optional, boxed, tag = "1")]
2275 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
2276 #[prost(message, repeated, tag = "2")]
2277 pub path: ::prost::alloc::vec::Vec<StringConstant>,
2278 #[prost(
2279 enumeration = "super::super::types::series::SeriesDataType",
2280 optional,
2281 tag = "3"
2282 )]
2283 pub numeric_type: ::core::option::Option<i32>,
2284}
2285#[derive(Clone, PartialEq, ::prost::Message)]
2286pub struct NumericRangeFilterExpression {
2287 #[prost(message, optional, boxed, tag = "1")]
2288 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2289 #[prost(message, optional, boxed, tag = "2")]
2290 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2291}
2292#[derive(Clone, PartialEq, ::prost::Message)]
2293pub struct NumericGroupWithinRangesExpression {
2294 #[prost(message, optional, boxed, tag = "1")]
2295 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2296 #[prost(message, optional, boxed, tag = "2")]
2297 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2298 #[prost(message, optional, tag = "3")]
2299 pub reduction: ::core::option::Option<NumericReduction>,
2300}
2301#[derive(Clone, PartialEq, ::prost::Message)]
2302pub struct NumericAggregationExpression {
2303 #[prost(message, optional, boxed, tag = "1")]
2304 pub input: ::core::option::Option<::prost::alloc::boxed::Box<AggregationInput>>,
2305 #[prost(message, optional, tag = "2")]
2306 pub reduction: ::core::option::Option<NumericReduction>,
2307}
2308#[derive(Clone, PartialEq, ::prost::Message)]
2309pub struct AggregationInput {
2310 #[prost(oneof = "aggregation_input::Kind", tags = "1, 2, 3")]
2311 pub kind: ::core::option::Option<aggregation_input::Kind>,
2312}
2313pub mod aggregation_input {
2315 #[derive(Clone, PartialEq, ::prost::Oneof)]
2316 pub enum Kind {
2317 #[prost(message, tag = "1")]
2318 TimeWindow(::prost::alloc::boxed::Box<super::TimeWindowAggregation>),
2319 #[prost(message, tag = "2")]
2320 PointWindow(::prost::alloc::boxed::Box<super::PointWindowAggregation>),
2321 #[prost(message, tag = "3")]
2322 Grouping(::prost::alloc::boxed::Box<super::GroupedSeriesAggregation>),
2323 }
2324}
2325#[derive(Clone, PartialEq, ::prost::Message)]
2326pub struct TimeWindowAggregation {
2327 #[prost(message, optional, boxed, tag = "1")]
2328 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
2329 #[prost(message, optional, tag = "2")]
2330 pub window: ::core::option::Option<DurationExpression>,
2331}
2332#[derive(Clone, PartialEq, ::prost::Message)]
2333pub struct PointWindowAggregation {
2334 #[prost(message, optional, boxed, tag = "1")]
2335 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
2336 #[prost(message, optional, tag = "2")]
2337 pub points: ::core::option::Option<IntegerConstant>,
2338}
2339#[derive(Clone, PartialEq, ::prost::Message)]
2340pub struct GroupedSeriesAggregation {
2341 #[prost(message, optional, boxed, tag = "1")]
2342 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
2343 #[prost(message, optional, tag = "2")]
2344 pub keys: ::core::option::Option<AggregationGroupingKeys>,
2345 #[prost(message, optional, tag = "3")]
2346 pub timestamp: ::core::option::Option<AggregationTimestamp>,
2347 #[prost(bool, tag = "4")]
2348 pub use_context_alignment: bool,
2349}
2350#[derive(Clone, PartialEq, ::prost::Message)]
2351pub struct AggregationGroupingKeys {
2352 #[prost(oneof = "aggregation_grouping_keys::Kind", tags = "1, 2")]
2353 pub kind: ::core::option::Option<aggregation_grouping_keys::Kind>,
2354}
2355pub mod aggregation_grouping_keys {
2357 #[derive(Clone, PartialEq, ::prost::Oneof)]
2358 pub enum Kind {
2359 #[prost(message, tag = "1")]
2360 Current(super::CurrentGroupingKeys),
2361 #[prost(message, tag = "2")]
2362 Subset(super::TagKeySet),
2363 }
2364}
2365#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2366pub struct CurrentGroupingKeys {}
2367#[derive(Clone, PartialEq, ::prost::Message)]
2368pub struct AggregationTimestamp {
2369 #[prost(oneof = "aggregation_timestamp::Kind", tags = "1, 2")]
2370 pub kind: ::core::option::Option<aggregation_timestamp::Kind>,
2371}
2372pub mod aggregation_timestamp {
2374 #[derive(Clone, PartialEq, ::prost::Oneof)]
2375 pub enum Kind {
2376 #[prost(message, tag = "1")]
2377 Current(super::CurrentTimestamps),
2378 #[prost(message, tag = "2")]
2379 Every(super::DurationExpression),
2380 }
2381}
2382#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2383pub struct CurrentTimestamps {}
2384#[derive(Clone, PartialEq, ::prost::Message)]
2385pub struct NumericRangeDurationExpression {
2386 #[prost(message, optional, boxed, tag = "1")]
2387 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2388 #[prost(enumeration = "UnboundedRangePolicy", tag = "2")]
2389 pub unbounded: i32,
2390 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "3")]
2391 pub unit: ::core::option::Option<i32>,
2392}
2393#[derive(Clone, PartialEq, ::prost::Message)]
2394pub struct ScalarUdfExpression {
2395 #[prost(message, repeated, tag = "1")]
2396 pub inputs: ::prost::alloc::vec::Vec<SeriesExpression>,
2397 #[prost(message, optional, tag = "2")]
2398 pub source: ::core::option::Option<super::super::modules::v1::UdfSource>,
2399}
2400#[derive(Clone, PartialEq, ::prost::Message)]
2401pub struct NumericArrayIndexExpression {
2402 #[prost(message, optional, boxed, tag = "1")]
2403 pub input: ::core::option::Option<
2404 ::prost::alloc::boxed::Box<NumericArrayExpression>,
2405 >,
2406 #[prost(message, optional, tag = "2")]
2407 pub index: ::core::option::Option<IntegerConstant>,
2408}
2409#[derive(Clone, PartialEq, ::prost::Message)]
2410pub struct NumericIntervalTagsExpression {
2411 #[prost(message, optional, boxed, tag = "1")]
2412 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2413 #[prost(message, optional, boxed, tag = "2")]
2414 pub intervals: ::core::option::Option<
2415 ::prost::alloc::boxed::Box<IntervalSourceExpression>,
2416 >,
2417 #[prost(message, optional, tag = "3")]
2418 pub time_shift: ::core::option::Option<IntervalTimeShift>,
2419}
2420#[derive(Clone, PartialEq, ::prost::Message)]
2421pub struct IntervalSourceExpression {
2422 #[prost(oneof = "interval_source_expression::Kind", tags = "1, 2")]
2423 pub kind: ::core::option::Option<interval_source_expression::Kind>,
2424}
2425pub mod interval_source_expression {
2427 #[derive(Clone, PartialEq, ::prost::Oneof)]
2428 pub enum Kind {
2429 #[prost(message, tag = "1")]
2430 Events(super::EventIntervals),
2431 #[prost(message, tag = "2")]
2432 Ranges(::prost::alloc::boxed::Box<super::RangeIntervals>),
2433 }
2434}
2435#[derive(Clone, PartialEq, ::prost::Message)]
2436pub struct EventIntervals {
2437 #[prost(message, optional, tag = "1")]
2438 pub query: ::core::option::Option<EventPredicateExpression>,
2439 #[prost(message, repeated, tag = "2")]
2440 pub tags: ::prost::alloc::vec::Vec<EventIntervalTag>,
2441}
2442#[derive(Clone, PartialEq, ::prost::Message)]
2443pub struct RangeIntervals {
2444 #[prost(message, optional, boxed, tag = "1")]
2445 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2446 #[prost(message, repeated, tag = "2")]
2447 pub tags: ::prost::alloc::vec::Vec<RangeIntervalTag>,
2448}
2449#[derive(Clone, PartialEq, ::prost::Message)]
2450pub struct EventIntervalTag {
2451 #[prost(oneof = "event_interval_tag::Kind", tags = "1, 2, 3, 4, 5")]
2452 pub kind: ::core::option::Option<event_interval_tag::Kind>,
2453}
2454pub mod event_interval_tag {
2456 #[derive(Clone, PartialEq, ::prost::Oneof)]
2457 pub enum Kind {
2458 #[prost(message, tag = "1")]
2459 IntervalIndex(super::IntervalIndexTag),
2460 #[prost(message, tag = "2")]
2461 IntervalStart(super::IntervalStartTag),
2462 #[prost(message, tag = "3")]
2463 EventLevel(super::EventLevelTag),
2464 #[prost(message, tag = "4")]
2465 EventProperty(super::StringConstant),
2466 #[prost(message, tag = "5")]
2467 EventLabel(super::StringConstant),
2468 }
2469}
2470#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2471pub struct RangeIntervalTag {
2472 #[prost(oneof = "range_interval_tag::Kind", tags = "1, 2")]
2473 pub kind: ::core::option::Option<range_interval_tag::Kind>,
2474}
2475pub mod range_interval_tag {
2477 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2478 pub enum Kind {
2479 #[prost(message, tag = "1")]
2480 IntervalIndex(super::IntervalIndexTag),
2481 #[prost(message, tag = "2")]
2482 IntervalStart(super::IntervalStartTag),
2483 }
2484}
2485#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2486pub struct IntervalIndexTag {}
2487#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2488pub struct IntervalStartTag {}
2489#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2490pub struct EventLevelTag {}
2491#[derive(Clone, PartialEq, ::prost::Message)]
2492pub struct IntervalTimeShift {
2493 #[prost(oneof = "interval_time_shift::Kind", tags = "1, 2, 3")]
2494 pub kind: ::core::option::Option<interval_time_shift::Kind>,
2495}
2496pub mod interval_time_shift {
2498 #[derive(Clone, PartialEq, ::prost::Oneof)]
2499 pub enum Kind {
2500 #[prost(message, tag = "1")]
2501 IntervalStart(super::IntervalStartAnchor),
2502 #[prost(message, tag = "2")]
2503 IntervalEnd(super::IntervalEndAnchor),
2504 #[prost(message, tag = "3")]
2505 Event(super::EventOrdinalSelection),
2506 }
2507}
2508#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2509pub struct IntervalStartAnchor {}
2510#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2511pub struct IntervalEndAnchor {}
2512#[derive(Clone, PartialEq, ::prost::Message)]
2513pub struct EventOrdinalSelection {
2514 #[prost(message, optional, tag = "1")]
2515 pub query: ::core::option::Option<EventPredicateExpression>,
2516 #[prost(message, optional, tag = "2")]
2517 pub index: ::core::option::Option<IntegerConstant>,
2518 #[prost(enumeration = "ChronologicalOrder", optional, tag = "3")]
2519 pub order: ::core::option::Option<i32>,
2520}
2521#[derive(Clone, PartialEq, ::prost::Message)]
2522pub struct RangeOrdinalSelection {
2523 #[prost(message, optional, boxed, tag = "1")]
2524 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2525 #[prost(message, optional, tag = "2")]
2526 pub index: ::core::option::Option<IntegerConstant>,
2527 #[prost(enumeration = "ChronologicalOrder", optional, tag = "3")]
2528 pub order: ::core::option::Option<i32>,
2529}
2530#[derive(Clone, PartialEq, ::prost::Message)]
2531pub struct RunAnchorExpression {
2532 #[prost(oneof = "run_anchor_expression::Kind", tags = "1, 2, 3, 4")]
2533 pub kind: ::core::option::Option<run_anchor_expression::Kind>,
2534}
2535pub mod run_anchor_expression {
2537 #[derive(Clone, PartialEq, ::prost::Oneof)]
2538 pub enum Kind {
2539 #[prost(message, tag = "1")]
2540 IntervalStart(super::IntervalStartAnchor),
2541 #[prost(message, tag = "2")]
2542 IntervalEnd(super::IntervalEndAnchor),
2543 #[prost(message, tag = "3")]
2544 Event(super::EventOrdinalSelection),
2545 #[prost(message, tag = "4")]
2546 Ranges(::prost::alloc::boxed::Box<super::RangeOrdinalSelection>),
2547 }
2548}
2549#[derive(Clone, PartialEq, ::prost::Message)]
2550pub struct DatasetAnchorAlignment {
2551 #[prost(message, optional, boxed, tag = "1")]
2552 pub input: ::core::option::Option<::prost::alloc::boxed::Box<DatasetExpression>>,
2553 #[prost(message, optional, boxed, tag = "2")]
2554 pub anchor: ::core::option::Option<::prost::alloc::boxed::Box<RunAnchorExpression>>,
2555 #[prost(bool, tag = "3")]
2556 pub align_to_earliest: bool,
2557}
2558#[derive(Clone, PartialEq, ::prost::Message)]
2559pub struct CategoricalExpression {
2560 #[prost(
2561 oneof = "categorical_expression::Kind",
2562 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23"
2563 )]
2564 pub kind: ::core::option::Option<categorical_expression::Kind>,
2565}
2566pub mod categorical_expression {
2568 #[derive(Clone, PartialEq, ::prost::Oneof)]
2569 pub enum Kind {
2570 #[prost(message, tag = "1")]
2571 Reference(super::TimeSeriesReference),
2572 #[prost(message, tag = "2")]
2573 ChannelSelection(super::ChannelSelection),
2574 #[prost(message, tag = "3")]
2575 ModuleFunction(super::ModuleFunctionExpression),
2576 #[prost(message, tag = "4")]
2577 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
2578 #[prost(message, tag = "5")]
2579 ResourceProperty(::prost::alloc::boxed::Box<super::ResourcePropertySelection>),
2580 #[prost(message, tag = "6")]
2581 DuplicateTimestampAggregation(
2582 ::prost::alloc::boxed::Box<
2583 super::CategoricalDuplicateTimestampAggregationExpression,
2584 >,
2585 ),
2586 #[prost(message, tag = "7")]
2587 Resample(::prost::alloc::boxed::Box<super::CategoricalResampleExpression>),
2588 #[prost(message, tag = "8")]
2589 ResampleV2(::prost::alloc::boxed::Box<super::CategoricalResampleV2Expression>),
2590 #[prost(message, tag = "9")]
2591 NthPointDownsample(
2592 ::prost::alloc::boxed::Box<super::CategoricalNthPointDownsampleExpression>,
2593 ),
2594 #[prost(message, tag = "10")]
2595 TimeRangeFilter(
2596 ::prost::alloc::boxed::Box<super::CategoricalTimeRangeFilterExpression>,
2597 ),
2598 #[prost(message, tag = "11")]
2599 TimeShift(::prost::alloc::boxed::Box<super::CategoricalTimeShiftExpression>),
2600 #[prost(message, tag = "12")]
2601 TimeShiftV2(::prost::alloc::boxed::Box<super::CategoricalTimeShiftV2Expression>),
2602 #[prost(message, tag = "13")]
2603 Union(super::CategoricalUnionExpression),
2604 #[prost(message, tag = "14")]
2605 RangeFilter(::prost::alloc::boxed::Box<super::CategoricalRangeFilterExpression>),
2606 #[prost(message, tag = "15")]
2607 NumericMapping(
2608 ::prost::alloc::boxed::Box<super::CategoricalNumericMappingExpression>,
2609 ),
2610 #[prost(message, tag = "16")]
2611 ArrayIndex(::prost::alloc::boxed::Box<super::CategoricalArrayIndexExpression>),
2612 #[prost(message, tag = "17")]
2613 StructField(::prost::alloc::boxed::Box<super::CategoricalStructFieldExpression>),
2614 #[prost(message, tag = "18")]
2615 Events(super::CategoricalEventsExpression),
2616 #[prost(message, tag = "19")]
2617 Aggregation(::prost::alloc::boxed::Box<super::CategoricalAggregationExpression>),
2618 #[prost(message, tag = "20")]
2619 TagFilter(::prost::alloc::boxed::Box<super::CategoricalTagFilterExpression>),
2620 #[prost(message, tag = "21")]
2621 TagSelection(
2622 ::prost::alloc::boxed::Box<super::CategoricalTagSelectionExpression>,
2623 ),
2624 #[prost(message, tag = "22")]
2625 ScalarUdf(super::ScalarUdfExpression),
2626 #[prost(message, tag = "23")]
2627 ToStartOfInterval(
2628 ::prost::alloc::boxed::Box<super::CategoricalToStartOfIntervalExpression>,
2629 ),
2630 }
2631}
2632#[derive(Clone, PartialEq, ::prost::Message)]
2633pub struct CategoricalDuplicateTimestampAggregationExpression {
2634 #[prost(message, optional, boxed, tag = "1")]
2635 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2636 #[prost(message, optional, tag = "2")]
2637 pub reduction: ::core::option::Option<CategoricalReduction>,
2638}
2639#[derive(Clone, PartialEq, ::prost::Message)]
2640pub struct CategoricalResampleExpression {
2641 #[prost(message, optional, boxed, tag = "1")]
2642 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2643 #[prost(message, optional, tag = "2")]
2644 pub interval: ::core::option::Option<DurationConstant>,
2645 #[prost(message, optional, tag = "3")]
2646 pub fill: ::core::option::Option<CategoricalResampleFill>,
2647}
2648#[derive(Clone, PartialEq, ::prost::Message)]
2649pub struct CategoricalResampleV2Expression {
2650 #[prost(message, optional, boxed, tag = "1")]
2651 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2652 #[prost(message, optional, tag = "2")]
2653 pub interval: ::core::option::Option<DurationExpression>,
2654}
2655#[derive(Clone, PartialEq, ::prost::Message)]
2656pub struct CategoricalNthPointDownsampleExpression {
2657 #[prost(message, optional, boxed, tag = "1")]
2658 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2659 #[prost(message, optional, tag = "2")]
2660 pub every_nth: ::core::option::Option<IntegerConstant>,
2661}
2662#[derive(Clone, PartialEq, ::prost::Message)]
2663pub struct CategoricalTimeRangeFilterExpression {
2664 #[prost(message, optional, boxed, tag = "1")]
2665 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2666 #[prost(message, optional, tag = "2")]
2667 pub start: ::core::option::Option<TimestampConstant>,
2668 #[prost(message, optional, tag = "3")]
2669 pub end: ::core::option::Option<TimestampConstant>,
2670}
2671#[derive(Clone, PartialEq, ::prost::Message)]
2672pub struct CategoricalTimeShiftExpression {
2673 #[prost(message, optional, boxed, tag = "1")]
2674 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2675 #[prost(message, optional, tag = "2")]
2676 pub duration: ::core::option::Option<DurationConstant>,
2677}
2678#[derive(Clone, PartialEq, ::prost::Message)]
2679pub struct CategoricalTimeShiftV2Expression {
2680 #[prost(message, optional, boxed, tag = "1")]
2681 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2682 #[prost(message, optional, tag = "2")]
2683 pub duration: ::core::option::Option<DurationExpression>,
2684}
2685#[derive(Clone, PartialEq, ::prost::Message)]
2686pub struct CategoricalUnionExpression {
2687 #[prost(message, repeated, tag = "1")]
2688 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
2689 #[prost(enumeration = "CategoricalMergeOperation", tag = "2")]
2690 pub operation: i32,
2691}
2692#[derive(Clone, PartialEq, ::prost::Message)]
2693pub struct CategoricalRangeFilterExpression {
2694 #[prost(message, optional, boxed, tag = "1")]
2695 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2696 #[prost(message, optional, boxed, tag = "2")]
2697 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
2698}
2699#[derive(Clone, PartialEq, ::prost::Message)]
2700pub struct CategoricalNumericMappingExpression {
2701 #[prost(message, optional, boxed, tag = "1")]
2702 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2703 #[prost(message, repeated, tag = "2")]
2704 pub mapping: ::prost::alloc::vec::Vec<NumericCategoricalInterval>,
2705 #[prost(message, optional, tag = "3")]
2706 pub default_value: ::core::option::Option<StringConstant>,
2707}
2708#[derive(Clone, PartialEq, ::prost::Message)]
2709pub struct NumericCategoricalInterval {
2710 #[prost(message, optional, tag = "1")]
2711 pub start: ::core::option::Option<DoubleConstant>,
2712 #[prost(message, optional, tag = "2")]
2713 pub end: ::core::option::Option<DoubleConstant>,
2714 #[prost(message, optional, tag = "3")]
2715 pub value: ::core::option::Option<StringConstant>,
2716}
2717#[derive(Clone, PartialEq, ::prost::Message)]
2718pub struct CategoricalArrayIndexExpression {
2719 #[prost(message, optional, boxed, tag = "1")]
2720 pub input: ::core::option::Option<
2721 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
2722 >,
2723 #[prost(message, optional, tag = "2")]
2724 pub index: ::core::option::Option<IntegerConstant>,
2725}
2726#[derive(Clone, PartialEq, ::prost::Message)]
2727pub struct CategoricalStructFieldExpression {
2728 #[prost(message, optional, boxed, tag = "1")]
2729 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
2730 #[prost(message, repeated, tag = "2")]
2731 pub path: ::prost::alloc::vec::Vec<StringConstant>,
2732}
2733#[derive(Clone, PartialEq, ::prost::Message)]
2734pub struct CategoricalEventsExpression {
2735 #[prost(message, optional, tag = "1")]
2736 pub query: ::core::option::Option<EventPredicateExpression>,
2737 #[prost(oneof = "categorical_events_expression::Value", tags = "2, 3")]
2738 pub value: ::core::option::Option<categorical_events_expression::Value>,
2739}
2740pub mod categorical_events_expression {
2742 #[derive(Clone, PartialEq, ::prost::Oneof)]
2743 pub enum Value {
2744 #[prost(message, tag = "2")]
2745 Property(super::StringConstant),
2746 #[prost(message, tag = "3")]
2747 Level(super::EventLevelValue),
2748 }
2749}
2750#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2751pub struct EventLevelValue {}
2752#[derive(Clone, PartialEq, ::prost::Message)]
2753pub struct CategoricalAggregationExpression {
2754 #[prost(message, optional, boxed, tag = "1")]
2755 pub input: ::core::option::Option<::prost::alloc::boxed::Box<AggregationInput>>,
2756 #[prost(message, optional, tag = "2")]
2757 pub reduction: ::core::option::Option<CategoricalReduction>,
2758}
2759#[derive(Clone, PartialEq, ::prost::Message)]
2760pub struct CategoricalTagFilterExpression {
2761 #[prost(message, optional, boxed, tag = "1")]
2762 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2763 #[prost(message, optional, tag = "2")]
2764 pub predicate: ::core::option::Option<TagPredicateExpression>,
2765}
2766#[derive(Clone, PartialEq, ::prost::Message)]
2767pub struct CategoricalTagSelectionExpression {
2768 #[prost(message, optional, boxed, tag = "1")]
2769 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2770 #[prost(message, optional, tag = "2")]
2771 pub keys: ::core::option::Option<TagKeySet>,
2772}
2773#[derive(Clone, PartialEq, ::prost::Message)]
2774pub struct CategoricalToStartOfIntervalExpression {
2775 #[prost(message, optional, boxed, tag = "1")]
2776 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
2777 #[prost(message, optional, tag = "2")]
2778 pub interval: ::core::option::Option<DurationExpression>,
2779}
2780#[derive(Clone, PartialEq, ::prost::Message)]
2781pub struct BooleanExpression {
2782 #[prost(oneof = "boolean_expression::Kind", tags = "1, 2")]
2783 pub kind: ::core::option::Option<boolean_expression::Kind>,
2784}
2785pub mod boolean_expression {
2787 #[derive(Clone, PartialEq, ::prost::Oneof)]
2788 pub enum Kind {
2789 #[prost(message, tag = "1")]
2790 Comparison(::prost::alloc::boxed::Box<super::ComparisonExpression>),
2791 #[prost(message, tag = "2")]
2792 Logical(::prost::alloc::boxed::Box<super::LogicalExpression>),
2793 }
2794}
2795#[derive(Clone, PartialEq, ::prost::Message)]
2796pub struct NumericUnaryExpression {
2797 #[prost(enumeration = "UnaryNumericOperation", tag = "1")]
2798 pub operation: i32,
2799 #[prost(message, optional, boxed, tag = "2")]
2800 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2801}
2802#[derive(Clone, PartialEq, ::prost::Message)]
2803pub struct NumericBinaryExpression {
2804 #[prost(enumeration = "BinaryNumericOperation", tag = "1")]
2805 pub operation: i32,
2806 #[prost(message, optional, boxed, tag = "2")]
2807 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2808 #[prost(message, optional, boxed, tag = "3")]
2809 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2810 #[deprecated]
2811 #[prost(message, optional, tag = "4")]
2812 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2813}
2814#[derive(Clone, PartialEq, ::prost::Message)]
2815pub struct NumericNaryExpression {
2816 #[prost(enumeration = "NaryNumericOperation", tag = "1")]
2817 pub operation: i32,
2818 #[prost(message, repeated, tag = "2")]
2819 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
2820 #[deprecated]
2821 #[prost(message, optional, tag = "3")]
2822 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
2823}
2824#[derive(Clone, PartialEq, ::prost::Message)]
2825pub struct NumericBitwiseExpression {
2826 #[prost(enumeration = "BitwiseOperation", tag = "1")]
2827 pub operation: i32,
2828 #[prost(message, optional, boxed, tag = "2")]
2829 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2830 #[prost(message, optional, tag = "3")]
2831 pub operand: ::core::option::Option<IntegerConstant>,
2832}
2833#[derive(Clone, PartialEq, ::prost::Message)]
2834pub struct NumericConditionalExpression {
2835 #[prost(message, optional, boxed, tag = "1")]
2836 pub condition: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2837 #[prost(message, optional, boxed, tag = "2")]
2838 pub true_value: ::core::option::Option<
2839 ::prost::alloc::boxed::Box<NumericExpression>,
2840 >,
2841 #[prost(message, optional, boxed, tag = "3")]
2842 pub false_value: ::core::option::Option<
2843 ::prost::alloc::boxed::Box<NumericExpression>,
2844 >,
2845}
2846#[derive(Clone, PartialEq, ::prost::Message)]
2847pub struct ComparisonExpression {
2848 #[prost(enumeration = "ComparisonOperation", tag = "1")]
2849 pub operation: i32,
2850 #[prost(message, optional, boxed, tag = "2")]
2851 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2852 #[prost(message, optional, boxed, tag = "3")]
2853 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2854}
2855#[derive(Clone, PartialEq, ::prost::Message)]
2856pub struct LogicalExpression {
2857 #[prost(enumeration = "LogicalOperation", tag = "1")]
2858 pub operation: i32,
2859 #[prost(message, optional, boxed, tag = "2")]
2860 pub left: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2861 #[prost(message, optional, boxed, tag = "3")]
2862 pub right: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2863}
2864#[derive(Clone, PartialEq, ::prost::Message)]
2865pub struct InterpolationConfiguration {
2866 #[prost(oneof = "interpolation_configuration::Kind", tags = "1")]
2867 pub kind: ::core::option::Option<interpolation_configuration::Kind>,
2868}
2869pub mod interpolation_configuration {
2871 #[derive(Clone, PartialEq, ::prost::Oneof)]
2872 pub enum Kind {
2873 #[prost(message, tag = "1")]
2874 ForwardFill(super::ForwardFillInterpolation),
2875 }
2876}
2877#[derive(Clone, PartialEq, ::prost::Message)]
2878pub struct ForwardFillInterpolation {
2879 #[prost(message, optional, tag = "1")]
2880 pub max_fill_duration: ::core::option::Option<DurationConstant>,
2881}
2882#[derive(Clone, PartialEq, ::prost::Message)]
2883pub struct NumericCumulativeSumExpression {
2884 #[prost(message, optional, boxed, tag = "1")]
2885 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2886 #[prost(message, optional, tag = "2")]
2887 pub start: ::core::option::Option<TimestampConstant>,
2888}
2889#[derive(Clone, PartialEq, ::prost::Message)]
2890pub struct NumericDerivativeExpression {
2891 #[prost(message, optional, boxed, tag = "1")]
2892 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2893 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "2")]
2894 pub time_unit: ::core::option::Option<i32>,
2895 #[prost(enumeration = "NegativeValuePolicy", optional, tag = "3")]
2896 pub negative_value_policy: ::core::option::Option<i32>,
2897}
2898#[derive(Clone, PartialEq, ::prost::Message)]
2899pub struct NumericIntegralExpression {
2900 #[prost(message, optional, boxed, tag = "1")]
2901 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2902 #[prost(message, optional, tag = "2")]
2903 pub start: ::core::option::Option<TimestampConstant>,
2904 #[prost(enumeration = "super::super::types::time::TimeUnit", optional, tag = "3")]
2905 pub time_unit: ::core::option::Option<i32>,
2906}
2907#[derive(Clone, PartialEq, ::prost::Message)]
2908pub struct NumericTimeRangeFilterExpression {
2909 #[prost(message, optional, boxed, tag = "1")]
2910 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2911 #[prost(message, optional, tag = "2")]
2912 pub start: ::core::option::Option<TimestampConstant>,
2913 #[prost(message, optional, tag = "3")]
2914 pub end: ::core::option::Option<TimestampConstant>,
2915}
2916#[derive(Clone, PartialEq, ::prost::Message)]
2917pub struct NumericTimeShiftExpression {
2918 #[prost(message, optional, boxed, tag = "1")]
2919 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2920 #[prost(message, optional, tag = "2")]
2921 pub duration: ::core::option::Option<DurationConstant>,
2922}
2923#[derive(Clone, PartialEq, ::prost::Message)]
2924pub struct NumericValueDifferenceExpression {
2925 #[prost(message, optional, boxed, tag = "1")]
2926 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2927 #[prost(enumeration = "NegativeValuePolicy", optional, tag = "2")]
2928 pub negative_value_policy: ::core::option::Option<i32>,
2929}
2930#[derive(Clone, PartialEq, ::prost::Message)]
2931pub struct NumericPhaseUnwrapExpression {
2932 #[prost(message, optional, boxed, tag = "1")]
2933 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2934 #[prost(message, optional, tag = "2")]
2935 pub period: ::core::option::Option<DoubleConstant>,
2936}
2937#[derive(Clone, PartialEq, ::prost::Message)]
2938pub struct NumericPointLimitExpression {
2939 #[prost(message, optional, boxed, tag = "1")]
2940 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2941 #[prost(message, optional, tag = "2")]
2942 pub count: ::core::option::Option<IntegerConstant>,
2943 #[prost(enumeration = "PointLimitOrder", tag = "3")]
2944 pub order: i32,
2945}
2946#[derive(Clone, PartialEq, ::prost::Message)]
2947pub struct NumericNthPointDownsampleExpression {
2948 #[prost(message, optional, boxed, tag = "1")]
2949 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2950 #[prost(message, optional, tag = "2")]
2951 pub n: ::core::option::Option<IntegerConstant>,
2952}
2953#[derive(Clone, PartialEq, ::prost::Message)]
2954pub struct NumericLargestTriangleThreeBucketsExpression {
2955 #[prost(message, optional, boxed, tag = "1")]
2956 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2957 #[prost(message, optional, tag = "2")]
2958 pub max_points: ::core::option::Option<IntegerConstant>,
2959}
2960#[derive(Clone, PartialEq, ::prost::Message)]
2961pub struct NumericConditionFilterExpression {
2962 #[prost(message, optional, boxed, tag = "1")]
2963 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2964 #[prost(message, optional, boxed, tag = "2")]
2965 pub condition: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
2966}
2967#[derive(Clone, PartialEq, ::prost::Message)]
2968pub struct NumericThresholdFilterExpression {
2969 #[prost(message, optional, boxed, tag = "1")]
2970 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2971 #[prost(message, optional, tag = "2")]
2972 pub threshold: ::core::option::Option<DoubleConstant>,
2973 #[prost(enumeration = "ComparisonOperation", tag = "3")]
2974 pub operation: i32,
2975}
2976#[derive(Clone, PartialEq, ::prost::Message)]
2977pub struct NumericApproximateFilterExpression {
2978 #[prost(message, optional, boxed, tag = "1")]
2979 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2980 #[prost(message, optional, tag = "2")]
2981 pub threshold: ::core::option::Option<DoubleConstant>,
2982 #[prost(message, optional, tag = "3")]
2983 pub tolerance: ::core::option::Option<DoubleConstant>,
2984 #[prost(enumeration = "ApproximateComparisonOperation", tag = "4")]
2985 pub operation: i32,
2986}
2987#[derive(Clone, PartialEq, ::prost::Message)]
2988pub struct NumericSignalFilterExpression {
2989 #[prost(message, optional, boxed, tag = "1")]
2990 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
2991 #[prost(message, optional, tag = "2")]
2992 pub configuration: ::core::option::Option<SignalFilterConfiguration>,
2993 #[prost(message, optional, tag = "3")]
2994 pub order: ::core::option::Option<IntegerConstant>,
2995 #[prost(message, optional, tag = "4")]
2996 pub sampling_frequency: ::core::option::Option<DoubleConstant>,
2997}
2998#[derive(Clone, PartialEq, ::prost::Message)]
2999pub struct NumericUnitConversionExpression {
3000 #[prost(message, optional, boxed, tag = "1")]
3001 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3002 #[prost(string, tag = "2")]
3003 pub output_unit: ::prost::alloc::string::String,
3004}
3005#[derive(Clone, PartialEq, ::prost::Message)]
3006pub struct NumericUnitOverrideExpression {
3007 #[prost(message, optional, boxed, tag = "1")]
3008 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3009 #[prost(string, optional, tag = "2")]
3010 pub unit: ::core::option::Option<::prost::alloc::string::String>,
3011}
3012#[derive(Clone, PartialEq, ::prost::Message)]
3013pub struct NumericZScoreExpression {
3014 #[prost(message, optional, boxed, tag = "1")]
3015 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3016 #[prost(message, repeated, tag = "2")]
3017 pub group_by_tags: ::prost::alloc::vec::Vec<StringConstant>,
3018 #[deprecated]
3019 #[prost(message, optional, tag = "3")]
3020 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3021}
3022#[derive(Clone, PartialEq, ::prost::Message)]
3023pub struct NumericUnionExpression {
3024 #[prost(message, repeated, tag = "1")]
3025 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
3026 #[deprecated]
3027 #[prost(enumeration = "DuplicateMergeOperation", optional, tag = "2")]
3028 pub duplicate_merge_operation: ::core::option::Option<i32>,
3029}
3030#[derive(Clone, PartialEq, ::prost::Message)]
3031pub struct NumericDropNanExpression {
3032 #[prost(message, optional, boxed, tag = "1")]
3033 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3034}
3035#[derive(Clone, PartialEq, ::prost::Message)]
3036pub struct NumericTimeShiftV2Expression {
3037 #[prost(message, optional, boxed, tag = "1")]
3038 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3039 #[prost(message, optional, tag = "2")]
3040 pub duration: ::core::option::Option<DurationExpression>,
3041}
3042#[derive(Clone, PartialEq, ::prost::Message)]
3043pub struct NumericResampleV2Expression {
3044 #[prost(message, optional, boxed, tag = "1")]
3045 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3046 #[prost(message, optional, tag = "2")]
3047 pub interval: ::core::option::Option<DurationExpression>,
3048}
3049#[derive(Clone, PartialEq, ::prost::Message)]
3050pub struct NumericToStartOfIntervalExpression {
3051 #[prost(message, optional, boxed, tag = "1")]
3052 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3053 #[prost(message, optional, tag = "2")]
3054 pub interval: ::core::option::Option<DurationExpression>,
3055}
3056#[derive(Clone, PartialEq, ::prost::Message)]
3057pub struct NumericScalarTransformExpression {
3058 #[prost(message, optional, boxed, tag = "1")]
3059 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3060 #[prost(oneof = "numeric_scalar_transform_expression::Transform", tags = "2, 3")]
3061 pub transform: ::core::option::Option<
3062 numeric_scalar_transform_expression::Transform,
3063 >,
3064}
3065pub mod numeric_scalar_transform_expression {
3067 #[derive(Clone, PartialEq, ::prost::Oneof)]
3068 pub enum Transform {
3069 #[prost(message, tag = "2")]
3070 Offset(super::DoubleConstant),
3071 #[prost(message, tag = "3")]
3072 Scale(super::ScalingFactor),
3073 }
3074}
3075#[derive(Clone, PartialEq, ::prost::Message)]
3076pub struct NumericArithmeticExpression {
3077 #[prost(map = "string, message", tag = "1")]
3078 pub inputs: ::std::collections::HashMap<
3079 ::prost::alloc::string::String,
3080 NumericExpression,
3081 >,
3082 #[prost(string, tag = "2")]
3083 pub formula: ::prost::alloc::string::String,
3084 #[deprecated]
3085 #[prost(message, optional, tag = "3")]
3086 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3087}
3088#[derive(Clone, PartialEq, ::prost::Message)]
3089pub struct NumericFormulaFilterExpression {
3090 #[prost(string, tag = "1")]
3091 pub filtered_input_name: ::prost::alloc::string::String,
3092 #[prost(map = "string, message", tag = "2")]
3093 pub inputs: ::std::collections::HashMap<
3094 ::prost::alloc::string::String,
3095 NumericExpression,
3096 >,
3097 #[prost(string, tag = "3")]
3098 pub formula: ::prost::alloc::string::String,
3099 #[deprecated]
3100 #[prost(message, optional, tag = "4")]
3101 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3102}
3103#[derive(Clone, PartialEq, ::prost::Message)]
3104pub struct NumericLiteralBitwiseExpression {
3105 #[prost(message, optional, boxed, tag = "1")]
3106 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3107 #[prost(message, optional, tag = "2")]
3108 pub function: ::core::option::Option<LiteralBitFunction>,
3109}
3110#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3111pub struct LiteralBitFunction {
3112 #[prost(oneof = "literal_bit_function::Kind", tags = "1, 2, 3")]
3113 pub kind: ::core::option::Option<literal_bit_function::Kind>,
3114}
3115pub mod literal_bit_function {
3117 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3118 pub enum Kind {
3119 #[prost(message, tag = "1")]
3120 Bitwise(super::LiteralBitwiseFunction),
3121 #[prost(message, tag = "2")]
3122 Shift(super::LiteralShiftFunction),
3123 #[prost(message, tag = "3")]
3124 BitTest(super::BitTestIndex),
3125 }
3126}
3127#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3128pub struct LiteralBitwiseFunction {
3129 #[prost(enumeration = "LiteralBitwiseOperation", tag = "1")]
3130 pub operation: i32,
3131 #[prost(int64, tag = "2")]
3132 pub operand: i64,
3133}
3134#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3135pub struct LiteralShiftFunction {
3136 #[prost(enumeration = "ShiftDirection", tag = "1")]
3137 pub direction: i32,
3138 #[prost(int32, tag = "2")]
3139 pub distance: i32,
3140}
3141#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3142pub struct BitTestIndex {
3143 #[prost(int32, tag = "1")]
3144 pub index: i32,
3145}
3146#[derive(Clone, PartialEq, ::prost::Message)]
3147pub struct NumericResampleExpression {
3148 #[prost(message, optional, boxed, tag = "1")]
3149 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3150 #[prost(message, optional, tag = "2")]
3151 pub interval: ::core::option::Option<DurationConstant>,
3152 #[prost(message, optional, tag = "3")]
3153 pub fill: ::core::option::Option<ResampleFill>,
3154}
3155#[derive(Clone, PartialEq, ::prost::Message)]
3156pub struct NumericRefpropExpression {
3157 #[prost(message, repeated, tag = "1")]
3158 pub inputs: ::prost::alloc::vec::Vec<RefpropInput>,
3159 #[prost(enumeration = "RefpropProperty", tag = "2")]
3160 pub output_property: i32,
3161 #[prost(enumeration = "RefpropSubstance", tag = "3")]
3162 pub substance: i32,
3163 #[deprecated]
3164 #[prost(message, optional, tag = "4")]
3165 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3166}
3167#[derive(Clone, PartialEq, ::prost::Message)]
3168pub struct RefpropInput {
3169 #[prost(enumeration = "RefpropProperty", tag = "1")]
3170 pub property: i32,
3171 #[prost(message, optional, tag = "2")]
3172 pub value: ::core::option::Option<NumericExpression>,
3173}
3174#[derive(Clone, PartialEq, ::prost::Message)]
3175pub struct NumericRollingAggregationExpression {
3176 #[prost(message, optional, boxed, tag = "1")]
3177 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3178 #[prost(message, optional, tag = "2")]
3179 pub window: ::core::option::Option<DurationConstant>,
3180 #[prost(message, optional, tag = "3")]
3181 pub reduction: ::core::option::Option<NumericReduction>,
3182}
3183#[derive(Clone, PartialEq, ::prost::Message)]
3184pub struct NumericDuplicateTimestampAggregationExpression {
3185 #[prost(message, optional, boxed, tag = "1")]
3186 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3187 #[prost(message, optional, tag = "2")]
3188 pub reduction: ::core::option::Option<NumericReduction>,
3189 #[prost(message, repeated, tag = "3")]
3190 pub grouping_keys: ::prost::alloc::vec::Vec<StringConstant>,
3191 #[prost(bool, optional, tag = "4")]
3192 pub aggregate_across_all_series: ::core::option::Option<bool>,
3193 #[deprecated]
3194 #[prost(message, optional, tag = "5")]
3195 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3196}
3197#[derive(Clone, PartialEq, ::prost::Message)]
3198pub struct NumericTagFilterExpression {
3199 #[prost(message, optional, boxed, tag = "1")]
3200 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3201 #[prost(message, optional, tag = "2")]
3202 pub predicate: ::core::option::Option<TagPredicateExpression>,
3203}
3204#[derive(Clone, PartialEq, ::prost::Message)]
3205pub struct NumericTagSelectionExpression {
3206 #[prost(message, optional, boxed, tag = "1")]
3207 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3208 #[prost(message, repeated, tag = "2")]
3209 pub retained_tag_keys: ::prost::alloc::vec::Vec<StringConstant>,
3210}
3211#[derive(Clone, PartialEq, ::prost::Message)]
3212pub struct NumericArrayExpression {
3213 #[prost(
3214 oneof = "numeric_array_expression::Kind",
3215 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9"
3216 )]
3217 pub kind: ::core::option::Option<numeric_array_expression::Kind>,
3218}
3219pub mod numeric_array_expression {
3221 #[derive(Clone, PartialEq, ::prost::Oneof)]
3222 pub enum Kind {
3223 #[prost(message, tag = "1")]
3224 Reference(super::TimeSeriesReference),
3225 #[prost(message, tag = "2")]
3226 ChannelSelection(super::ChannelSelection),
3227 #[prost(message, tag = "3")]
3228 ModuleFunction(super::ModuleFunctionExpression),
3229 #[prost(message, tag = "4")]
3230 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3231 #[prost(message, tag = "5")]
3232 StructField(
3233 ::prost::alloc::boxed::Box<super::NumericArrayStructFieldExpression>,
3234 ),
3235 #[prost(message, tag = "6")]
3236 TimeShift(::prost::alloc::boxed::Box<super::NumericArrayTimeShiftExpression>),
3237 #[prost(message, tag = "7")]
3238 ToStartOfInterval(
3239 ::prost::alloc::boxed::Box<super::NumericArrayToStartOfIntervalExpression>,
3240 ),
3241 #[prost(message, tag = "8")]
3242 TagFilter(::prost::alloc::boxed::Box<super::NumericArrayTagFilterExpression>),
3243 #[prost(message, tag = "9")]
3244 TagSelection(
3245 ::prost::alloc::boxed::Box<super::NumericArrayTagSelectionExpression>,
3246 ),
3247 }
3248}
3249#[derive(Clone, PartialEq, ::prost::Message)]
3250pub struct NumericArrayStructFieldExpression {
3251 #[prost(message, optional, boxed, tag = "1")]
3252 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3253 #[prost(message, repeated, tag = "2")]
3254 pub path: ::prost::alloc::vec::Vec<StringConstant>,
3255}
3256#[derive(Clone, PartialEq, ::prost::Message)]
3257pub struct NumericArrayTimeShiftExpression {
3258 #[prost(message, optional, boxed, tag = "1")]
3259 pub input: ::core::option::Option<
3260 ::prost::alloc::boxed::Box<NumericArrayExpression>,
3261 >,
3262 #[prost(message, optional, tag = "2")]
3263 pub duration: ::core::option::Option<DurationConstant>,
3264}
3265#[derive(Clone, PartialEq, ::prost::Message)]
3266pub struct NumericArrayToStartOfIntervalExpression {
3267 #[prost(message, optional, boxed, tag = "1")]
3268 pub input: ::core::option::Option<
3269 ::prost::alloc::boxed::Box<NumericArrayExpression>,
3270 >,
3271 #[prost(message, optional, tag = "2")]
3272 pub interval: ::core::option::Option<DurationExpression>,
3273}
3274#[derive(Clone, PartialEq, ::prost::Message)]
3275pub struct NumericArrayTagFilterExpression {
3276 #[prost(message, optional, boxed, tag = "1")]
3277 pub input: ::core::option::Option<
3278 ::prost::alloc::boxed::Box<NumericArrayExpression>,
3279 >,
3280 #[prost(message, optional, tag = "2")]
3281 pub predicate: ::core::option::Option<TagPredicateExpression>,
3282}
3283#[derive(Clone, PartialEq, ::prost::Message)]
3284pub struct NumericArrayTagSelectionExpression {
3285 #[prost(message, optional, boxed, tag = "1")]
3286 pub input: ::core::option::Option<
3287 ::prost::alloc::boxed::Box<NumericArrayExpression>,
3288 >,
3289 #[prost(message, optional, tag = "2")]
3290 pub keys: ::core::option::Option<TagKeySet>,
3291}
3292#[derive(Clone, PartialEq, ::prost::Message)]
3293pub struct CategoricalArrayExpression {
3294 #[prost(
3295 oneof = "categorical_array_expression::Kind",
3296 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9"
3297 )]
3298 pub kind: ::core::option::Option<categorical_array_expression::Kind>,
3299}
3300pub mod categorical_array_expression {
3302 #[derive(Clone, PartialEq, ::prost::Oneof)]
3303 pub enum Kind {
3304 #[prost(message, tag = "1")]
3305 Reference(super::TimeSeriesReference),
3306 #[prost(message, tag = "2")]
3307 ChannelSelection(super::ChannelSelection),
3308 #[prost(message, tag = "3")]
3309 ModuleFunction(super::ModuleFunctionExpression),
3310 #[prost(message, tag = "4")]
3311 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3312 #[prost(message, tag = "5")]
3313 StructField(
3314 ::prost::alloc::boxed::Box<super::CategoricalArrayStructFieldExpression>,
3315 ),
3316 #[prost(message, tag = "6")]
3317 TimeShift(
3318 ::prost::alloc::boxed::Box<super::CategoricalArrayTimeShiftExpression>,
3319 ),
3320 #[prost(message, tag = "7")]
3321 ToStartOfInterval(
3322 ::prost::alloc::boxed::Box<
3323 super::CategoricalArrayToStartOfIntervalExpression,
3324 >,
3325 ),
3326 #[prost(message, tag = "8")]
3327 TagFilter(
3328 ::prost::alloc::boxed::Box<super::CategoricalArrayTagFilterExpression>,
3329 ),
3330 #[prost(message, tag = "9")]
3331 TagSelection(
3332 ::prost::alloc::boxed::Box<super::CategoricalArrayTagSelectionExpression>,
3333 ),
3334 }
3335}
3336#[derive(Clone, PartialEq, ::prost::Message)]
3337pub struct CategoricalArrayStructFieldExpression {
3338 #[prost(message, optional, boxed, tag = "1")]
3339 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3340 #[prost(message, repeated, tag = "2")]
3341 pub path: ::prost::alloc::vec::Vec<StringConstant>,
3342}
3343#[derive(Clone, PartialEq, ::prost::Message)]
3344pub struct CategoricalArrayTimeShiftExpression {
3345 #[prost(message, optional, boxed, tag = "1")]
3346 pub input: ::core::option::Option<
3347 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
3348 >,
3349 #[prost(message, optional, tag = "2")]
3350 pub duration: ::core::option::Option<DurationConstant>,
3351}
3352#[derive(Clone, PartialEq, ::prost::Message)]
3353pub struct CategoricalArrayToStartOfIntervalExpression {
3354 #[prost(message, optional, boxed, tag = "1")]
3355 pub input: ::core::option::Option<
3356 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
3357 >,
3358 #[prost(message, optional, tag = "2")]
3359 pub interval: ::core::option::Option<DurationExpression>,
3360}
3361#[derive(Clone, PartialEq, ::prost::Message)]
3362pub struct CategoricalArrayTagFilterExpression {
3363 #[prost(message, optional, boxed, tag = "1")]
3364 pub input: ::core::option::Option<
3365 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
3366 >,
3367 #[prost(message, optional, tag = "2")]
3368 pub predicate: ::core::option::Option<TagPredicateExpression>,
3369}
3370#[derive(Clone, PartialEq, ::prost::Message)]
3371pub struct CategoricalArrayTagSelectionExpression {
3372 #[prost(message, optional, boxed, tag = "1")]
3373 pub input: ::core::option::Option<
3374 ::prost::alloc::boxed::Box<CategoricalArrayExpression>,
3375 >,
3376 #[prost(message, optional, tag = "2")]
3377 pub keys: ::core::option::Option<TagKeySet>,
3378}
3379#[derive(Clone, PartialEq, ::prost::Message)]
3380pub struct StructExpression {
3381 #[prost(oneof = "struct_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
3382 pub kind: ::core::option::Option<struct_expression::Kind>,
3383}
3384pub mod struct_expression {
3386 #[derive(Clone, PartialEq, ::prost::Oneof)]
3387 pub enum Kind {
3388 #[prost(message, tag = "1")]
3389 Reference(super::TimeSeriesReference),
3390 #[prost(message, tag = "2")]
3391 ChannelSelection(super::ChannelSelection),
3392 #[prost(message, tag = "3")]
3393 ModuleFunction(super::ModuleFunctionExpression),
3394 #[prost(message, tag = "4")]
3395 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3396 #[prost(message, tag = "5")]
3397 Combine(super::StructCombineExpression),
3398 #[prost(message, tag = "6")]
3399 StructField(::prost::alloc::boxed::Box<super::StructFieldExpression>),
3400 #[prost(message, tag = "7")]
3401 TimeShift(::prost::alloc::boxed::Box<super::StructTimeShiftExpression>),
3402 #[prost(message, tag = "8")]
3403 ToStartOfInterval(
3404 ::prost::alloc::boxed::Box<super::StructToStartOfIntervalExpression>,
3405 ),
3406 #[prost(message, tag = "9")]
3407 TagFilter(::prost::alloc::boxed::Box<super::StructTagFilterExpression>),
3408 #[prost(message, tag = "10")]
3409 TagSelection(::prost::alloc::boxed::Box<super::StructTagSelectionExpression>),
3410 }
3411}
3412#[derive(Clone, PartialEq, ::prost::Message)]
3413pub struct StructFieldExpression {
3414 #[prost(message, optional, boxed, tag = "1")]
3415 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3416 #[prost(message, repeated, tag = "2")]
3417 pub path: ::prost::alloc::vec::Vec<StringConstant>,
3418}
3419#[derive(Clone, PartialEq, ::prost::Message)]
3420pub struct StructTimeShiftExpression {
3421 #[prost(message, optional, boxed, tag = "1")]
3422 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3423 #[prost(message, optional, tag = "2")]
3424 pub duration: ::core::option::Option<DurationConstant>,
3425}
3426#[derive(Clone, PartialEq, ::prost::Message)]
3427pub struct StructToStartOfIntervalExpression {
3428 #[prost(message, optional, boxed, tag = "1")]
3429 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3430 #[prost(message, optional, tag = "2")]
3431 pub interval: ::core::option::Option<DurationExpression>,
3432}
3433#[derive(Clone, PartialEq, ::prost::Message)]
3434pub struct StructTagFilterExpression {
3435 #[prost(message, optional, boxed, tag = "1")]
3436 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3437 #[prost(message, optional, tag = "2")]
3438 pub predicate: ::core::option::Option<TagPredicateExpression>,
3439}
3440#[derive(Clone, PartialEq, ::prost::Message)]
3441pub struct StructTagSelectionExpression {
3442 #[prost(message, optional, boxed, tag = "1")]
3443 pub input: ::core::option::Option<::prost::alloc::boxed::Box<StructExpression>>,
3444 #[prost(message, optional, tag = "2")]
3445 pub keys: ::core::option::Option<TagKeySet>,
3446}
3447#[derive(Clone, PartialEq, ::prost::Message)]
3448pub struct LogExpression {
3449 #[prost(oneof = "log_expression::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
3450 pub kind: ::core::option::Option<log_expression::Kind>,
3451}
3452pub mod log_expression {
3454 #[derive(Clone, PartialEq, ::prost::Oneof)]
3455 pub enum Kind {
3456 #[prost(message, tag = "1")]
3457 Reference(super::TimeSeriesReference),
3458 #[prost(message, tag = "2")]
3459 ChannelSelection(super::ChannelSelection),
3460 #[prost(message, tag = "3")]
3461 ModuleFunction(super::ModuleFunctionExpression),
3462 #[prost(message, tag = "4")]
3463 SeriesSelection(::prost::alloc::boxed::Box<super::SeriesSelection>),
3464 #[prost(message, tag = "5")]
3465 Concatenate(super::LogConcatenateExpression),
3466 #[prost(message, tag = "6")]
3467 Filter(::prost::alloc::boxed::Box<super::LogFilterExpression>),
3468 #[prost(message, tag = "7")]
3469 TimeShift(::prost::alloc::boxed::Box<super::LogTimeShiftExpression>),
3470 #[prost(message, tag = "8")]
3471 ToStartOfInterval(
3472 ::prost::alloc::boxed::Box<super::LogToStartOfIntervalExpression>,
3473 ),
3474 #[prost(message, tag = "9")]
3475 TagFilter(::prost::alloc::boxed::Box<super::LogTagFilterExpression>),
3476 #[prost(message, tag = "10")]
3477 TagSelection(::prost::alloc::boxed::Box<super::LogTagSelectionExpression>),
3478 }
3479}
3480#[derive(Clone, PartialEq, ::prost::Message)]
3481pub struct LogTimeShiftExpression {
3482 #[prost(message, optional, boxed, tag = "1")]
3483 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3484 #[prost(message, optional, tag = "2")]
3485 pub duration: ::core::option::Option<DurationConstant>,
3486}
3487#[derive(Clone, PartialEq, ::prost::Message)]
3488pub struct LogToStartOfIntervalExpression {
3489 #[prost(message, optional, boxed, tag = "1")]
3490 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3491 #[prost(message, optional, tag = "2")]
3492 pub interval: ::core::option::Option<DurationExpression>,
3493}
3494#[derive(Clone, PartialEq, ::prost::Message)]
3495pub struct LogTagFilterExpression {
3496 #[prost(message, optional, boxed, tag = "1")]
3497 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3498 #[prost(message, optional, tag = "2")]
3499 pub predicate: ::core::option::Option<TagPredicateExpression>,
3500}
3501#[derive(Clone, PartialEq, ::prost::Message)]
3502pub struct LogTagSelectionExpression {
3503 #[prost(message, optional, boxed, tag = "1")]
3504 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3505 #[prost(message, optional, tag = "2")]
3506 pub keys: ::core::option::Option<TagKeySet>,
3507}
3508#[derive(Clone, PartialEq, ::prost::Message)]
3509pub struct StructCombineExpression {
3510 #[prost(map = "string, message", tag = "1")]
3511 pub fields: ::std::collections::HashMap<
3512 ::prost::alloc::string::String,
3513 SeriesExpression,
3514 >,
3515 #[prost(message, optional, tag = "2")]
3516 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3517}
3518#[derive(Clone, PartialEq, ::prost::Message)]
3519pub struct LogConcatenateExpression {
3520 #[prost(message, repeated, tag = "1")]
3521 pub inputs: ::prost::alloc::vec::Vec<LogExpression>,
3522}
3523#[derive(Clone, PartialEq, ::prost::Message)]
3524pub struct LogFilterExpression {
3525 #[prost(message, optional, boxed, tag = "1")]
3526 pub input: ::core::option::Option<::prost::alloc::boxed::Box<LogExpression>>,
3527 #[prost(message, optional, tag = "2")]
3528 pub predicate: ::core::option::Option<LogPredicate>,
3529}
3530#[derive(Clone, PartialEq, ::prost::Message)]
3531pub struct RangeExpression {
3532 #[prost(
3533 oneof = "range_expression::Kind",
3534 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21"
3535 )]
3536 pub kind: ::core::option::Option<range_expression::Kind>,
3537}
3538pub mod range_expression {
3540 #[derive(Clone, PartialEq, ::prost::Oneof)]
3541 pub enum Kind {
3542 #[prost(string, tag = "1")]
3543 VariableName(::prost::alloc::string::String),
3544 #[prost(message, tag = "2")]
3545 ModuleFunction(super::ModuleFunctionExpression),
3546 #[prost(message, tag = "3")]
3547 Literal(super::LiteralRangeCollection),
3548 #[prost(message, tag = "4")]
3549 Events(super::EventPredicateExpression),
3550 #[prost(message, tag = "5")]
3551 BooleanCondition(::prost::alloc::boxed::Box<super::BooleanRangeExpression>),
3552 #[prost(message, tag = "6")]
3553 NumericThreshold(::prost::alloc::boxed::Box<super::NumericThresholdRanges>),
3554 #[prost(message, tag = "7")]
3555 NumericBounds(::prost::alloc::boxed::Box<super::NumericBoundsRanges>),
3556 #[prost(message, tag = "8")]
3557 CategoricalMembership(
3558 ::prost::alloc::boxed::Box<super::CategoricalMembershipRanges>,
3559 ),
3560 #[prost(message, tag = "9")]
3561 NumericEquality(super::NumericEqualityRanges),
3562 #[prost(message, tag = "10")]
3563 CategoricalEquality(super::CategoricalEqualityRanges),
3564 #[prost(message, tag = "11")]
3565 NumericCrossover(::prost::alloc::boxed::Box<super::NumericCrossoverRanges>),
3566 #[prost(message, tag = "12")]
3567 OnChange(::prost::alloc::boxed::Box<super::SeriesChangeRanges>),
3568 #[prost(message, tag = "13")]
3569 Staleness(::prost::alloc::boxed::Box<super::SeriesStalenessRanges>),
3570 #[prost(message, tag = "14")]
3571 DurationFilter(::prost::alloc::boxed::Box<super::RangeDurationFilter>),
3572 #[prost(message, tag = "15")]
3573 Stability(::prost::alloc::boxed::Box<super::NumericStabilityRanges>),
3574 #[prost(message, tag = "16")]
3575 Extrema(::prost::alloc::boxed::Box<super::NumericExtremaRanges>),
3576 #[prost(message, tag = "17")]
3577 Intersection(super::RangeExpressionCollection),
3578 #[prost(message, tag = "18")]
3579 Union(super::RangeExpressionCollection),
3580 #[prost(message, tag = "19")]
3581 Complement(::prost::alloc::boxed::Box<super::RangeExpression>),
3582 #[prost(message, tag = "20")]
3583 Padding(::prost::alloc::boxed::Box<super::RangePaddingExpression>),
3584 #[prost(message, tag = "21")]
3585 Statistics(::prost::alloc::boxed::Box<super::RangeStatisticsExpression>),
3586 }
3587}
3588#[derive(Clone, PartialEq, ::prost::Message)]
3589pub struct LiteralRangeCollection {
3590 #[prost(message, repeated, tag = "1")]
3591 pub ranges: ::prost::alloc::vec::Vec<LiteralRange>,
3592}
3593#[derive(Clone, PartialEq, ::prost::Message)]
3594pub struct LiteralRange {
3595 #[prost(message, optional, tag = "1")]
3596 pub start: ::core::option::Option<TimestampConstant>,
3597 #[prost(message, optional, tag = "2")]
3598 pub end: ::core::option::Option<TimestampConstant>,
3599 #[prost(message, optional, tag = "3")]
3600 pub grouping: ::core::option::Option<TagGrouping>,
3601}
3602#[derive(Clone, PartialEq, ::prost::Message)]
3603pub struct BooleanRangeExpression {
3604 #[prost(message, optional, boxed, tag = "1")]
3605 pub input: ::core::option::Option<::prost::alloc::boxed::Box<BooleanExpression>>,
3606 #[prost(message, optional, tag = "2")]
3607 pub persistence: ::core::option::Option<RangePersistence>,
3608}
3609#[derive(Clone, PartialEq, ::prost::Message)]
3610pub struct NumericThresholdRanges {
3611 #[prost(message, optional, boxed, tag = "1")]
3612 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3613 #[prost(enumeration = "ComparisonOperation", tag = "2")]
3614 pub comparison: i32,
3615 #[prost(message, optional, tag = "3")]
3616 pub threshold: ::core::option::Option<DoubleConstant>,
3617 #[prost(message, optional, tag = "4")]
3618 pub tolerance: ::core::option::Option<DoubleConstant>,
3619 #[prost(message, optional, tag = "5")]
3620 pub persistence: ::core::option::Option<RangePersistence>,
3621}
3622#[derive(Clone, PartialEq, ::prost::Message)]
3623pub struct NumericBoundsRanges {
3624 #[prost(message, optional, boxed, tag = "1")]
3625 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3626 #[prost(message, optional, tag = "2")]
3627 pub lower: ::core::option::Option<DoubleConstant>,
3628 #[prost(message, optional, tag = "3")]
3629 pub upper: ::core::option::Option<DoubleConstant>,
3630 #[prost(enumeration = "NumericBoundsCondition", tag = "4")]
3631 pub condition: i32,
3632 #[prost(message, optional, tag = "5")]
3633 pub persistence: ::core::option::Option<RangePersistence>,
3634}
3635#[derive(Clone, PartialEq, ::prost::Message)]
3636pub struct CategoricalMembershipRanges {
3637 #[prost(message, optional, boxed, tag = "1")]
3638 pub input: ::core::option::Option<::prost::alloc::boxed::Box<CategoricalExpression>>,
3639 #[prost(message, optional, tag = "2")]
3640 pub values: ::core::option::Option<ParameterizedStringSet>,
3641 #[prost(enumeration = "CategoricalMembershipOperation", tag = "3")]
3642 pub operation: i32,
3643 #[prost(message, optional, tag = "4")]
3644 pub persistence: ::core::option::Option<RangePersistence>,
3645}
3646#[derive(Clone, PartialEq, ::prost::Message)]
3647pub struct NumericEqualityRanges {
3648 #[prost(message, repeated, tag = "1")]
3649 pub inputs: ::prost::alloc::vec::Vec<NumericExpression>,
3650 #[prost(enumeration = "SeriesEqualityMode", tag = "2")]
3651 pub mode: i32,
3652 #[prost(message, optional, tag = "3")]
3653 pub tolerance: ::core::option::Option<DoubleConstant>,
3654 #[prost(message, optional, tag = "4")]
3655 pub persistence: ::core::option::Option<RangePersistence>,
3656 #[deprecated]
3657 #[prost(message, optional, tag = "5")]
3658 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3659}
3660#[derive(Clone, PartialEq, ::prost::Message)]
3661pub struct CategoricalEqualityRanges {
3662 #[prost(message, repeated, tag = "1")]
3663 pub inputs: ::prost::alloc::vec::Vec<CategoricalExpression>,
3664 #[prost(enumeration = "SeriesEqualityMode", tag = "2")]
3665 pub mode: i32,
3666 #[prost(message, optional, tag = "3")]
3667 pub persistence: ::core::option::Option<RangePersistence>,
3668 #[deprecated]
3669 #[prost(message, optional, tag = "4")]
3670 pub interpolation: ::core::option::Option<InterpolationConfiguration>,
3671}
3672#[derive(Clone, PartialEq, ::prost::Message)]
3673pub struct NumericCrossoverRanges {
3674 #[prost(message, optional, boxed, tag = "1")]
3675 pub left: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3676 #[prost(message, optional, boxed, tag = "2")]
3677 pub right: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3678}
3679#[derive(Clone, PartialEq, ::prost::Message)]
3680pub struct SeriesChangeRanges {
3681 #[prost(message, optional, boxed, tag = "1")]
3682 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
3683}
3684#[derive(Clone, PartialEq, ::prost::Message)]
3685pub struct SeriesStalenessRanges {
3686 #[prost(message, optional, boxed, tag = "1")]
3687 pub input: ::core::option::Option<::prost::alloc::boxed::Box<SeriesExpression>>,
3688 #[prost(message, optional, tag = "2")]
3689 pub threshold: ::core::option::Option<DurationInput>,
3690 #[prost(message, optional, tag = "3")]
3691 pub start: ::core::option::Option<TimestampConstant>,
3692 #[deprecated]
3693 #[prost(message, optional, tag = "4")]
3694 pub end: ::core::option::Option<TimestampConstant>,
3695}
3696#[derive(Clone, PartialEq, ::prost::Message)]
3697pub struct RangeDurationFilter {
3698 #[prost(message, optional, boxed, tag = "1")]
3699 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3700 #[prost(message, optional, tag = "2")]
3701 pub threshold: ::core::option::Option<DurationInput>,
3702 #[prost(enumeration = "ComparisonOperation", tag = "3")]
3703 pub comparison: i32,
3704 #[prost(enumeration = "UnboundedDurationComparison", optional, tag = "4")]
3705 pub unbounded: ::core::option::Option<i32>,
3706}
3707#[derive(Clone, PartialEq, ::prost::Message)]
3708pub struct NumericStabilityRanges {
3709 #[prost(message, optional, boxed, tag = "1")]
3710 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3711 #[prost(message, optional, tag = "2")]
3712 pub window: ::core::option::Option<DurationInput>,
3713 #[prost(message, optional, tag = "3")]
3714 pub min_points: ::core::option::Option<IntegerConstant>,
3715 #[prost(message, optional, tag = "4")]
3716 pub threshold: ::core::option::Option<SpreadThreshold>,
3717}
3718#[derive(Clone, PartialEq, ::prost::Message)]
3719pub struct NumericExtremaRanges {
3720 #[prost(message, optional, boxed, tag = "1")]
3721 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3722 #[prost(enumeration = "ExtremaSelection", tag = "2")]
3723 pub selection: i32,
3724 #[prost(message, optional, tag = "3")]
3725 pub min_prominence: ::core::option::Option<DoubleConstant>,
3726}
3727#[derive(Clone, PartialEq, ::prost::Message)]
3728pub struct RangeExpressionCollection {
3729 #[prost(message, repeated, tag = "1")]
3730 pub inputs: ::prost::alloc::vec::Vec<RangeExpression>,
3731}
3732#[derive(Clone, PartialEq, ::prost::Message)]
3733pub struct RangePaddingExpression {
3734 #[prost(message, optional, boxed, tag = "1")]
3735 pub input: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3736 #[prost(message, optional, tag = "2")]
3737 pub padding: ::core::option::Option<DurationInput>,
3738 #[prost(enumeration = "RangePaddingSides", optional, tag = "3")]
3739 pub sides: ::core::option::Option<i32>,
3740}
3741#[derive(Clone, PartialEq, ::prost::Message)]
3742pub struct RangeStatisticsExpression {
3743 #[prost(message, optional, boxed, tag = "1")]
3744 pub ranges: ::core::option::Option<::prost::alloc::boxed::Box<RangeExpression>>,
3745 #[prost(message, optional, boxed, tag = "2")]
3746 pub input: ::core::option::Option<::prost::alloc::boxed::Box<NumericExpression>>,
3747 #[prost(oneof = "range_statistics_expression::Statistics", tags = "3, 4")]
3748 pub statistics: ::core::option::Option<range_statistics_expression::Statistics>,
3749}
3750pub mod range_statistics_expression {
3752 #[derive(Clone, PartialEq, ::prost::Oneof)]
3753 pub enum Statistics {
3754 #[prost(message, tag = "3")]
3755 Reduction(super::NumericReduction),
3756 #[prost(message, tag = "4")]
3757 All(super::AllStatistics),
3758 }
3759}
3760#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3761pub struct AllStatistics {}
3762#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3763#[repr(i32)]
3764pub enum ComputeAlignmentStrategy {
3765 Unspecified = 0,
3766 DriverSeries = 1,
3767 Union = 2,
3768}
3769impl ComputeAlignmentStrategy {
3770 pub fn as_str_name(&self) -> &'static str {
3775 match self {
3776 Self::Unspecified => "COMPUTE_ALIGNMENT_STRATEGY_UNSPECIFIED",
3777 Self::DriverSeries => "COMPUTE_ALIGNMENT_STRATEGY_DRIVER_SERIES",
3778 Self::Union => "COMPUTE_ALIGNMENT_STRATEGY_UNION",
3779 }
3780 }
3781 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3783 match value {
3784 "COMPUTE_ALIGNMENT_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
3785 "COMPUTE_ALIGNMENT_STRATEGY_DRIVER_SERIES" => Some(Self::DriverSeries),
3786 "COMPUTE_ALIGNMENT_STRATEGY_UNION" => Some(Self::Union),
3787 _ => None,
3788 }
3789 }
3790}
3791#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3792#[repr(i32)]
3793pub enum BuiltinCurveForm {
3794 Unspecified = 0,
3795 Exponential = 1,
3796 Logarithmic = 2,
3797 Power = 3,
3798}
3799impl BuiltinCurveForm {
3800 pub fn as_str_name(&self) -> &'static str {
3805 match self {
3806 Self::Unspecified => "BUILTIN_CURVE_FORM_UNSPECIFIED",
3807 Self::Exponential => "BUILTIN_CURVE_FORM_EXPONENTIAL",
3808 Self::Logarithmic => "BUILTIN_CURVE_FORM_LOGARITHMIC",
3809 Self::Power => "BUILTIN_CURVE_FORM_POWER",
3810 }
3811 }
3812 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3814 match value {
3815 "BUILTIN_CURVE_FORM_UNSPECIFIED" => Some(Self::Unspecified),
3816 "BUILTIN_CURVE_FORM_EXPONENTIAL" => Some(Self::Exponential),
3817 "BUILTIN_CURVE_FORM_LOGARITHMIC" => Some(Self::Logarithmic),
3818 "BUILTIN_CURVE_FORM_POWER" => Some(Self::Power),
3819 _ => None,
3820 }
3821 }
3822}
3823#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3824#[repr(i32)]
3825pub enum UnboundedRangePolicy {
3826 Unspecified = 0,
3827 ClampToWindow = 1,
3828 Drop = 2,
3829}
3830impl UnboundedRangePolicy {
3831 pub fn as_str_name(&self) -> &'static str {
3836 match self {
3837 Self::Unspecified => "UNBOUNDED_RANGE_POLICY_UNSPECIFIED",
3838 Self::ClampToWindow => "UNBOUNDED_RANGE_POLICY_CLAMP_TO_WINDOW",
3839 Self::Drop => "UNBOUNDED_RANGE_POLICY_DROP",
3840 }
3841 }
3842 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3844 match value {
3845 "UNBOUNDED_RANGE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
3846 "UNBOUNDED_RANGE_POLICY_CLAMP_TO_WINDOW" => Some(Self::ClampToWindow),
3847 "UNBOUNDED_RANGE_POLICY_DROP" => Some(Self::Drop),
3848 _ => None,
3849 }
3850 }
3851}
3852#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3853#[repr(i32)]
3854pub enum ChronologicalOrder {
3855 Unspecified = 0,
3856 Ascending = 1,
3857 Descending = 2,
3858}
3859impl ChronologicalOrder {
3860 pub fn as_str_name(&self) -> &'static str {
3865 match self {
3866 Self::Unspecified => "CHRONOLOGICAL_ORDER_UNSPECIFIED",
3867 Self::Ascending => "CHRONOLOGICAL_ORDER_ASCENDING",
3868 Self::Descending => "CHRONOLOGICAL_ORDER_DESCENDING",
3869 }
3870 }
3871 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3873 match value {
3874 "CHRONOLOGICAL_ORDER_UNSPECIFIED" => Some(Self::Unspecified),
3875 "CHRONOLOGICAL_ORDER_ASCENDING" => Some(Self::Ascending),
3876 "CHRONOLOGICAL_ORDER_DESCENDING" => Some(Self::Descending),
3877 _ => None,
3878 }
3879 }
3880}
3881#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3882#[repr(i32)]
3883pub enum UnaryNumericOperation {
3884 Unspecified = 0,
3885 Abs = 1,
3886 Negate = 2,
3887 Cos = 3,
3888 Sin = 4,
3889 Tan = 5,
3890 Acos = 6,
3891 Asin = 7,
3892 Ln = 8,
3893 Log10 = 9,
3894 Sqrt = 10,
3895}
3896impl UnaryNumericOperation {
3897 pub fn as_str_name(&self) -> &'static str {
3902 match self {
3903 Self::Unspecified => "UNARY_NUMERIC_OPERATION_UNSPECIFIED",
3904 Self::Abs => "UNARY_NUMERIC_OPERATION_ABS",
3905 Self::Negate => "UNARY_NUMERIC_OPERATION_NEGATE",
3906 Self::Cos => "UNARY_NUMERIC_OPERATION_COS",
3907 Self::Sin => "UNARY_NUMERIC_OPERATION_SIN",
3908 Self::Tan => "UNARY_NUMERIC_OPERATION_TAN",
3909 Self::Acos => "UNARY_NUMERIC_OPERATION_ACOS",
3910 Self::Asin => "UNARY_NUMERIC_OPERATION_ASIN",
3911 Self::Ln => "UNARY_NUMERIC_OPERATION_LN",
3912 Self::Log10 => "UNARY_NUMERIC_OPERATION_LOG10",
3913 Self::Sqrt => "UNARY_NUMERIC_OPERATION_SQRT",
3914 }
3915 }
3916 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3918 match value {
3919 "UNARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3920 "UNARY_NUMERIC_OPERATION_ABS" => Some(Self::Abs),
3921 "UNARY_NUMERIC_OPERATION_NEGATE" => Some(Self::Negate),
3922 "UNARY_NUMERIC_OPERATION_COS" => Some(Self::Cos),
3923 "UNARY_NUMERIC_OPERATION_SIN" => Some(Self::Sin),
3924 "UNARY_NUMERIC_OPERATION_TAN" => Some(Self::Tan),
3925 "UNARY_NUMERIC_OPERATION_ACOS" => Some(Self::Acos),
3926 "UNARY_NUMERIC_OPERATION_ASIN" => Some(Self::Asin),
3927 "UNARY_NUMERIC_OPERATION_LN" => Some(Self::Ln),
3928 "UNARY_NUMERIC_OPERATION_LOG10" => Some(Self::Log10),
3929 "UNARY_NUMERIC_OPERATION_SQRT" => Some(Self::Sqrt),
3930 _ => None,
3931 }
3932 }
3933}
3934#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3935#[repr(i32)]
3936pub enum BinaryNumericOperation {
3937 Unspecified = 0,
3938 Add = 1,
3939 Subtract = 2,
3940 Multiply = 3,
3941 Divide = 4,
3942 FloorDivide = 5,
3943 Power = 6,
3944 Modulo = 7,
3945 Atan2 = 8,
3946}
3947impl BinaryNumericOperation {
3948 pub fn as_str_name(&self) -> &'static str {
3953 match self {
3954 Self::Unspecified => "BINARY_NUMERIC_OPERATION_UNSPECIFIED",
3955 Self::Add => "BINARY_NUMERIC_OPERATION_ADD",
3956 Self::Subtract => "BINARY_NUMERIC_OPERATION_SUBTRACT",
3957 Self::Multiply => "BINARY_NUMERIC_OPERATION_MULTIPLY",
3958 Self::Divide => "BINARY_NUMERIC_OPERATION_DIVIDE",
3959 Self::FloorDivide => "BINARY_NUMERIC_OPERATION_FLOOR_DIVIDE",
3960 Self::Power => "BINARY_NUMERIC_OPERATION_POWER",
3961 Self::Modulo => "BINARY_NUMERIC_OPERATION_MODULO",
3962 Self::Atan2 => "BINARY_NUMERIC_OPERATION_ATAN2",
3963 }
3964 }
3965 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3967 match value {
3968 "BINARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
3969 "BINARY_NUMERIC_OPERATION_ADD" => Some(Self::Add),
3970 "BINARY_NUMERIC_OPERATION_SUBTRACT" => Some(Self::Subtract),
3971 "BINARY_NUMERIC_OPERATION_MULTIPLY" => Some(Self::Multiply),
3972 "BINARY_NUMERIC_OPERATION_DIVIDE" => Some(Self::Divide),
3973 "BINARY_NUMERIC_OPERATION_FLOOR_DIVIDE" => Some(Self::FloorDivide),
3974 "BINARY_NUMERIC_OPERATION_POWER" => Some(Self::Power),
3975 "BINARY_NUMERIC_OPERATION_MODULO" => Some(Self::Modulo),
3976 "BINARY_NUMERIC_OPERATION_ATAN2" => Some(Self::Atan2),
3977 _ => None,
3978 }
3979 }
3980}
3981#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3982#[repr(i32)]
3983pub enum NaryNumericOperation {
3984 Unspecified = 0,
3985 Max = 1,
3986 Mean = 2,
3987 Min = 3,
3988 Sum = 4,
3989 Product = 5,
3990}
3991impl NaryNumericOperation {
3992 pub fn as_str_name(&self) -> &'static str {
3997 match self {
3998 Self::Unspecified => "NARY_NUMERIC_OPERATION_UNSPECIFIED",
3999 Self::Max => "NARY_NUMERIC_OPERATION_MAX",
4000 Self::Mean => "NARY_NUMERIC_OPERATION_MEAN",
4001 Self::Min => "NARY_NUMERIC_OPERATION_MIN",
4002 Self::Sum => "NARY_NUMERIC_OPERATION_SUM",
4003 Self::Product => "NARY_NUMERIC_OPERATION_PRODUCT",
4004 }
4005 }
4006 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4008 match value {
4009 "NARY_NUMERIC_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4010 "NARY_NUMERIC_OPERATION_MAX" => Some(Self::Max),
4011 "NARY_NUMERIC_OPERATION_MEAN" => Some(Self::Mean),
4012 "NARY_NUMERIC_OPERATION_MIN" => Some(Self::Min),
4013 "NARY_NUMERIC_OPERATION_SUM" => Some(Self::Sum),
4014 "NARY_NUMERIC_OPERATION_PRODUCT" => Some(Self::Product),
4015 _ => None,
4016 }
4017 }
4018}
4019#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4020#[repr(i32)]
4021pub enum BitwiseOperation {
4022 Unspecified = 0,
4023 And = 1,
4024 Or = 2,
4025 Xor = 3,
4026 ShiftRight = 4,
4027 ShiftLeft = 5,
4028 Test = 6,
4029}
4030impl BitwiseOperation {
4031 pub fn as_str_name(&self) -> &'static str {
4036 match self {
4037 Self::Unspecified => "BITWISE_OPERATION_UNSPECIFIED",
4038 Self::And => "BITWISE_OPERATION_AND",
4039 Self::Or => "BITWISE_OPERATION_OR",
4040 Self::Xor => "BITWISE_OPERATION_XOR",
4041 Self::ShiftRight => "BITWISE_OPERATION_SHIFT_RIGHT",
4042 Self::ShiftLeft => "BITWISE_OPERATION_SHIFT_LEFT",
4043 Self::Test => "BITWISE_OPERATION_TEST",
4044 }
4045 }
4046 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4048 match value {
4049 "BITWISE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4050 "BITWISE_OPERATION_AND" => Some(Self::And),
4051 "BITWISE_OPERATION_OR" => Some(Self::Or),
4052 "BITWISE_OPERATION_XOR" => Some(Self::Xor),
4053 "BITWISE_OPERATION_SHIFT_RIGHT" => Some(Self::ShiftRight),
4054 "BITWISE_OPERATION_SHIFT_LEFT" => Some(Self::ShiftLeft),
4055 "BITWISE_OPERATION_TEST" => Some(Self::Test),
4056 _ => None,
4057 }
4058 }
4059}
4060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4061#[repr(i32)]
4062pub enum ComparisonOperation {
4063 Unspecified = 0,
4064 GreaterThan = 1,
4065 LessThan = 2,
4066 EqualTo = 3,
4067 NotEqualTo = 4,
4068 GreaterThanOrEqualTo = 5,
4069 LessThanOrEqualTo = 6,
4070}
4071impl ComparisonOperation {
4072 pub fn as_str_name(&self) -> &'static str {
4077 match self {
4078 Self::Unspecified => "COMPARISON_OPERATION_UNSPECIFIED",
4079 Self::GreaterThan => "COMPARISON_OPERATION_GREATER_THAN",
4080 Self::LessThan => "COMPARISON_OPERATION_LESS_THAN",
4081 Self::EqualTo => "COMPARISON_OPERATION_EQUAL_TO",
4082 Self::NotEqualTo => "COMPARISON_OPERATION_NOT_EQUAL_TO",
4083 Self::GreaterThanOrEqualTo => "COMPARISON_OPERATION_GREATER_THAN_OR_EQUAL_TO",
4084 Self::LessThanOrEqualTo => "COMPARISON_OPERATION_LESS_THAN_OR_EQUAL_TO",
4085 }
4086 }
4087 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4089 match value {
4090 "COMPARISON_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4091 "COMPARISON_OPERATION_GREATER_THAN" => Some(Self::GreaterThan),
4092 "COMPARISON_OPERATION_LESS_THAN" => Some(Self::LessThan),
4093 "COMPARISON_OPERATION_EQUAL_TO" => Some(Self::EqualTo),
4094 "COMPARISON_OPERATION_NOT_EQUAL_TO" => Some(Self::NotEqualTo),
4095 "COMPARISON_OPERATION_GREATER_THAN_OR_EQUAL_TO" => {
4096 Some(Self::GreaterThanOrEqualTo)
4097 }
4098 "COMPARISON_OPERATION_LESS_THAN_OR_EQUAL_TO" => Some(Self::LessThanOrEqualTo),
4099 _ => None,
4100 }
4101 }
4102}
4103#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4104#[repr(i32)]
4105pub enum LogicalOperation {
4106 Unspecified = 0,
4107 And = 1,
4108 Or = 2,
4109}
4110impl LogicalOperation {
4111 pub fn as_str_name(&self) -> &'static str {
4116 match self {
4117 Self::Unspecified => "LOGICAL_OPERATION_UNSPECIFIED",
4118 Self::And => "LOGICAL_OPERATION_AND",
4119 Self::Or => "LOGICAL_OPERATION_OR",
4120 }
4121 }
4122 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4124 match value {
4125 "LOGICAL_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4126 "LOGICAL_OPERATION_AND" => Some(Self::And),
4127 "LOGICAL_OPERATION_OR" => Some(Self::Or),
4128 _ => None,
4129 }
4130 }
4131}
4132#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4133#[repr(i32)]
4134pub enum NegativeValuePolicy {
4135 Unspecified = 0,
4136 Allow = 1,
4137 ClampToZero = 2,
4138 Exclude = 3,
4139}
4140impl NegativeValuePolicy {
4141 pub fn as_str_name(&self) -> &'static str {
4146 match self {
4147 Self::Unspecified => "NEGATIVE_VALUE_POLICY_UNSPECIFIED",
4148 Self::Allow => "NEGATIVE_VALUE_POLICY_ALLOW",
4149 Self::ClampToZero => "NEGATIVE_VALUE_POLICY_CLAMP_TO_ZERO",
4150 Self::Exclude => "NEGATIVE_VALUE_POLICY_EXCLUDE",
4151 }
4152 }
4153 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4155 match value {
4156 "NEGATIVE_VALUE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
4157 "NEGATIVE_VALUE_POLICY_ALLOW" => Some(Self::Allow),
4158 "NEGATIVE_VALUE_POLICY_CLAMP_TO_ZERO" => Some(Self::ClampToZero),
4159 "NEGATIVE_VALUE_POLICY_EXCLUDE" => Some(Self::Exclude),
4160 _ => None,
4161 }
4162 }
4163}
4164#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4165#[repr(i32)]
4166pub enum PointLimitOrder {
4167 Unspecified = 0,
4168 Newest = 1,
4169 Oldest = 2,
4170}
4171impl PointLimitOrder {
4172 pub fn as_str_name(&self) -> &'static str {
4177 match self {
4178 Self::Unspecified => "POINT_LIMIT_ORDER_UNSPECIFIED",
4179 Self::Newest => "POINT_LIMIT_ORDER_NEWEST",
4180 Self::Oldest => "POINT_LIMIT_ORDER_OLDEST",
4181 }
4182 }
4183 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4185 match value {
4186 "POINT_LIMIT_ORDER_UNSPECIFIED" => Some(Self::Unspecified),
4187 "POINT_LIMIT_ORDER_NEWEST" => Some(Self::Newest),
4188 "POINT_LIMIT_ORDER_OLDEST" => Some(Self::Oldest),
4189 _ => None,
4190 }
4191 }
4192}
4193#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4194#[repr(i32)]
4195pub enum ApproximateComparisonOperation {
4196 Unspecified = 0,
4197 EqualTo = 1,
4198 NotEqualTo = 2,
4199}
4200impl ApproximateComparisonOperation {
4201 pub fn as_str_name(&self) -> &'static str {
4206 match self {
4207 Self::Unspecified => "APPROXIMATE_COMPARISON_OPERATION_UNSPECIFIED",
4208 Self::EqualTo => "APPROXIMATE_COMPARISON_OPERATION_EQUAL_TO",
4209 Self::NotEqualTo => "APPROXIMATE_COMPARISON_OPERATION_NOT_EQUAL_TO",
4210 }
4211 }
4212 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4214 match value {
4215 "APPROXIMATE_COMPARISON_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4216 "APPROXIMATE_COMPARISON_OPERATION_EQUAL_TO" => Some(Self::EqualTo),
4217 "APPROXIMATE_COMPARISON_OPERATION_NOT_EQUAL_TO" => Some(Self::NotEqualTo),
4218 _ => None,
4219 }
4220 }
4221}
4222#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4223#[repr(i32)]
4224pub enum DuplicateMergeOperation {
4225 Unspecified = 0,
4226 Min = 1,
4227 Max = 2,
4228 Mean = 3,
4229 Sum = 4,
4230 Count = 5,
4231 StandardDeviation = 6,
4232 RootMeanSquare = 7,
4233 Reject = 8,
4234}
4235impl DuplicateMergeOperation {
4236 pub fn as_str_name(&self) -> &'static str {
4241 match self {
4242 Self::Unspecified => "DUPLICATE_MERGE_OPERATION_UNSPECIFIED",
4243 Self::Min => "DUPLICATE_MERGE_OPERATION_MIN",
4244 Self::Max => "DUPLICATE_MERGE_OPERATION_MAX",
4245 Self::Mean => "DUPLICATE_MERGE_OPERATION_MEAN",
4246 Self::Sum => "DUPLICATE_MERGE_OPERATION_SUM",
4247 Self::Count => "DUPLICATE_MERGE_OPERATION_COUNT",
4248 Self::StandardDeviation => "DUPLICATE_MERGE_OPERATION_STANDARD_DEVIATION",
4249 Self::RootMeanSquare => "DUPLICATE_MERGE_OPERATION_ROOT_MEAN_SQUARE",
4250 Self::Reject => "DUPLICATE_MERGE_OPERATION_REJECT",
4251 }
4252 }
4253 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4255 match value {
4256 "DUPLICATE_MERGE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4257 "DUPLICATE_MERGE_OPERATION_MIN" => Some(Self::Min),
4258 "DUPLICATE_MERGE_OPERATION_MAX" => Some(Self::Max),
4259 "DUPLICATE_MERGE_OPERATION_MEAN" => Some(Self::Mean),
4260 "DUPLICATE_MERGE_OPERATION_SUM" => Some(Self::Sum),
4261 "DUPLICATE_MERGE_OPERATION_COUNT" => Some(Self::Count),
4262 "DUPLICATE_MERGE_OPERATION_STANDARD_DEVIATION" => {
4263 Some(Self::StandardDeviation)
4264 }
4265 "DUPLICATE_MERGE_OPERATION_ROOT_MEAN_SQUARE" => Some(Self::RootMeanSquare),
4266 "DUPLICATE_MERGE_OPERATION_REJECT" => Some(Self::Reject),
4267 _ => None,
4268 }
4269 }
4270}
4271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4272#[repr(i32)]
4273pub enum LiteralBitwiseOperation {
4274 Unspecified = 0,
4275 And = 1,
4276 Or = 2,
4277 Xor = 3,
4278}
4279impl LiteralBitwiseOperation {
4280 pub fn as_str_name(&self) -> &'static str {
4285 match self {
4286 Self::Unspecified => "LITERAL_BITWISE_OPERATION_UNSPECIFIED",
4287 Self::And => "LITERAL_BITWISE_OPERATION_AND",
4288 Self::Or => "LITERAL_BITWISE_OPERATION_OR",
4289 Self::Xor => "LITERAL_BITWISE_OPERATION_XOR",
4290 }
4291 }
4292 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4294 match value {
4295 "LITERAL_BITWISE_OPERATION_UNSPECIFIED" => Some(Self::Unspecified),
4296 "LITERAL_BITWISE_OPERATION_AND" => Some(Self::And),
4297 "LITERAL_BITWISE_OPERATION_OR" => Some(Self::Or),
4298 "LITERAL_BITWISE_OPERATION_XOR" => Some(Self::Xor),
4299 _ => None,
4300 }
4301 }
4302}
4303#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4304#[repr(i32)]
4305pub enum ShiftDirection {
4306 Unspecified = 0,
4307 Left = 1,
4308 Right = 2,
4309}
4310impl ShiftDirection {
4311 pub fn as_str_name(&self) -> &'static str {
4316 match self {
4317 Self::Unspecified => "SHIFT_DIRECTION_UNSPECIFIED",
4318 Self::Left => "SHIFT_DIRECTION_LEFT",
4319 Self::Right => "SHIFT_DIRECTION_RIGHT",
4320 }
4321 }
4322 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4324 match value {
4325 "SHIFT_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
4326 "SHIFT_DIRECTION_LEFT" => Some(Self::Left),
4327 "SHIFT_DIRECTION_RIGHT" => Some(Self::Right),
4328 _ => None,
4329 }
4330 }
4331}
4332#[derive(Clone, PartialEq, ::prost::Message)]
4333pub struct ScalarValue {
4334 #[prost(oneof = "scalar_value::Kind", tags = "1, 2, 3")]
4335 pub kind: ::core::option::Option<scalar_value::Kind>,
4336}
4337pub mod scalar_value {
4339 #[derive(Clone, PartialEq, ::prost::Oneof)]
4340 pub enum Kind {
4341 #[prost(string, tag = "1")]
4342 StringValue(::prost::alloc::string::String),
4343 #[prost(double, tag = "2")]
4344 Float64Value(f64),
4345 #[prost(int64, tag = "3")]
4346 Int64Value(i64),
4347 }
4348}