Skip to main content

perspective_client/
proto.rs

1// This file is @generated by prost-build.
2/// Recoverable, user-readable error reporting from the engine.
3#[derive(serde::Serialize)]
4#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct ServerError {
7    #[prost(string, tag = "1")]
8    pub message: ::prost::alloc::string::String,
9    #[prost(enumeration = "StatusCode", tag = "2")]
10    pub status_code: i32,
11}
12#[derive(serde::Serialize)]
13#[allow(clippy::derive_partial_eq_without_eq)]
14#[derive(Clone, PartialEq, ::prost::Message)]
15pub struct Schema {
16    #[prost(message, repeated, tag = "1")]
17    pub schema: ::prost::alloc::vec::Vec<schema::KeyTypePair>,
18}
19/// Nested message and enum types in `Schema`.
20pub mod schema {
21    #[derive(serde::Serialize)]
22    #[allow(clippy::derive_partial_eq_without_eq)]
23    #[derive(Clone, PartialEq, ::prost::Message)]
24    pub struct KeyTypePair {
25        #[prost(string, tag = "1")]
26        pub name: ::prost::alloc::string::String,
27        #[prost(enumeration = "super::ColumnType", tag = "2")]
28        pub r#type: i32,
29    }
30}
31/// The data type constructors Perspective supports.
32#[derive(serde::Serialize)]
33#[allow(clippy::derive_partial_eq_without_eq)]
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct MakeTableData {
36    #[prost(oneof = "make_table_data::Data", tags = "1, 2, 3, 4, 5, 6, 7")]
37    pub data: ::core::option::Option<make_table_data::Data>,
38}
39/// Nested message and enum types in `MakeTableData`.
40pub mod make_table_data {
41    #[derive(serde::Serialize)]
42    #[allow(clippy::derive_partial_eq_without_eq)]
43    #[derive(Clone, PartialEq, ::prost::Oneof)]
44    pub enum Data {
45        #[prost(message, tag = "1")]
46        FromSchema(super::Schema),
47        #[prost(string, tag = "2")]
48        FromCsv(::prost::alloc::string::String),
49        #[prost(bytes, tag = "3")]
50        #[serde(skip)]
51        FromArrow(::prost::alloc::vec::Vec<u8>),
52        #[prost(string, tag = "4")]
53        FromRows(::prost::alloc::string::String),
54        #[prost(string, tag = "5")]
55        FromCols(::prost::alloc::string::String),
56        #[prost(string, tag = "6")]
57        FromView(::prost::alloc::string::String),
58        #[prost(string, tag = "7")]
59        FromNdjson(::prost::alloc::string::String),
60    }
61}
62/// Filter type scalars - this is _not_ the same as a Columns scalar, as this
63/// value is used in the view config and must be JSON safe!
64#[derive(serde::Serialize)]
65#[allow(clippy::derive_partial_eq_without_eq)]
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct Scalar {
68    #[prost(oneof = "scalar::Scalar", tags = "1, 4, 6, 7")]
69    pub scalar: ::core::option::Option<scalar::Scalar>,
70}
71/// Nested message and enum types in `Scalar`.
72pub mod scalar {
73    #[derive(serde::Serialize)]
74    #[allow(clippy::derive_partial_eq_without_eq)]
75    #[derive(Clone, PartialEq, ::prost::Oneof)]
76    pub enum Scalar {
77        #[prost(bool, tag = "1")]
78        Bool(bool),
79        /// int64 date = 2; // TODO these are the wrong type
80        /// int64 datetime = 3;
81        #[prost(double, tag = "4")]
82        Float(f64),
83        /// int32 int = 5;
84        #[prost(string, tag = "6")]
85        String(::prost::alloc::string::String),
86        #[prost(enumeration = "::prost_types::NullValue", tag = "7")]
87        Null(i32),
88    }
89}
90/// Options for requresting a slice of data, starting with the rectangular
91/// viewport.
92#[derive(serde::Serialize)]
93#[derive(serde::Deserialize)]
94#[allow(clippy::derive_partial_eq_without_eq)]
95#[derive(Clone, PartialEq, ::prost::Message)]
96pub struct ViewPort {
97    #[prost(uint32, optional, tag = "1")]
98    pub start_row: ::core::option::Option<u32>,
99    #[prost(uint32, optional, tag = "2")]
100    pub start_col: ::core::option::Option<u32>,
101    #[prost(uint32, optional, tag = "3")]
102    pub end_row: ::core::option::Option<u32>,
103    #[prost(uint32, optional, tag = "4")]
104    pub end_col: ::core::option::Option<u32>,
105    ///    optional bool id = 5;
106    ///    optional bool index = 3;
107    ///    optional bool formatted = 6;
108    ///    optional bool leaves_only = 7;
109    ///    optional bool compression = 3;
110    #[prost(bool, optional, tag = "5")]
111    pub emit_legacy_row_path_names: ::core::option::Option<bool>,
112}
113#[derive(serde::Serialize)]
114#[allow(clippy::derive_partial_eq_without_eq)]
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct Request {
117    #[prost(uint32, tag = "1")]
118    pub msg_id: u32,
119    #[prost(string, tag = "2")]
120    pub entity_id: ::prost::alloc::string::String,
121    #[prost(
122        oneof = "request::ClientReq",
123        tags = "3, 4, 37, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38"
124    )]
125    pub client_req: ::core::option::Option<request::ClientReq>,
126}
127/// Nested message and enum types in `Request`.
128pub mod request {
129    #[derive(serde::Serialize)]
130    #[allow(clippy::derive_partial_eq_without_eq)]
131    #[derive(Clone, PartialEq, ::prost::Oneof)]
132    pub enum ClientReq {
133        /// Minimum Virtual API (theoretical).
134        #[prost(message, tag = "3")]
135        GetFeaturesReq(super::GetFeaturesReq),
136        #[prost(message, tag = "4")]
137        GetHostedTablesReq(super::GetHostedTablesReq),
138        #[prost(message, tag = "37")]
139        RemoveHostedTablesUpdateReq(super::RemoveHostedTablesUpdateReq),
140        #[prost(message, tag = "5")]
141        TableMakePortReq(super::TableMakePortReq),
142        #[prost(message, tag = "6")]
143        TableMakeViewReq(super::TableMakeViewReq),
144        #[prost(message, tag = "7")]
145        TableSchemaReq(super::TableSchemaReq),
146        #[prost(message, tag = "8")]
147        TableSizeReq(super::TableSizeReq),
148        #[prost(message, tag = "9")]
149        TableValidateExprReq(super::TableValidateExprReq),
150        #[prost(message, tag = "10")]
151        ViewColumnPathsReq(super::ViewColumnPathsReq),
152        #[prost(message, tag = "11")]
153        ViewDeleteReq(super::ViewDeleteReq),
154        #[prost(message, tag = "12")]
155        ViewDimensionsReq(super::ViewDimensionsReq),
156        #[prost(message, tag = "13")]
157        ViewExpressionSchemaReq(super::ViewExpressionSchemaReq),
158        #[prost(message, tag = "14")]
159        ViewGetConfigReq(super::ViewGetConfigReq),
160        #[prost(message, tag = "15")]
161        ViewSchemaReq(super::ViewSchemaReq),
162        #[prost(message, tag = "16")]
163        ViewToArrowReq(super::ViewToArrowReq),
164        /// Optional (we can enable real-time/autocomplete/etc with these, but
165        /// not required).
166        #[prost(message, tag = "17")]
167        ServerSystemInfoReq(super::ServerSystemInfoReq),
168        #[prost(message, tag = "18")]
169        ViewCollapseReq(super::ViewCollapseReq),
170        #[prost(message, tag = "19")]
171        ViewExpandReq(super::ViewExpandReq),
172        #[prost(message, tag = "20")]
173        ViewGetMinMaxReq(super::ViewGetMinMaxReq),
174        #[prost(message, tag = "21")]
175        ViewOnUpdateReq(super::ViewOnUpdateReq),
176        #[prost(message, tag = "22")]
177        ViewRemoveOnUpdateReq(super::ViewRemoveOnUpdateReq),
178        #[prost(message, tag = "23")]
179        ViewSetDepthReq(super::ViewSetDepthReq),
180        #[prost(message, tag = "24")]
181        ViewToColumnsStringReq(super::ViewToColumnsStringReq),
182        #[prost(message, tag = "25")]
183        ViewToCsvReq(super::ViewToCsvReq),
184        #[prost(message, tag = "26")]
185        ViewToRowsStringReq(super::ViewToRowsStringReq),
186        #[prost(message, tag = "36")]
187        ViewToNdjsonStringReq(super::ViewToNdjsonStringReq),
188        /// External (we don't need these for viewer, but the developer may).
189        #[prost(message, tag = "27")]
190        MakeTableReq(super::MakeTableReq),
191        #[prost(message, tag = "28")]
192        TableDeleteReq(super::TableDeleteReq),
193        #[prost(message, tag = "29")]
194        TableOnDeleteReq(super::TableOnDeleteReq),
195        #[prost(message, tag = "30")]
196        TableRemoveDeleteReq(super::TableRemoveDeleteReq),
197        #[prost(message, tag = "31")]
198        TableRemoveReq(super::TableRemoveReq),
199        #[prost(message, tag = "32")]
200        TableReplaceReq(super::TableReplaceReq),
201        #[prost(message, tag = "33")]
202        TableUpdateReq(super::TableUpdateReq),
203        #[prost(message, tag = "34")]
204        ViewOnDeleteReq(super::ViewOnDeleteReq),
205        #[prost(message, tag = "35")]
206        ViewRemoveDeleteReq(super::ViewRemoveDeleteReq),
207        #[prost(message, tag = "38")]
208        MakeJoinTableReq(super::MakeJoinTableReq),
209    }
210}
211#[derive(serde::Serialize)]
212#[allow(clippy::derive_partial_eq_without_eq)]
213#[derive(Clone, PartialEq, ::prost::Message)]
214pub struct Response {
215    #[prost(uint32, tag = "1")]
216    pub msg_id: u32,
217    #[prost(string, tag = "2")]
218    pub entity_id: ::prost::alloc::string::String,
219    #[prost(
220        oneof = "response::ClientResp",
221        tags = "3, 4, 37, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 50"
222    )]
223    pub client_resp: ::core::option::Option<response::ClientResp>,
224}
225/// Nested message and enum types in `Response`.
226pub mod response {
227    #[derive(serde::Serialize)]
228    #[allow(clippy::derive_partial_eq_without_eq)]
229    #[derive(Clone, PartialEq, ::prost::Oneof)]
230    pub enum ClientResp {
231        #[prost(message, tag = "3")]
232        GetFeaturesResp(super::GetFeaturesResp),
233        #[prost(message, tag = "4")]
234        GetHostedTablesResp(super::GetHostedTablesResp),
235        #[prost(message, tag = "37")]
236        RemoveHostedTablesUpdateResp(super::RemoveHostedTablesUpdateResp),
237        #[prost(message, tag = "5")]
238        TableMakePortResp(super::TableMakePortResp),
239        #[prost(message, tag = "6")]
240        TableMakeViewResp(super::TableMakeViewResp),
241        #[prost(message, tag = "7")]
242        TableSchemaResp(super::TableSchemaResp),
243        #[prost(message, tag = "8")]
244        TableSizeResp(super::TableSizeResp),
245        #[prost(message, tag = "9")]
246        TableValidateExprResp(super::TableValidateExprResp),
247        #[prost(message, tag = "10")]
248        ViewColumnPathsResp(super::ViewColumnPathsResp),
249        #[prost(message, tag = "11")]
250        ViewDeleteResp(super::ViewDeleteResp),
251        #[prost(message, tag = "12")]
252        ViewDimensionsResp(super::ViewDimensionsResp),
253        #[prost(message, tag = "13")]
254        ViewExpressionSchemaResp(super::ViewExpressionSchemaResp),
255        #[prost(message, tag = "14")]
256        ViewGetConfigResp(super::ViewGetConfigResp),
257        #[prost(message, tag = "15")]
258        ViewSchemaResp(super::ViewSchemaResp),
259        #[prost(message, tag = "16")]
260        ViewToArrowResp(super::ViewToArrowResp),
261        #[prost(message, tag = "17")]
262        ServerSystemInfoResp(super::ServerSystemInfoResp),
263        #[prost(message, tag = "18")]
264        ViewCollapseResp(super::ViewCollapseResp),
265        #[prost(message, tag = "19")]
266        ViewExpandResp(super::ViewExpandResp),
267        #[prost(message, tag = "20")]
268        ViewGetMinMaxResp(super::ViewGetMinMaxResp),
269        #[prost(message, tag = "21")]
270        ViewOnUpdateResp(super::ViewOnUpdateResp),
271        #[prost(message, tag = "22")]
272        ViewRemoveOnUpdateResp(super::ViewRemoveOnUpdateResp),
273        #[prost(message, tag = "23")]
274        ViewSetDepthResp(super::ViewSetDepthResp),
275        #[prost(message, tag = "24")]
276        ViewToColumnsStringResp(super::ViewToColumnsStringResp),
277        #[prost(message, tag = "25")]
278        ViewToCsvResp(super::ViewToCsvResp),
279        #[prost(message, tag = "26")]
280        ViewToRowsStringResp(super::ViewToRowsStringResp),
281        #[prost(message, tag = "36")]
282        ViewToNdjsonStringResp(super::ViewToNdjsonStringResp),
283        #[prost(message, tag = "27")]
284        MakeTableResp(super::MakeTableResp),
285        #[prost(message, tag = "28")]
286        TableDeleteResp(super::TableDeleteResp),
287        #[prost(message, tag = "29")]
288        TableOnDeleteResp(super::TableOnDeleteResp),
289        #[prost(message, tag = "30")]
290        TableRemoveDeleteResp(super::TableRemoveDeleteResp),
291        #[prost(message, tag = "31")]
292        TableRemoveResp(super::TableRemoveResp),
293        #[prost(message, tag = "32")]
294        TableReplaceResp(super::TableReplaceResp),
295        #[prost(message, tag = "33")]
296        TableUpdateResp(super::TableUpdateResp),
297        #[prost(message, tag = "34")]
298        ViewOnDeleteResp(super::ViewOnDeleteResp),
299        #[prost(message, tag = "35")]
300        ViewRemoveDeleteResp(super::ViewRemoveDeleteResp),
301        #[prost(message, tag = "38")]
302        MakeJoinTableResp(super::MakeJoinTableResp),
303        #[prost(message, tag = "50")]
304        ServerError(super::ServerError),
305    }
306}
307/// Informs the client of the feature set, e.g. what to expect in the
308/// `ViewConfig` message.
309#[derive(serde::Serialize)]
310#[allow(clippy::derive_partial_eq_without_eq)]
311#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct GetFeaturesReq {}
313#[derive(serde::Serialize)]
314#[allow(clippy::derive_partial_eq_without_eq)]
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct GetFeaturesResp {
317    #[prost(bool, tag = "1")]
318    pub group_by: bool,
319    #[prost(bool, tag = "2")]
320    pub split_by: bool,
321    #[prost(bool, tag = "3")]
322    pub expressions: bool,
323    #[prost(bool, tag = "4")]
324    pub on_update: bool,
325    #[prost(bool, tag = "5")]
326    pub sort: bool,
327    #[prost(map = "uint32, message", tag = "6")]
328    pub filter_ops: ::std::collections::HashMap<
329        u32,
330        get_features_resp::ColumnTypeOptions,
331    >,
332    #[prost(map = "uint32, message", tag = "7")]
333    pub aggregates: ::std::collections::HashMap<
334        u32,
335        get_features_resp::AggregateOptions,
336    >,
337    #[prost(enumeration = "GroupRollupMode", repeated, tag = "8")]
338    pub group_rollup_mode: ::prost::alloc::vec::Vec<i32>,
339    #[prost(map = "uint32, message", tag = "9")]
340    pub window_aggregates: ::std::collections::HashMap<
341        u32,
342        get_features_resp::WindowAggregateOptions,
343    >,
344    #[prost(bool, tag = "10")]
345    pub unordered: bool,
346}
347/// Nested message and enum types in `GetFeaturesResp`.
348pub mod get_features_resp {
349    #[derive(serde::Serialize)]
350    #[allow(clippy::derive_partial_eq_without_eq)]
351    #[derive(Clone, PartialEq, ::prost::Message)]
352    pub struct WindowAggregateOptions {
353        #[prost(enumeration = "super::WindowAggregate", repeated, tag = "1")]
354        pub options: ::prost::alloc::vec::Vec<i32>,
355    }
356    #[derive(serde::Serialize)]
357    #[allow(clippy::derive_partial_eq_without_eq)]
358    #[derive(Clone, PartialEq, ::prost::Message)]
359    pub struct ColumnTypeOptions {
360        #[prost(string, repeated, tag = "1")]
361        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
362    }
363    #[derive(serde::Serialize)]
364    #[allow(clippy::derive_partial_eq_without_eq)]
365    #[derive(Clone, PartialEq, ::prost::Message)]
366    pub struct AggregateOptions {
367        #[prost(message, repeated, tag = "1")]
368        pub aggregates: ::prost::alloc::vec::Vec<AggregateArgs>,
369    }
370    #[derive(serde::Serialize)]
371    #[allow(clippy::derive_partial_eq_without_eq)]
372    #[derive(Clone, PartialEq, ::prost::Message)]
373    pub struct AggregateArgs {
374        #[prost(string, tag = "1")]
375        pub name: ::prost::alloc::string::String,
376        #[prost(enumeration = "super::ColumnType", repeated, tag = "2")]
377        pub args: ::prost::alloc::vec::Vec<i32>,
378    }
379}
380/// `Client::get_hosted_tables`
381#[derive(serde::Serialize)]
382#[allow(clippy::derive_partial_eq_without_eq)]
383#[derive(Clone, PartialEq, ::prost::Message)]
384pub struct GetHostedTablesReq {
385    #[prost(bool, tag = "1")]
386    pub subscribe: bool,
387}
388#[derive(serde::Serialize)]
389#[allow(clippy::derive_partial_eq_without_eq)]
390#[derive(Clone, PartialEq, ::prost::Message)]
391pub struct GetHostedTablesResp {
392    #[prost(message, repeated, tag = "1")]
393    pub table_infos: ::prost::alloc::vec::Vec<HostedTable>,
394}
395#[derive(serde::Serialize)]
396#[allow(clippy::derive_partial_eq_without_eq)]
397#[derive(Clone, PartialEq, ::prost::Message)]
398pub struct HostedTable {
399    #[prost(string, tag = "1")]
400    pub entity_id: ::prost::alloc::string::String,
401    #[prost(string, optional, tag = "2")]
402    pub index: ::core::option::Option<::prost::alloc::string::String>,
403    #[prost(uint32, optional, tag = "3")]
404    pub limit: ::core::option::Option<u32>,
405}
406#[derive(serde::Serialize)]
407#[allow(clippy::derive_partial_eq_without_eq)]
408#[derive(Clone, PartialEq, ::prost::Message)]
409pub struct RemoveHostedTablesUpdateReq {
410    #[prost(uint32, tag = "1")]
411    pub id: u32,
412}
413#[derive(serde::Serialize)]
414#[allow(clippy::derive_partial_eq_without_eq)]
415#[derive(Clone, PartialEq, ::prost::Message)]
416pub struct RemoveHostedTablesUpdateResp {}
417/// `Table::size`
418#[derive(serde::Serialize)]
419#[allow(clippy::derive_partial_eq_without_eq)]
420#[derive(Clone, PartialEq, ::prost::Message)]
421pub struct TableSizeReq {}
422#[derive(serde::Serialize)]
423#[allow(clippy::derive_partial_eq_without_eq)]
424#[derive(Clone, PartialEq, ::prost::Message)]
425pub struct TableSizeResp {
426    #[prost(uint32, tag = "2")]
427    pub size: u32,
428}
429/// `Table::schema`
430#[derive(serde::Serialize)]
431#[allow(clippy::derive_partial_eq_without_eq)]
432#[derive(Clone, PartialEq, ::prost::Message)]
433pub struct TableSchemaReq {}
434#[derive(serde::Serialize)]
435#[allow(clippy::derive_partial_eq_without_eq)]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct TableSchemaResp {
438    #[prost(message, optional, tag = "1")]
439    pub schema: ::core::option::Option<Schema>,
440}
441/// `Table::validate_expressions`
442/// TODO: This should be just `validate()`
443#[derive(serde::Serialize)]
444#[allow(clippy::derive_partial_eq_without_eq)]
445#[derive(Clone, PartialEq, ::prost::Message)]
446pub struct TableValidateExprReq {
447    #[prost(map = "string, string", tag = "1")]
448    pub column_to_expr: ::std::collections::HashMap<
449        ::prost::alloc::string::String,
450        ::prost::alloc::string::String,
451    >,
452}
453#[derive(serde::Serialize)]
454#[derive(serde::Deserialize)]
455#[allow(clippy::derive_partial_eq_without_eq)]
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct TableValidateExprResp {
458    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
459    pub expression_schema: ::std::collections::HashMap<
460        ::prost::alloc::string::String,
461        i32,
462    >,
463    #[prost(map = "string, message", tag = "2")]
464    pub errors: ::std::collections::HashMap<
465        ::prost::alloc::string::String,
466        table_validate_expr_resp::ExprValidationError,
467    >,
468    #[prost(map = "string, string", tag = "3")]
469    pub expression_alias: ::std::collections::HashMap<
470        ::prost::alloc::string::String,
471        ::prost::alloc::string::String,
472    >,
473}
474/// Nested message and enum types in `TableValidateExprResp`.
475pub mod table_validate_expr_resp {
476    #[derive(serde::Serialize)]
477    #[derive(serde::Deserialize)]
478    #[allow(clippy::derive_partial_eq_without_eq)]
479    #[derive(Clone, PartialEq, ::prost::Message)]
480    pub struct ExprValidationError {
481        #[prost(string, tag = "1")]
482        pub error_message: ::prost::alloc::string::String,
483        #[prost(uint32, tag = "2")]
484        pub line: u32,
485        #[prost(uint32, tag = "3")]
486        pub column: u32,
487    }
488}
489/// `Table::view`
490#[derive(serde::Serialize)]
491#[allow(clippy::derive_partial_eq_without_eq)]
492#[derive(Clone, PartialEq, ::prost::Message)]
493pub struct TableMakeViewReq {
494    #[prost(string, tag = "1")]
495    pub view_id: ::prost::alloc::string::String,
496    #[prost(message, optional, tag = "2")]
497    pub config: ::core::option::Option<ViewConfig>,
498}
499#[derive(serde::Serialize)]
500#[allow(clippy::derive_partial_eq_without_eq)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct TableMakeViewResp {
503    #[prost(string, tag = "1")]
504    pub view_id: ::prost::alloc::string::String,
505}
506/// `View::schema`
507#[derive(serde::Serialize)]
508#[allow(clippy::derive_partial_eq_without_eq)]
509#[derive(Clone, PartialEq, ::prost::Message)]
510pub struct ViewSchemaReq {}
511#[derive(serde::Serialize)]
512#[allow(clippy::derive_partial_eq_without_eq)]
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct ViewSchemaResp {
515    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
516    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
517}
518/// `View::dimensions`
519#[derive(serde::Serialize)]
520#[allow(clippy::derive_partial_eq_without_eq)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct ViewDimensionsReq {}
523#[derive(serde::Serialize)]
524#[derive(serde::Deserialize)]
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct ViewDimensionsResp {
528    #[prost(uint32, tag = "1")]
529    pub num_table_rows: u32,
530    #[prost(uint32, tag = "2")]
531    pub num_table_columns: u32,
532    #[prost(uint32, tag = "3")]
533    pub num_view_rows: u32,
534    #[prost(uint32, tag = "4")]
535    pub num_view_columns: u32,
536}
537/// `View::get_config`
538#[derive(serde::Serialize)]
539#[allow(clippy::derive_partial_eq_without_eq)]
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct ViewGetConfigReq {}
542#[derive(serde::Serialize)]
543#[allow(clippy::derive_partial_eq_without_eq)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct ViewGetConfigResp {
546    #[prost(message, optional, tag = "1")]
547    pub config: ::core::option::Option<ViewConfig>,
548}
549/// `Client::table`.
550#[derive(serde::Serialize)]
551#[allow(clippy::derive_partial_eq_without_eq)]
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct MakeTableReq {
554    #[prost(message, optional, tag = "1")]
555    pub data: ::core::option::Option<MakeTableData>,
556    #[prost(message, optional, tag = "2")]
557    pub options: ::core::option::Option<make_table_req::MakeTableOptions>,
558}
559/// Nested message and enum types in `MakeTableReq`.
560pub mod make_table_req {
561    #[derive(serde::Serialize)]
562    #[allow(clippy::derive_partial_eq_without_eq)]
563    #[derive(Clone, PartialEq, ::prost::Message)]
564    pub struct MakeTableOptions {
565        /// Back this Table's canonical data with the on-disk storage backend
566        /// (memory-mapped file on native; OPFS on WASM) instead of memory.
567        /// Orthogonal to `make_table_type`, so it is a standalone field.
568        #[prost(bool, optional, tag = "3")]
569        pub page_to_disk: ::core::option::Option<bool>,
570        #[prost(oneof = "make_table_options::MakeTableType", tags = "1, 2")]
571        pub make_table_type: ::core::option::Option<make_table_options::MakeTableType>,
572    }
573    /// Nested message and enum types in `MakeTableOptions`.
574    pub mod make_table_options {
575        #[derive(serde::Serialize)]
576        #[allow(clippy::derive_partial_eq_without_eq)]
577        #[derive(Clone, PartialEq, ::prost::Oneof)]
578        pub enum MakeTableType {
579            #[prost(string, tag = "1")]
580            MakeIndexTable(::prost::alloc::string::String),
581            #[prost(uint32, tag = "2")]
582            MakeLimitTable(u32),
583        }
584    }
585}
586#[derive(serde::Serialize)]
587#[allow(clippy::derive_partial_eq_without_eq)]
588#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct MakeTableResp {}
590/// `Client::join` — create a read-only table from a JOIN of two tables.
591#[derive(serde::Serialize)]
592#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct MakeJoinTableReq {
595    #[prost(string, tag = "1")]
596    pub left_table_id: ::prost::alloc::string::String,
597    #[prost(string, tag = "2")]
598    pub right_table_id: ::prost::alloc::string::String,
599    #[prost(string, tag = "3")]
600    pub on_column: ::prost::alloc::string::String,
601    #[prost(enumeration = "JoinType", tag = "4")]
602    pub join_type: i32,
603    #[prost(string, tag = "5")]
604    pub right_on_column: ::prost::alloc::string::String,
605}
606#[derive(serde::Serialize)]
607#[allow(clippy::derive_partial_eq_without_eq)]
608#[derive(Clone, PartialEq, ::prost::Message)]
609pub struct MakeJoinTableResp {}
610/// `Table::delete`
611#[derive(serde::Serialize)]
612#[allow(clippy::derive_partial_eq_without_eq)]
613#[derive(Clone, PartialEq, ::prost::Message)]
614pub struct TableDeleteReq {
615    #[prost(bool, tag = "1")]
616    pub is_immediate: bool,
617}
618#[derive(serde::Serialize)]
619#[allow(clippy::derive_partial_eq_without_eq)]
620#[derive(Clone, PartialEq, ::prost::Message)]
621pub struct TableDeleteResp {}
622/// `Table::on_delete`
623#[derive(serde::Serialize)]
624#[allow(clippy::derive_partial_eq_without_eq)]
625#[derive(Clone, PartialEq, ::prost::Message)]
626pub struct TableOnDeleteReq {}
627#[derive(serde::Serialize)]
628#[allow(clippy::derive_partial_eq_without_eq)]
629#[derive(Clone, PartialEq, ::prost::Message)]
630pub struct TableOnDeleteResp {}
631/// `Table::make_port`
632#[derive(serde::Serialize)]
633#[allow(clippy::derive_partial_eq_without_eq)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct TableMakePortReq {}
636#[derive(serde::Serialize)]
637#[allow(clippy::derive_partial_eq_without_eq)]
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct TableMakePortResp {
640    #[prost(uint32, tag = "1")]
641    pub port_id: u32,
642}
643/// `Table::remove_delete`
644#[derive(serde::Serialize)]
645#[allow(clippy::derive_partial_eq_without_eq)]
646#[derive(Clone, PartialEq, ::prost::Message)]
647pub struct TableRemoveDeleteReq {
648    #[prost(uint32, tag = "1")]
649    pub id: u32,
650}
651#[derive(serde::Serialize)]
652#[allow(clippy::derive_partial_eq_without_eq)]
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct TableRemoveDeleteResp {}
655/// `Table::update`
656#[derive(serde::Serialize)]
657#[allow(clippy::derive_partial_eq_without_eq)]
658#[derive(Clone, PartialEq, ::prost::Message)]
659pub struct TableUpdateReq {
660    #[prost(message, optional, tag = "1")]
661    pub data: ::core::option::Option<MakeTableData>,
662    #[prost(uint32, tag = "2")]
663    pub port_id: u32,
664}
665#[derive(serde::Serialize)]
666#[allow(clippy::derive_partial_eq_without_eq)]
667#[derive(Clone, PartialEq, ::prost::Message)]
668pub struct TableUpdateResp {}
669/// `Table::replace`
670#[derive(serde::Serialize)]
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct TableReplaceReq {
674    #[prost(message, optional, tag = "1")]
675    pub data: ::core::option::Option<MakeTableData>,
676}
677#[derive(serde::Serialize)]
678#[allow(clippy::derive_partial_eq_without_eq)]
679#[derive(Clone, PartialEq, ::prost::Message)]
680pub struct TableReplaceResp {}
681/// `Table::remove`
682#[derive(serde::Serialize)]
683#[allow(clippy::derive_partial_eq_without_eq)]
684#[derive(Clone, PartialEq, ::prost::Message)]
685pub struct TableRemoveReq {
686    #[prost(message, optional, tag = "1")]
687    pub data: ::core::option::Option<MakeTableData>,
688}
689#[derive(serde::Serialize)]
690#[allow(clippy::derive_partial_eq_without_eq)]
691#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct TableRemoveResp {}
693#[derive(serde::Serialize)]
694#[allow(clippy::derive_partial_eq_without_eq)]
695#[derive(Clone, PartialEq, ::prost::Message)]
696pub struct ViewOnUpdateReq {
697    #[prost(enumeration = "view_on_update_req::Mode", optional, tag = "1")]
698    pub mode: ::core::option::Option<i32>,
699}
700/// Nested message and enum types in `ViewOnUpdateReq`.
701pub mod view_on_update_req {
702    #[derive(serde::Serialize)]
703    #[derive(
704        Clone,
705        Copy,
706        Debug,
707        PartialEq,
708        Eq,
709        Hash,
710        PartialOrd,
711        Ord,
712        ::prost::Enumeration
713    )]
714    #[repr(i32)]
715    pub enum Mode {
716        Row = 0,
717    }
718    impl Mode {
719        /// String value of the enum field names used in the ProtoBuf definition.
720        ///
721        /// The values are not transformed in any way and thus are considered stable
722        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
723        pub fn as_str_name(&self) -> &'static str {
724            match self {
725                Mode::Row => "ROW",
726            }
727        }
728        /// Creates an enum from field names used in the ProtoBuf definition.
729        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
730            match value {
731                "ROW" => Some(Self::Row),
732                _ => None,
733            }
734        }
735    }
736}
737#[derive(ts_rs::TS)]
738#[derive(serde::Serialize)]
739#[allow(clippy::derive_partial_eq_without_eq)]
740#[derive(Clone, PartialEq, ::prost::Message)]
741pub struct ViewOnUpdateResp {
742    #[prost(bytes = "vec", optional, tag = "1")]
743    #[ts(as = "Vec::<u8>")]
744    #[serde(with = "serde_bytes")]
745    pub delta: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
746    #[prost(uint32, tag = "2")]
747    pub port_id: u32,
748}
749#[derive(serde::Serialize)]
750#[allow(clippy::derive_partial_eq_without_eq)]
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct ViewOnDeleteReq {}
753#[derive(serde::Serialize)]
754#[allow(clippy::derive_partial_eq_without_eq)]
755#[derive(Clone, PartialEq, ::prost::Message)]
756pub struct ViewOnDeleteResp {}
757#[derive(serde::Serialize)]
758#[allow(clippy::derive_partial_eq_without_eq)]
759#[derive(Clone, PartialEq, ::prost::Message)]
760pub struct ViewRemoveDeleteReq {
761    #[prost(uint32, tag = "1")]
762    pub id: u32,
763}
764#[derive(serde::Serialize)]
765#[allow(clippy::derive_partial_eq_without_eq)]
766#[derive(Clone, PartialEq, ::prost::Message)]
767pub struct ViewRemoveDeleteResp {}
768#[derive(serde::Serialize)]
769#[allow(clippy::derive_partial_eq_without_eq)]
770#[derive(Clone, PartialEq, ::prost::Message)]
771pub struct ViewToColumnsStringReq {
772    #[prost(message, optional, tag = "1")]
773    pub viewport: ::core::option::Option<ViewPort>,
774    #[prost(bool, optional, tag = "2")]
775    pub id: ::core::option::Option<bool>,
776    #[prost(bool, optional, tag = "3")]
777    pub index: ::core::option::Option<bool>,
778    #[prost(bool, optional, tag = "4")]
779    pub formatted: ::core::option::Option<bool>,
780}
781#[derive(serde::Serialize)]
782#[allow(clippy::derive_partial_eq_without_eq)]
783#[derive(Clone, PartialEq, ::prost::Message)]
784pub struct ViewToColumnsStringResp {
785    #[prost(string, tag = "1")]
786    pub json_string: ::prost::alloc::string::String,
787}
788#[derive(serde::Serialize)]
789#[allow(clippy::derive_partial_eq_without_eq)]
790#[derive(Clone, PartialEq, ::prost::Message)]
791pub struct ViewToRowsStringReq {
792    #[prost(message, optional, tag = "1")]
793    pub viewport: ::core::option::Option<ViewPort>,
794    #[prost(bool, optional, tag = "2")]
795    pub id: ::core::option::Option<bool>,
796    #[prost(bool, optional, tag = "3")]
797    pub index: ::core::option::Option<bool>,
798    #[prost(bool, optional, tag = "4")]
799    pub formatted: ::core::option::Option<bool>,
800}
801#[derive(serde::Serialize)]
802#[allow(clippy::derive_partial_eq_without_eq)]
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct ViewToRowsStringResp {
805    #[prost(string, tag = "1")]
806    pub json_string: ::prost::alloc::string::String,
807}
808#[derive(serde::Serialize)]
809#[allow(clippy::derive_partial_eq_without_eq)]
810#[derive(Clone, PartialEq, ::prost::Message)]
811pub struct ViewToNdjsonStringReq {
812    #[prost(message, optional, tag = "1")]
813    pub viewport: ::core::option::Option<ViewPort>,
814    #[prost(bool, optional, tag = "2")]
815    pub id: ::core::option::Option<bool>,
816    #[prost(bool, optional, tag = "3")]
817    pub index: ::core::option::Option<bool>,
818    #[prost(bool, optional, tag = "4")]
819    pub formatted: ::core::option::Option<bool>,
820}
821#[derive(serde::Serialize)]
822#[allow(clippy::derive_partial_eq_without_eq)]
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct ViewToNdjsonStringResp {
825    #[prost(string, tag = "1")]
826    pub ndjson_string: ::prost::alloc::string::String,
827}
828#[derive(serde::Serialize)]
829#[allow(clippy::derive_partial_eq_without_eq)]
830#[derive(Clone, PartialEq, ::prost::Message)]
831pub struct ViewToArrowReq {
832    #[prost(message, optional, tag = "1")]
833    pub viewport: ::core::option::Option<ViewPort>,
834    #[prost(string, optional, tag = "2")]
835    pub compression: ::core::option::Option<::prost::alloc::string::String>,
836}
837#[derive(serde::Serialize)]
838#[allow(clippy::derive_partial_eq_without_eq)]
839#[derive(Clone, PartialEq, ::prost::Message)]
840pub struct ViewToArrowResp {
841    #[prost(bytes = "vec", tag = "1")]
842    #[serde(skip)]
843    pub arrow: ::prost::alloc::vec::Vec<u8>,
844}
845#[derive(serde::Serialize)]
846#[allow(clippy::derive_partial_eq_without_eq)]
847#[derive(Clone, PartialEq, ::prost::Message)]
848pub struct ViewColumnPathsReq {
849    #[prost(uint32, optional, tag = "1")]
850    pub start_col: ::core::option::Option<u32>,
851    #[prost(uint32, optional, tag = "2")]
852    pub end_col: ::core::option::Option<u32>,
853}
854#[derive(serde::Serialize)]
855#[allow(clippy::derive_partial_eq_without_eq)]
856#[derive(Clone, PartialEq, ::prost::Message)]
857pub struct ViewColumnPathsResp {
858    /// repeated ColumnPath paths = 1;
859    #[prost(string, repeated, tag = "1")]
860    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
861}
862#[derive(serde::Serialize)]
863#[allow(clippy::derive_partial_eq_without_eq)]
864#[derive(Clone, PartialEq, ::prost::Message)]
865pub struct ViewDeleteReq {}
866#[derive(serde::Serialize)]
867#[allow(clippy::derive_partial_eq_without_eq)]
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct ViewDeleteResp {}
870#[derive(serde::Serialize)]
871#[allow(clippy::derive_partial_eq_without_eq)]
872#[derive(Clone, PartialEq, ::prost::Message)]
873pub struct ViewGetMinMaxReq {
874    #[prost(string, tag = "1")]
875    pub column_name: ::prost::alloc::string::String,
876}
877#[derive(serde::Serialize)]
878#[allow(clippy::derive_partial_eq_without_eq)]
879#[derive(Clone, PartialEq, ::prost::Message)]
880pub struct ViewGetMinMaxResp {
881    #[prost(message, optional, tag = "1")]
882    pub min: ::core::option::Option<Scalar>,
883    #[prost(message, optional, tag = "2")]
884    pub max: ::core::option::Option<Scalar>,
885}
886#[derive(serde::Serialize)]
887#[allow(clippy::derive_partial_eq_without_eq)]
888#[derive(Clone, PartialEq, ::prost::Message)]
889pub struct ViewExpressionSchemaReq {}
890#[derive(serde::Serialize)]
891#[allow(clippy::derive_partial_eq_without_eq)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct ViewExpressionSchemaResp {
894    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
895    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
896}
897#[derive(serde::Serialize)]
898#[allow(clippy::derive_partial_eq_without_eq)]
899#[derive(Clone, PartialEq, ::prost::Message)]
900pub struct ViewToCsvReq {
901    #[prost(message, optional, tag = "1")]
902    pub viewport: ::core::option::Option<ViewPort>,
903}
904#[derive(serde::Serialize)]
905#[allow(clippy::derive_partial_eq_without_eq)]
906#[derive(Clone, PartialEq, ::prost::Message)]
907pub struct ViewToCsvResp {
908    #[prost(string, tag = "1")]
909    pub csv: ::prost::alloc::string::String,
910}
911#[derive(serde::Serialize)]
912#[allow(clippy::derive_partial_eq_without_eq)]
913#[derive(Clone, PartialEq, ::prost::Message)]
914pub struct ViewRemoveOnUpdateReq {
915    #[prost(uint32, tag = "1")]
916    pub id: u32,
917}
918#[derive(serde::Serialize)]
919#[allow(clippy::derive_partial_eq_without_eq)]
920#[derive(Clone, PartialEq, ::prost::Message)]
921pub struct ViewRemoveOnUpdateResp {}
922#[derive(serde::Serialize)]
923#[allow(clippy::derive_partial_eq_without_eq)]
924#[derive(Clone, PartialEq, ::prost::Message)]
925pub struct ViewCollapseReq {
926    #[prost(uint32, tag = "1")]
927    pub row_index: u32,
928}
929#[derive(serde::Serialize)]
930#[allow(clippy::derive_partial_eq_without_eq)]
931#[derive(Clone, PartialEq, ::prost::Message)]
932pub struct ViewCollapseResp {
933    #[prost(uint32, tag = "1")]
934    pub num_changed: u32,
935}
936#[derive(serde::Serialize)]
937#[allow(clippy::derive_partial_eq_without_eq)]
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct ViewExpandReq {
940    #[prost(uint32, tag = "1")]
941    pub row_index: u32,
942}
943#[derive(serde::Serialize)]
944#[allow(clippy::derive_partial_eq_without_eq)]
945#[derive(Clone, PartialEq, ::prost::Message)]
946pub struct ViewExpandResp {
947    #[prost(uint32, tag = "1")]
948    pub num_changed: u32,
949}
950/// `View::set_depth`
951#[derive(serde::Serialize)]
952#[allow(clippy::derive_partial_eq_without_eq)]
953#[derive(Clone, PartialEq, ::prost::Message)]
954pub struct ViewSetDepthReq {
955    #[prost(uint32, tag = "1")]
956    pub depth: u32,
957}
958#[derive(serde::Serialize)]
959#[allow(clippy::derive_partial_eq_without_eq)]
960#[derive(Clone, PartialEq, ::prost::Message)]
961pub struct ViewSetDepthResp {}
962#[derive(serde::Serialize)]
963#[allow(clippy::derive_partial_eq_without_eq)]
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct ServerSystemInfoReq {}
966#[derive(serde::Serialize)]
967#[allow(clippy::derive_partial_eq_without_eq)]
968#[derive(Clone, PartialEq, ::prost::Message)]
969pub struct ServerSystemInfoResp {
970    #[prost(uint64, tag = "1")]
971    pub heap_size: u64,
972    #[prost(uint64, tag = "2")]
973    pub used_size: u64,
974    #[prost(uint32, tag = "3")]
975    pub cpu_time: u32,
976    #[prost(uint32, tag = "4")]
977    pub cpu_time_epoch: u32,
978}
979#[derive(serde::Serialize)]
980#[allow(clippy::derive_partial_eq_without_eq)]
981#[derive(Clone, PartialEq, ::prost::Message)]
982pub struct WindowSpec {
983    #[prost(string, tag = "2")]
984    pub source: ::prost::alloc::string::String,
985    #[prost(enumeration = "WindowAggregate", tag = "3")]
986    pub op: i32,
987    #[prost(string, repeated, tag = "4")]
988    pub partition_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
989    #[prost(message, optional, tag = "5")]
990    pub order_by: ::core::option::Option<window_spec::Order>,
991    #[prost(uint32, optional, tag = "9")]
992    pub offset: ::core::option::Option<u32>,
993    #[prost(double, optional, tag = "10")]
994    pub alpha: ::core::option::Option<f64>,
995    #[prost(oneof = "window_spec::Frame", tags = "6, 7, 8")]
996    pub frame: ::core::option::Option<window_spec::Frame>,
997}
998/// Nested message and enum types in `WindowSpec`.
999pub mod window_spec {
1000    #[derive(serde::Serialize)]
1001    #[allow(clippy::derive_partial_eq_without_eq)]
1002    #[derive(Clone, PartialEq, ::prost::Message)]
1003    pub struct Order {
1004        #[prost(string, tag = "1")]
1005        pub column: ::prost::alloc::string::String,
1006        #[prost(bool, tag = "2")]
1007        pub desc: bool,
1008    }
1009    #[derive(serde::Serialize)]
1010    #[allow(clippy::derive_partial_eq_without_eq)]
1011    #[derive(Clone, PartialEq, ::prost::Oneof)]
1012    pub enum Frame {
1013        #[prost(uint32, tag = "6")]
1014        Rows(u32),
1015        #[prost(double, tag = "7")]
1016        Range(f64),
1017        #[prost(enumeration = "::prost_types::NullValue", tag = "8")]
1018        Cumulative(i32),
1019    }
1020}
1021#[derive(serde::Serialize)]
1022#[allow(clippy::derive_partial_eq_without_eq)]
1023#[derive(Clone, PartialEq, ::prost::Message)]
1024pub struct ViewConfig {
1025    #[prost(string, repeated, tag = "1")]
1026    pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1027    #[prost(string, repeated, tag = "2")]
1028    pub split_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1029    #[prost(message, optional, tag = "3")]
1030    pub columns: ::core::option::Option<ColumnsUpdate>,
1031    #[prost(message, repeated, tag = "4")]
1032    pub filter: ::prost::alloc::vec::Vec<view_config::Filter>,
1033    #[prost(message, repeated, tag = "5")]
1034    pub sort: ::prost::alloc::vec::Vec<view_config::Sort>,
1035    #[prost(map = "string, string", tag = "6")]
1036    pub expressions: ::std::collections::HashMap<
1037        ::prost::alloc::string::String,
1038        ::prost::alloc::string::String,
1039    >,
1040    #[prost(map = "string, message", tag = "7")]
1041    pub aggregates: ::std::collections::HashMap<
1042        ::prost::alloc::string::String,
1043        view_config::AggList,
1044    >,
1045    #[prost(enumeration = "view_config::FilterReducer", tag = "8")]
1046    pub filter_op: i32,
1047    #[prost(uint32, optional, tag = "9")]
1048    pub group_by_depth: ::core::option::Option<u32>,
1049    #[prost(enumeration = "GroupRollupMode", optional, tag = "10")]
1050    pub group_rollup_mode: ::core::option::Option<i32>,
1051    #[prost(map = "string, message", tag = "11")]
1052    pub windows: ::std::collections::HashMap<::prost::alloc::string::String, WindowSpec>,
1053}
1054/// Nested message and enum types in `ViewConfig`.
1055pub mod view_config {
1056    #[derive(serde::Serialize)]
1057    #[allow(clippy::derive_partial_eq_without_eq)]
1058    #[derive(Clone, PartialEq, ::prost::Message)]
1059    pub struct AggList {
1060        #[prost(string, repeated, tag = "1")]
1061        pub aggregations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1062    }
1063    #[derive(serde::Serialize)]
1064    #[allow(clippy::derive_partial_eq_without_eq)]
1065    #[derive(Clone, PartialEq, ::prost::Message)]
1066    pub struct Sort {
1067        #[prost(string, tag = "1")]
1068        pub column: ::prost::alloc::string::String,
1069        #[prost(enumeration = "super::SortOp", tag = "2")]
1070        pub op: i32,
1071    }
1072    #[derive(serde::Serialize)]
1073    #[allow(clippy::derive_partial_eq_without_eq)]
1074    #[derive(Clone, PartialEq, ::prost::Message)]
1075    pub struct Filter {
1076        #[prost(string, tag = "1")]
1077        pub column: ::prost::alloc::string::String,
1078        #[prost(string, tag = "2")]
1079        pub op: ::prost::alloc::string::String,
1080        #[prost(message, repeated, tag = "3")]
1081        pub value: ::prost::alloc::vec::Vec<super::Scalar>,
1082    }
1083    #[derive(serde::Serialize)]
1084    #[derive(
1085        Clone,
1086        Copy,
1087        Debug,
1088        PartialEq,
1089        Eq,
1090        Hash,
1091        PartialOrd,
1092        Ord,
1093        ::prost::Enumeration
1094    )]
1095    #[repr(i32)]
1096    pub enum FilterReducer {
1097        And = 0,
1098        Or = 1,
1099    }
1100    impl FilterReducer {
1101        /// String value of the enum field names used in the ProtoBuf definition.
1102        ///
1103        /// The values are not transformed in any way and thus are considered stable
1104        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1105        pub fn as_str_name(&self) -> &'static str {
1106            match self {
1107                FilterReducer::And => "AND",
1108                FilterReducer::Or => "OR",
1109            }
1110        }
1111        /// Creates an enum from field names used in the ProtoBuf definition.
1112        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1113            match value {
1114                "AND" => Some(Self::And),
1115                "OR" => Some(Self::Or),
1116                _ => None,
1117            }
1118        }
1119    }
1120}
1121#[derive(serde::Serialize)]
1122#[allow(clippy::derive_partial_eq_without_eq)]
1123#[derive(Clone, PartialEq, ::prost::Message)]
1124pub struct ColumnsUpdate {
1125    #[prost(oneof = "columns_update::OptColumns", tags = "1, 2")]
1126    pub opt_columns: ::core::option::Option<columns_update::OptColumns>,
1127}
1128/// Nested message and enum types in `ColumnsUpdate`.
1129pub mod columns_update {
1130    #[derive(serde::Serialize)]
1131    #[allow(clippy::derive_partial_eq_without_eq)]
1132    #[derive(Clone, PartialEq, ::prost::Message)]
1133    pub struct Columns {
1134        #[prost(string, repeated, tag = "1")]
1135        pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1136    }
1137    #[derive(serde::Serialize)]
1138    #[allow(clippy::derive_partial_eq_without_eq)]
1139    #[derive(Clone, PartialEq, ::prost::Oneof)]
1140    pub enum OptColumns {
1141        #[prost(enumeration = "::prost_types::NullValue", tag = "1")]
1142        DefaultColumns(i32),
1143        #[prost(message, tag = "2")]
1144        Columns(Columns),
1145    }
1146}
1147#[derive(serde::Serialize)]
1148#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1149#[repr(i32)]
1150pub enum StatusCode {
1151    ServerError = 0,
1152    ViewNotFound = 1,
1153    TransportError = 2,
1154}
1155impl StatusCode {
1156    /// String value of the enum field names used in the ProtoBuf definition.
1157    ///
1158    /// The values are not transformed in any way and thus are considered stable
1159    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1160    pub fn as_str_name(&self) -> &'static str {
1161        match self {
1162            StatusCode::ServerError => "SERVER_ERROR",
1163            StatusCode::ViewNotFound => "VIEW_NOT_FOUND",
1164            StatusCode::TransportError => "TRANSPORT_ERROR",
1165        }
1166    }
1167    /// Creates an enum from field names used in the ProtoBuf definition.
1168    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1169        match value {
1170            "SERVER_ERROR" => Some(Self::ServerError),
1171            "VIEW_NOT_FOUND" => Some(Self::ViewNotFound),
1172            "TRANSPORT_ERROR" => Some(Self::TransportError),
1173            _ => None,
1174        }
1175    }
1176}
1177/// View types
1178#[derive(ts_rs::TS)]
1179#[derive(serde::Serialize)]
1180#[derive(serde::Deserialize)]
1181#[serde(rename_all = "snake_case")]
1182#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1183#[repr(i32)]
1184pub enum ColumnType {
1185    String = 0,
1186    Date = 1,
1187    Datetime = 2,
1188    Integer = 3,
1189    Float = 4,
1190    Boolean = 5,
1191}
1192impl ColumnType {
1193    /// String value of the enum field names used in the ProtoBuf definition.
1194    ///
1195    /// The values are not transformed in any way and thus are considered stable
1196    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1197    pub fn as_str_name(&self) -> &'static str {
1198        match self {
1199            ColumnType::String => "STRING",
1200            ColumnType::Date => "DATE",
1201            ColumnType::Datetime => "DATETIME",
1202            ColumnType::Integer => "INTEGER",
1203            ColumnType::Float => "FLOAT",
1204            ColumnType::Boolean => "BOOLEAN",
1205        }
1206    }
1207    /// Creates an enum from field names used in the ProtoBuf definition.
1208    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1209        match value {
1210            "STRING" => Some(Self::String),
1211            "DATE" => Some(Self::Date),
1212            "DATETIME" => Some(Self::Datetime),
1213            "INTEGER" => Some(Self::Integer),
1214            "FLOAT" => Some(Self::Float),
1215            "BOOLEAN" => Some(Self::Boolean),
1216            _ => None,
1217        }
1218    }
1219}
1220/// TODO This belongs in features
1221#[derive(serde::Serialize)]
1222#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1223#[repr(i32)]
1224pub enum SortOp {
1225    SortNone = 0,
1226    SortAsc = 1,
1227    SortDesc = 2,
1228    SortColAsc = 3,
1229    SortColDesc = 4,
1230    SortAscAbs = 5,
1231    SortDescAbs = 6,
1232    SortColAscAbs = 7,
1233    SortColDescAbs = 8,
1234}
1235impl SortOp {
1236    /// String value of the enum field names used in the ProtoBuf definition.
1237    ///
1238    /// The values are not transformed in any way and thus are considered stable
1239    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1240    pub fn as_str_name(&self) -> &'static str {
1241        match self {
1242            SortOp::SortNone => "SORT_NONE",
1243            SortOp::SortAsc => "SORT_ASC",
1244            SortOp::SortDesc => "SORT_DESC",
1245            SortOp::SortColAsc => "SORT_COL_ASC",
1246            SortOp::SortColDesc => "SORT_COL_DESC",
1247            SortOp::SortAscAbs => "SORT_ASC_ABS",
1248            SortOp::SortDescAbs => "SORT_DESC_ABS",
1249            SortOp::SortColAscAbs => "SORT_COL_ASC_ABS",
1250            SortOp::SortColDescAbs => "SORT_COL_DESC_ABS",
1251        }
1252    }
1253    /// Creates an enum from field names used in the ProtoBuf definition.
1254    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1255        match value {
1256            "SORT_NONE" => Some(Self::SortNone),
1257            "SORT_ASC" => Some(Self::SortAsc),
1258            "SORT_DESC" => Some(Self::SortDesc),
1259            "SORT_COL_ASC" => Some(Self::SortColAsc),
1260            "SORT_COL_DESC" => Some(Self::SortColDesc),
1261            "SORT_ASC_ABS" => Some(Self::SortAscAbs),
1262            "SORT_DESC_ABS" => Some(Self::SortDescAbs),
1263            "SORT_COL_ASC_ABS" => Some(Self::SortColAscAbs),
1264            "SORT_COL_DESC_ABS" => Some(Self::SortColDescAbs),
1265            _ => None,
1266        }
1267    }
1268}
1269#[derive(serde::Serialize)]
1270#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1271#[repr(i32)]
1272pub enum GroupRollupMode {
1273    Rollup = 0,
1274    Flat = 1,
1275    Total = 2,
1276}
1277impl GroupRollupMode {
1278    /// String value of the enum field names used in the ProtoBuf definition.
1279    ///
1280    /// The values are not transformed in any way and thus are considered stable
1281    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1282    pub fn as_str_name(&self) -> &'static str {
1283        match self {
1284            GroupRollupMode::Rollup => "ROLLUP",
1285            GroupRollupMode::Flat => "FLAT",
1286            GroupRollupMode::Total => "TOTAL",
1287        }
1288    }
1289    /// Creates an enum from field names used in the ProtoBuf definition.
1290    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1291        match value {
1292            "ROLLUP" => Some(Self::Rollup),
1293            "FLAT" => Some(Self::Flat),
1294            "TOTAL" => Some(Self::Total),
1295            _ => None,
1296        }
1297    }
1298}
1299#[derive(serde::Deserialize, ts_rs::TS)]
1300#[serde(rename_all = "snake_case")]
1301#[derive(serde::Serialize)]
1302#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1303#[repr(i32)]
1304pub enum JoinType {
1305    Inner = 0,
1306    Left = 1,
1307    Outer = 2,
1308}
1309impl JoinType {
1310    /// String value of the enum field names used in the ProtoBuf definition.
1311    ///
1312    /// The values are not transformed in any way and thus are considered stable
1313    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1314    pub fn as_str_name(&self) -> &'static str {
1315        match self {
1316            JoinType::Inner => "INNER",
1317            JoinType::Left => "LEFT",
1318            JoinType::Outer => "OUTER",
1319        }
1320    }
1321    /// Creates an enum from field names used in the ProtoBuf definition.
1322    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1323        match value {
1324            "INNER" => Some(Self::Inner),
1325            "LEFT" => Some(Self::Left),
1326            "OUTER" => Some(Self::Outer),
1327            _ => None,
1328        }
1329    }
1330}
1331#[derive(serde::Serialize)]
1332#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1333#[repr(i32)]
1334pub enum WindowAggregate {
1335    Sum = 0,
1336    Avg = 1,
1337    Count = 2,
1338    Min = 3,
1339    Max = 4,
1340    Stddev = 5,
1341    Var = 6,
1342    First = 7,
1343    Last = 8,
1344    Lag = 9,
1345    Lead = 10,
1346    Diff = 11,
1347    Rate = 12,
1348    Ema = 13,
1349}
1350impl WindowAggregate {
1351    /// String value of the enum field names used in the ProtoBuf definition.
1352    ///
1353    /// The values are not transformed in any way and thus are considered stable
1354    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1355    pub fn as_str_name(&self) -> &'static str {
1356        match self {
1357            WindowAggregate::Sum => "WINDOW_AGGREGATE_SUM",
1358            WindowAggregate::Avg => "WINDOW_AGGREGATE_AVG",
1359            WindowAggregate::Count => "WINDOW_AGGREGATE_COUNT",
1360            WindowAggregate::Min => "WINDOW_AGGREGATE_MIN",
1361            WindowAggregate::Max => "WINDOW_AGGREGATE_MAX",
1362            WindowAggregate::Stddev => "WINDOW_AGGREGATE_STDDEV",
1363            WindowAggregate::Var => "WINDOW_AGGREGATE_VAR",
1364            WindowAggregate::First => "WINDOW_AGGREGATE_FIRST",
1365            WindowAggregate::Last => "WINDOW_AGGREGATE_LAST",
1366            WindowAggregate::Lag => "WINDOW_AGGREGATE_LAG",
1367            WindowAggregate::Lead => "WINDOW_AGGREGATE_LEAD",
1368            WindowAggregate::Diff => "WINDOW_AGGREGATE_DIFF",
1369            WindowAggregate::Rate => "WINDOW_AGGREGATE_RATE",
1370            WindowAggregate::Ema => "WINDOW_AGGREGATE_EMA",
1371        }
1372    }
1373    /// Creates an enum from field names used in the ProtoBuf definition.
1374    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1375        match value {
1376            "WINDOW_AGGREGATE_SUM" => Some(Self::Sum),
1377            "WINDOW_AGGREGATE_AVG" => Some(Self::Avg),
1378            "WINDOW_AGGREGATE_COUNT" => Some(Self::Count),
1379            "WINDOW_AGGREGATE_MIN" => Some(Self::Min),
1380            "WINDOW_AGGREGATE_MAX" => Some(Self::Max),
1381            "WINDOW_AGGREGATE_STDDEV" => Some(Self::Stddev),
1382            "WINDOW_AGGREGATE_VAR" => Some(Self::Var),
1383            "WINDOW_AGGREGATE_FIRST" => Some(Self::First),
1384            "WINDOW_AGGREGATE_LAST" => Some(Self::Last),
1385            "WINDOW_AGGREGATE_LAG" => Some(Self::Lag),
1386            "WINDOW_AGGREGATE_LEAD" => Some(Self::Lead),
1387            "WINDOW_AGGREGATE_DIFF" => Some(Self::Diff),
1388            "WINDOW_AGGREGATE_RATE" => Some(Self::Rate),
1389            "WINDOW_AGGREGATE_EMA" => Some(Self::Ema),
1390            _ => None,
1391        }
1392    }
1393}