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}
340/// Nested message and enum types in `GetFeaturesResp`.
341pub mod get_features_resp {
342    #[derive(serde::Serialize)]
343    #[allow(clippy::derive_partial_eq_without_eq)]
344    #[derive(Clone, PartialEq, ::prost::Message)]
345    pub struct ColumnTypeOptions {
346        #[prost(string, repeated, tag = "1")]
347        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
348    }
349    #[derive(serde::Serialize)]
350    #[allow(clippy::derive_partial_eq_without_eq)]
351    #[derive(Clone, PartialEq, ::prost::Message)]
352    pub struct AggregateOptions {
353        #[prost(message, repeated, tag = "1")]
354        pub aggregates: ::prost::alloc::vec::Vec<AggregateArgs>,
355    }
356    #[derive(serde::Serialize)]
357    #[allow(clippy::derive_partial_eq_without_eq)]
358    #[derive(Clone, PartialEq, ::prost::Message)]
359    pub struct AggregateArgs {
360        #[prost(string, tag = "1")]
361        pub name: ::prost::alloc::string::String,
362        #[prost(enumeration = "super::ColumnType", repeated, tag = "2")]
363        pub args: ::prost::alloc::vec::Vec<i32>,
364    }
365}
366/// `Client::get_hosted_tables`
367#[derive(serde::Serialize)]
368#[allow(clippy::derive_partial_eq_without_eq)]
369#[derive(Clone, PartialEq, ::prost::Message)]
370pub struct GetHostedTablesReq {
371    #[prost(bool, tag = "1")]
372    pub subscribe: bool,
373}
374#[derive(serde::Serialize)]
375#[allow(clippy::derive_partial_eq_without_eq)]
376#[derive(Clone, PartialEq, ::prost::Message)]
377pub struct GetHostedTablesResp {
378    #[prost(message, repeated, tag = "1")]
379    pub table_infos: ::prost::alloc::vec::Vec<HostedTable>,
380}
381#[derive(serde::Serialize)]
382#[allow(clippy::derive_partial_eq_without_eq)]
383#[derive(Clone, PartialEq, ::prost::Message)]
384pub struct HostedTable {
385    #[prost(string, tag = "1")]
386    pub entity_id: ::prost::alloc::string::String,
387    #[prost(string, optional, tag = "2")]
388    pub index: ::core::option::Option<::prost::alloc::string::String>,
389    #[prost(uint32, optional, tag = "3")]
390    pub limit: ::core::option::Option<u32>,
391}
392#[derive(serde::Serialize)]
393#[allow(clippy::derive_partial_eq_without_eq)]
394#[derive(Clone, PartialEq, ::prost::Message)]
395pub struct RemoveHostedTablesUpdateReq {
396    #[prost(uint32, tag = "1")]
397    pub id: u32,
398}
399#[derive(serde::Serialize)]
400#[allow(clippy::derive_partial_eq_without_eq)]
401#[derive(Clone, PartialEq, ::prost::Message)]
402pub struct RemoveHostedTablesUpdateResp {}
403/// `Table::size`
404#[derive(serde::Serialize)]
405#[allow(clippy::derive_partial_eq_without_eq)]
406#[derive(Clone, PartialEq, ::prost::Message)]
407pub struct TableSizeReq {}
408#[derive(serde::Serialize)]
409#[allow(clippy::derive_partial_eq_without_eq)]
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct TableSizeResp {
412    #[prost(uint32, tag = "2")]
413    pub size: u32,
414}
415/// `Table::schema`
416#[derive(serde::Serialize)]
417#[allow(clippy::derive_partial_eq_without_eq)]
418#[derive(Clone, PartialEq, ::prost::Message)]
419pub struct TableSchemaReq {}
420#[derive(serde::Serialize)]
421#[allow(clippy::derive_partial_eq_without_eq)]
422#[derive(Clone, PartialEq, ::prost::Message)]
423pub struct TableSchemaResp {
424    #[prost(message, optional, tag = "1")]
425    pub schema: ::core::option::Option<Schema>,
426}
427/// `Table::validate_expressions`
428/// TODO: This should be just `validate()`
429#[derive(serde::Serialize)]
430#[allow(clippy::derive_partial_eq_without_eq)]
431#[derive(Clone, PartialEq, ::prost::Message)]
432pub struct TableValidateExprReq {
433    #[prost(map = "string, string", tag = "1")]
434    pub column_to_expr: ::std::collections::HashMap<
435        ::prost::alloc::string::String,
436        ::prost::alloc::string::String,
437    >,
438}
439#[derive(serde::Serialize)]
440#[derive(serde::Deserialize)]
441#[allow(clippy::derive_partial_eq_without_eq)]
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct TableValidateExprResp {
444    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
445    pub expression_schema: ::std::collections::HashMap<
446        ::prost::alloc::string::String,
447        i32,
448    >,
449    #[prost(map = "string, message", tag = "2")]
450    pub errors: ::std::collections::HashMap<
451        ::prost::alloc::string::String,
452        table_validate_expr_resp::ExprValidationError,
453    >,
454    #[prost(map = "string, string", tag = "3")]
455    pub expression_alias: ::std::collections::HashMap<
456        ::prost::alloc::string::String,
457        ::prost::alloc::string::String,
458    >,
459}
460/// Nested message and enum types in `TableValidateExprResp`.
461pub mod table_validate_expr_resp {
462    #[derive(serde::Serialize)]
463    #[derive(serde::Deserialize)]
464    #[allow(clippy::derive_partial_eq_without_eq)]
465    #[derive(Clone, PartialEq, ::prost::Message)]
466    pub struct ExprValidationError {
467        #[prost(string, tag = "1")]
468        pub error_message: ::prost::alloc::string::String,
469        #[prost(uint32, tag = "2")]
470        pub line: u32,
471        #[prost(uint32, tag = "3")]
472        pub column: u32,
473    }
474}
475/// `Table::view`
476#[derive(serde::Serialize)]
477#[allow(clippy::derive_partial_eq_without_eq)]
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct TableMakeViewReq {
480    #[prost(string, tag = "1")]
481    pub view_id: ::prost::alloc::string::String,
482    #[prost(message, optional, tag = "2")]
483    pub config: ::core::option::Option<ViewConfig>,
484}
485#[derive(serde::Serialize)]
486#[allow(clippy::derive_partial_eq_without_eq)]
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct TableMakeViewResp {
489    #[prost(string, tag = "1")]
490    pub view_id: ::prost::alloc::string::String,
491}
492/// `View::schema`
493#[derive(serde::Serialize)]
494#[allow(clippy::derive_partial_eq_without_eq)]
495#[derive(Clone, PartialEq, ::prost::Message)]
496pub struct ViewSchemaReq {}
497#[derive(serde::Serialize)]
498#[allow(clippy::derive_partial_eq_without_eq)]
499#[derive(Clone, PartialEq, ::prost::Message)]
500pub struct ViewSchemaResp {
501    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
502    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
503}
504/// `View::dimensions`
505#[derive(serde::Serialize)]
506#[allow(clippy::derive_partial_eq_without_eq)]
507#[derive(Clone, PartialEq, ::prost::Message)]
508pub struct ViewDimensionsReq {}
509#[derive(serde::Serialize)]
510#[derive(serde::Deserialize)]
511#[allow(clippy::derive_partial_eq_without_eq)]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct ViewDimensionsResp {
514    #[prost(uint32, tag = "1")]
515    pub num_table_rows: u32,
516    #[prost(uint32, tag = "2")]
517    pub num_table_columns: u32,
518    #[prost(uint32, tag = "3")]
519    pub num_view_rows: u32,
520    #[prost(uint32, tag = "4")]
521    pub num_view_columns: u32,
522}
523/// `View::get_config`
524#[derive(serde::Serialize)]
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct ViewGetConfigReq {}
528#[derive(serde::Serialize)]
529#[allow(clippy::derive_partial_eq_without_eq)]
530#[derive(Clone, PartialEq, ::prost::Message)]
531pub struct ViewGetConfigResp {
532    #[prost(message, optional, tag = "1")]
533    pub config: ::core::option::Option<ViewConfig>,
534}
535/// `Client::table`.
536#[derive(serde::Serialize)]
537#[allow(clippy::derive_partial_eq_without_eq)]
538#[derive(Clone, PartialEq, ::prost::Message)]
539pub struct MakeTableReq {
540    #[prost(message, optional, tag = "1")]
541    pub data: ::core::option::Option<MakeTableData>,
542    #[prost(message, optional, tag = "2")]
543    pub options: ::core::option::Option<make_table_req::MakeTableOptions>,
544}
545/// Nested message and enum types in `MakeTableReq`.
546pub mod make_table_req {
547    #[derive(serde::Serialize)]
548    #[allow(clippy::derive_partial_eq_without_eq)]
549    #[derive(Clone, PartialEq, ::prost::Message)]
550    pub struct MakeTableOptions {
551        #[prost(oneof = "make_table_options::MakeTableType", tags = "1, 2")]
552        pub make_table_type: ::core::option::Option<make_table_options::MakeTableType>,
553    }
554    /// Nested message and enum types in `MakeTableOptions`.
555    pub mod make_table_options {
556        #[derive(serde::Serialize)]
557        #[allow(clippy::derive_partial_eq_without_eq)]
558        #[derive(Clone, PartialEq, ::prost::Oneof)]
559        pub enum MakeTableType {
560            #[prost(string, tag = "1")]
561            MakeIndexTable(::prost::alloc::string::String),
562            #[prost(uint32, tag = "2")]
563            MakeLimitTable(u32),
564        }
565    }
566}
567#[derive(serde::Serialize)]
568#[allow(clippy::derive_partial_eq_without_eq)]
569#[derive(Clone, PartialEq, ::prost::Message)]
570pub struct MakeTableResp {}
571/// `Client::join` — create a read-only table from a JOIN of two tables.
572#[derive(serde::Serialize)]
573#[allow(clippy::derive_partial_eq_without_eq)]
574#[derive(Clone, PartialEq, ::prost::Message)]
575pub struct MakeJoinTableReq {
576    #[prost(string, tag = "1")]
577    pub left_table_id: ::prost::alloc::string::String,
578    #[prost(string, tag = "2")]
579    pub right_table_id: ::prost::alloc::string::String,
580    #[prost(string, tag = "3")]
581    pub on_column: ::prost::alloc::string::String,
582    #[prost(enumeration = "JoinType", tag = "4")]
583    pub join_type: i32,
584    #[prost(string, tag = "5")]
585    pub right_on_column: ::prost::alloc::string::String,
586}
587#[derive(serde::Serialize)]
588#[allow(clippy::derive_partial_eq_without_eq)]
589#[derive(Clone, PartialEq, ::prost::Message)]
590pub struct MakeJoinTableResp {}
591/// `Table::delete`
592#[derive(serde::Serialize)]
593#[allow(clippy::derive_partial_eq_without_eq)]
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct TableDeleteReq {
596    #[prost(bool, tag = "1")]
597    pub is_immediate: bool,
598}
599#[derive(serde::Serialize)]
600#[allow(clippy::derive_partial_eq_without_eq)]
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct TableDeleteResp {}
603/// `Table::on_delete`
604#[derive(serde::Serialize)]
605#[allow(clippy::derive_partial_eq_without_eq)]
606#[derive(Clone, PartialEq, ::prost::Message)]
607pub struct TableOnDeleteReq {}
608#[derive(serde::Serialize)]
609#[allow(clippy::derive_partial_eq_without_eq)]
610#[derive(Clone, PartialEq, ::prost::Message)]
611pub struct TableOnDeleteResp {}
612/// `Table::make_port`
613#[derive(serde::Serialize)]
614#[allow(clippy::derive_partial_eq_without_eq)]
615#[derive(Clone, PartialEq, ::prost::Message)]
616pub struct TableMakePortReq {}
617#[derive(serde::Serialize)]
618#[allow(clippy::derive_partial_eq_without_eq)]
619#[derive(Clone, PartialEq, ::prost::Message)]
620pub struct TableMakePortResp {
621    #[prost(uint32, tag = "1")]
622    pub port_id: u32,
623}
624/// `Table::remove_delete`
625#[derive(serde::Serialize)]
626#[allow(clippy::derive_partial_eq_without_eq)]
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct TableRemoveDeleteReq {
629    #[prost(uint32, tag = "1")]
630    pub id: u32,
631}
632#[derive(serde::Serialize)]
633#[allow(clippy::derive_partial_eq_without_eq)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct TableRemoveDeleteResp {}
636/// `Table::update`
637#[derive(serde::Serialize)]
638#[allow(clippy::derive_partial_eq_without_eq)]
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct TableUpdateReq {
641    #[prost(message, optional, tag = "1")]
642    pub data: ::core::option::Option<MakeTableData>,
643    #[prost(uint32, tag = "2")]
644    pub port_id: u32,
645}
646#[derive(serde::Serialize)]
647#[allow(clippy::derive_partial_eq_without_eq)]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct TableUpdateResp {}
650/// `Table::replace`
651#[derive(serde::Serialize)]
652#[allow(clippy::derive_partial_eq_without_eq)]
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct TableReplaceReq {
655    #[prost(message, optional, tag = "1")]
656    pub data: ::core::option::Option<MakeTableData>,
657}
658#[derive(serde::Serialize)]
659#[allow(clippy::derive_partial_eq_without_eq)]
660#[derive(Clone, PartialEq, ::prost::Message)]
661pub struct TableReplaceResp {}
662/// `Table::remove`
663#[derive(serde::Serialize)]
664#[allow(clippy::derive_partial_eq_without_eq)]
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct TableRemoveReq {
667    #[prost(message, optional, tag = "1")]
668    pub data: ::core::option::Option<MakeTableData>,
669}
670#[derive(serde::Serialize)]
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct TableRemoveResp {}
674#[derive(serde::Serialize)]
675#[allow(clippy::derive_partial_eq_without_eq)]
676#[derive(Clone, PartialEq, ::prost::Message)]
677pub struct ViewOnUpdateReq {
678    #[prost(enumeration = "view_on_update_req::Mode", optional, tag = "1")]
679    pub mode: ::core::option::Option<i32>,
680}
681/// Nested message and enum types in `ViewOnUpdateReq`.
682pub mod view_on_update_req {
683    #[derive(serde::Serialize)]
684    #[derive(
685        Clone,
686        Copy,
687        Debug,
688        PartialEq,
689        Eq,
690        Hash,
691        PartialOrd,
692        Ord,
693        ::prost::Enumeration
694    )]
695    #[repr(i32)]
696    pub enum Mode {
697        Row = 0,
698    }
699    impl Mode {
700        /// String value of the enum field names used in the ProtoBuf definition.
701        ///
702        /// The values are not transformed in any way and thus are considered stable
703        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
704        pub fn as_str_name(&self) -> &'static str {
705            match self {
706                Mode::Row => "ROW",
707            }
708        }
709        /// Creates an enum from field names used in the ProtoBuf definition.
710        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
711            match value {
712                "ROW" => Some(Self::Row),
713                _ => None,
714            }
715        }
716    }
717}
718#[derive(ts_rs::TS)]
719#[derive(serde::Serialize)]
720#[allow(clippy::derive_partial_eq_without_eq)]
721#[derive(Clone, PartialEq, ::prost::Message)]
722pub struct ViewOnUpdateResp {
723    #[prost(bytes = "vec", optional, tag = "1")]
724    #[ts(as = "Vec::<u8>")]
725    #[serde(with = "serde_bytes")]
726    pub delta: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
727    #[prost(uint32, tag = "2")]
728    pub port_id: u32,
729}
730#[derive(serde::Serialize)]
731#[allow(clippy::derive_partial_eq_without_eq)]
732#[derive(Clone, PartialEq, ::prost::Message)]
733pub struct ViewOnDeleteReq {}
734#[derive(serde::Serialize)]
735#[allow(clippy::derive_partial_eq_without_eq)]
736#[derive(Clone, PartialEq, ::prost::Message)]
737pub struct ViewOnDeleteResp {}
738#[derive(serde::Serialize)]
739#[allow(clippy::derive_partial_eq_without_eq)]
740#[derive(Clone, PartialEq, ::prost::Message)]
741pub struct ViewRemoveDeleteReq {
742    #[prost(uint32, tag = "1")]
743    pub id: u32,
744}
745#[derive(serde::Serialize)]
746#[allow(clippy::derive_partial_eq_without_eq)]
747#[derive(Clone, PartialEq, ::prost::Message)]
748pub struct ViewRemoveDeleteResp {}
749#[derive(serde::Serialize)]
750#[allow(clippy::derive_partial_eq_without_eq)]
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct ViewToColumnsStringReq {
753    #[prost(message, optional, tag = "1")]
754    pub viewport: ::core::option::Option<ViewPort>,
755    #[prost(bool, optional, tag = "2")]
756    pub id: ::core::option::Option<bool>,
757    #[prost(bool, optional, tag = "3")]
758    pub index: ::core::option::Option<bool>,
759    #[prost(bool, optional, tag = "4")]
760    pub formatted: ::core::option::Option<bool>,
761}
762#[derive(serde::Serialize)]
763#[allow(clippy::derive_partial_eq_without_eq)]
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct ViewToColumnsStringResp {
766    #[prost(string, tag = "1")]
767    pub json_string: ::prost::alloc::string::String,
768}
769#[derive(serde::Serialize)]
770#[allow(clippy::derive_partial_eq_without_eq)]
771#[derive(Clone, PartialEq, ::prost::Message)]
772pub struct ViewToRowsStringReq {
773    #[prost(message, optional, tag = "1")]
774    pub viewport: ::core::option::Option<ViewPort>,
775    #[prost(bool, optional, tag = "2")]
776    pub id: ::core::option::Option<bool>,
777    #[prost(bool, optional, tag = "3")]
778    pub index: ::core::option::Option<bool>,
779    #[prost(bool, optional, tag = "4")]
780    pub formatted: ::core::option::Option<bool>,
781}
782#[derive(serde::Serialize)]
783#[allow(clippy::derive_partial_eq_without_eq)]
784#[derive(Clone, PartialEq, ::prost::Message)]
785pub struct ViewToRowsStringResp {
786    #[prost(string, tag = "1")]
787    pub json_string: ::prost::alloc::string::String,
788}
789#[derive(serde::Serialize)]
790#[allow(clippy::derive_partial_eq_without_eq)]
791#[derive(Clone, PartialEq, ::prost::Message)]
792pub struct ViewToNdjsonStringReq {
793    #[prost(message, optional, tag = "1")]
794    pub viewport: ::core::option::Option<ViewPort>,
795    #[prost(bool, optional, tag = "2")]
796    pub id: ::core::option::Option<bool>,
797    #[prost(bool, optional, tag = "3")]
798    pub index: ::core::option::Option<bool>,
799    #[prost(bool, optional, tag = "4")]
800    pub formatted: ::core::option::Option<bool>,
801}
802#[derive(serde::Serialize)]
803#[allow(clippy::derive_partial_eq_without_eq)]
804#[derive(Clone, PartialEq, ::prost::Message)]
805pub struct ViewToNdjsonStringResp {
806    #[prost(string, tag = "1")]
807    pub ndjson_string: ::prost::alloc::string::String,
808}
809#[derive(serde::Serialize)]
810#[allow(clippy::derive_partial_eq_without_eq)]
811#[derive(Clone, PartialEq, ::prost::Message)]
812pub struct ViewToArrowReq {
813    #[prost(message, optional, tag = "1")]
814    pub viewport: ::core::option::Option<ViewPort>,
815    #[prost(string, optional, tag = "2")]
816    pub compression: ::core::option::Option<::prost::alloc::string::String>,
817}
818#[derive(serde::Serialize)]
819#[allow(clippy::derive_partial_eq_without_eq)]
820#[derive(Clone, PartialEq, ::prost::Message)]
821pub struct ViewToArrowResp {
822    #[prost(bytes = "vec", tag = "1")]
823    #[serde(skip)]
824    pub arrow: ::prost::alloc::vec::Vec<u8>,
825}
826#[derive(serde::Serialize)]
827#[allow(clippy::derive_partial_eq_without_eq)]
828#[derive(Clone, PartialEq, ::prost::Message)]
829pub struct ViewColumnPathsReq {
830    #[prost(uint32, optional, tag = "1")]
831    pub start_col: ::core::option::Option<u32>,
832    #[prost(uint32, optional, tag = "2")]
833    pub end_col: ::core::option::Option<u32>,
834}
835#[derive(serde::Serialize)]
836#[allow(clippy::derive_partial_eq_without_eq)]
837#[derive(Clone, PartialEq, ::prost::Message)]
838pub struct ViewColumnPathsResp {
839    /// repeated ColumnPath paths = 1;
840    #[prost(string, repeated, tag = "1")]
841    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
842}
843#[derive(serde::Serialize)]
844#[allow(clippy::derive_partial_eq_without_eq)]
845#[derive(Clone, PartialEq, ::prost::Message)]
846pub struct ViewDeleteReq {}
847#[derive(serde::Serialize)]
848#[allow(clippy::derive_partial_eq_without_eq)]
849#[derive(Clone, PartialEq, ::prost::Message)]
850pub struct ViewDeleteResp {}
851#[derive(serde::Serialize)]
852#[allow(clippy::derive_partial_eq_without_eq)]
853#[derive(Clone, PartialEq, ::prost::Message)]
854pub struct ViewGetMinMaxReq {
855    #[prost(string, tag = "1")]
856    pub column_name: ::prost::alloc::string::String,
857}
858#[derive(serde::Serialize)]
859#[allow(clippy::derive_partial_eq_without_eq)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct ViewGetMinMaxResp {
862    #[prost(message, optional, tag = "1")]
863    pub min: ::core::option::Option<Scalar>,
864    #[prost(message, optional, tag = "2")]
865    pub max: ::core::option::Option<Scalar>,
866}
867#[derive(serde::Serialize)]
868#[allow(clippy::derive_partial_eq_without_eq)]
869#[derive(Clone, PartialEq, ::prost::Message)]
870pub struct ViewExpressionSchemaReq {}
871#[derive(serde::Serialize)]
872#[allow(clippy::derive_partial_eq_without_eq)]
873#[derive(Clone, PartialEq, ::prost::Message)]
874pub struct ViewExpressionSchemaResp {
875    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
876    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
877}
878#[derive(serde::Serialize)]
879#[allow(clippy::derive_partial_eq_without_eq)]
880#[derive(Clone, PartialEq, ::prost::Message)]
881pub struct ViewToCsvReq {
882    #[prost(message, optional, tag = "1")]
883    pub viewport: ::core::option::Option<ViewPort>,
884}
885#[derive(serde::Serialize)]
886#[allow(clippy::derive_partial_eq_without_eq)]
887#[derive(Clone, PartialEq, ::prost::Message)]
888pub struct ViewToCsvResp {
889    #[prost(string, tag = "1")]
890    pub csv: ::prost::alloc::string::String,
891}
892#[derive(serde::Serialize)]
893#[allow(clippy::derive_partial_eq_without_eq)]
894#[derive(Clone, PartialEq, ::prost::Message)]
895pub struct ViewRemoveOnUpdateReq {
896    #[prost(uint32, tag = "1")]
897    pub id: u32,
898}
899#[derive(serde::Serialize)]
900#[allow(clippy::derive_partial_eq_without_eq)]
901#[derive(Clone, PartialEq, ::prost::Message)]
902pub struct ViewRemoveOnUpdateResp {}
903#[derive(serde::Serialize)]
904#[allow(clippy::derive_partial_eq_without_eq)]
905#[derive(Clone, PartialEq, ::prost::Message)]
906pub struct ViewCollapseReq {
907    #[prost(uint32, tag = "1")]
908    pub row_index: u32,
909}
910#[derive(serde::Serialize)]
911#[allow(clippy::derive_partial_eq_without_eq)]
912#[derive(Clone, PartialEq, ::prost::Message)]
913pub struct ViewCollapseResp {
914    #[prost(uint32, tag = "1")]
915    pub num_changed: u32,
916}
917#[derive(serde::Serialize)]
918#[allow(clippy::derive_partial_eq_without_eq)]
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct ViewExpandReq {
921    #[prost(uint32, tag = "1")]
922    pub row_index: u32,
923}
924#[derive(serde::Serialize)]
925#[allow(clippy::derive_partial_eq_without_eq)]
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct ViewExpandResp {
928    #[prost(uint32, tag = "1")]
929    pub num_changed: u32,
930}
931/// `View::set_depth`
932#[derive(serde::Serialize)]
933#[allow(clippy::derive_partial_eq_without_eq)]
934#[derive(Clone, PartialEq, ::prost::Message)]
935pub struct ViewSetDepthReq {
936    #[prost(uint32, tag = "1")]
937    pub depth: u32,
938}
939#[derive(serde::Serialize)]
940#[allow(clippy::derive_partial_eq_without_eq)]
941#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct ViewSetDepthResp {}
943#[derive(serde::Serialize)]
944#[allow(clippy::derive_partial_eq_without_eq)]
945#[derive(Clone, PartialEq, ::prost::Message)]
946pub struct ServerSystemInfoReq {}
947#[derive(serde::Serialize)]
948#[allow(clippy::derive_partial_eq_without_eq)]
949#[derive(Clone, PartialEq, ::prost::Message)]
950pub struct ServerSystemInfoResp {
951    #[prost(uint64, tag = "1")]
952    pub heap_size: u64,
953    #[prost(uint64, tag = "2")]
954    pub used_size: u64,
955    #[prost(uint32, tag = "3")]
956    pub cpu_time: u32,
957    #[prost(uint32, tag = "4")]
958    pub cpu_time_epoch: u32,
959}
960#[derive(serde::Serialize)]
961#[allow(clippy::derive_partial_eq_without_eq)]
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct ViewConfig {
964    #[prost(string, repeated, tag = "1")]
965    pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
966    #[prost(string, repeated, tag = "2")]
967    pub split_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
968    #[prost(message, optional, tag = "3")]
969    pub columns: ::core::option::Option<ColumnsUpdate>,
970    #[prost(message, repeated, tag = "4")]
971    pub filter: ::prost::alloc::vec::Vec<view_config::Filter>,
972    #[prost(message, repeated, tag = "5")]
973    pub sort: ::prost::alloc::vec::Vec<view_config::Sort>,
974    #[prost(map = "string, string", tag = "6")]
975    pub expressions: ::std::collections::HashMap<
976        ::prost::alloc::string::String,
977        ::prost::alloc::string::String,
978    >,
979    #[prost(map = "string, message", tag = "7")]
980    pub aggregates: ::std::collections::HashMap<
981        ::prost::alloc::string::String,
982        view_config::AggList,
983    >,
984    #[prost(enumeration = "view_config::FilterReducer", tag = "8")]
985    pub filter_op: i32,
986    #[prost(uint32, optional, tag = "9")]
987    pub group_by_depth: ::core::option::Option<u32>,
988    #[prost(enumeration = "GroupRollupMode", optional, tag = "10")]
989    pub group_rollup_mode: ::core::option::Option<i32>,
990}
991/// Nested message and enum types in `ViewConfig`.
992pub mod view_config {
993    #[derive(serde::Serialize)]
994    #[allow(clippy::derive_partial_eq_without_eq)]
995    #[derive(Clone, PartialEq, ::prost::Message)]
996    pub struct AggList {
997        #[prost(string, repeated, tag = "1")]
998        pub aggregations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
999    }
1000    #[derive(serde::Serialize)]
1001    #[allow(clippy::derive_partial_eq_without_eq)]
1002    #[derive(Clone, PartialEq, ::prost::Message)]
1003    pub struct Sort {
1004        #[prost(string, tag = "1")]
1005        pub column: ::prost::alloc::string::String,
1006        #[prost(enumeration = "super::SortOp", tag = "2")]
1007        pub op: i32,
1008    }
1009    #[derive(serde::Serialize)]
1010    #[allow(clippy::derive_partial_eq_without_eq)]
1011    #[derive(Clone, PartialEq, ::prost::Message)]
1012    pub struct Filter {
1013        #[prost(string, tag = "1")]
1014        pub column: ::prost::alloc::string::String,
1015        #[prost(string, tag = "2")]
1016        pub op: ::prost::alloc::string::String,
1017        #[prost(message, repeated, tag = "3")]
1018        pub value: ::prost::alloc::vec::Vec<super::Scalar>,
1019    }
1020    #[derive(serde::Serialize)]
1021    #[derive(
1022        Clone,
1023        Copy,
1024        Debug,
1025        PartialEq,
1026        Eq,
1027        Hash,
1028        PartialOrd,
1029        Ord,
1030        ::prost::Enumeration
1031    )]
1032    #[repr(i32)]
1033    pub enum FilterReducer {
1034        And = 0,
1035        Or = 1,
1036    }
1037    impl FilterReducer {
1038        /// String value of the enum field names used in the ProtoBuf definition.
1039        ///
1040        /// The values are not transformed in any way and thus are considered stable
1041        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1042        pub fn as_str_name(&self) -> &'static str {
1043            match self {
1044                FilterReducer::And => "AND",
1045                FilterReducer::Or => "OR",
1046            }
1047        }
1048        /// Creates an enum from field names used in the ProtoBuf definition.
1049        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1050            match value {
1051                "AND" => Some(Self::And),
1052                "OR" => Some(Self::Or),
1053                _ => None,
1054            }
1055        }
1056    }
1057}
1058#[derive(serde::Serialize)]
1059#[allow(clippy::derive_partial_eq_without_eq)]
1060#[derive(Clone, PartialEq, ::prost::Message)]
1061pub struct ColumnsUpdate {
1062    #[prost(oneof = "columns_update::OptColumns", tags = "1, 2")]
1063    pub opt_columns: ::core::option::Option<columns_update::OptColumns>,
1064}
1065/// Nested message and enum types in `ColumnsUpdate`.
1066pub mod columns_update {
1067    #[derive(serde::Serialize)]
1068    #[allow(clippy::derive_partial_eq_without_eq)]
1069    #[derive(Clone, PartialEq, ::prost::Message)]
1070    pub struct Columns {
1071        #[prost(string, repeated, tag = "1")]
1072        pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1073    }
1074    #[derive(serde::Serialize)]
1075    #[allow(clippy::derive_partial_eq_without_eq)]
1076    #[derive(Clone, PartialEq, ::prost::Oneof)]
1077    pub enum OptColumns {
1078        #[prost(enumeration = "::prost_types::NullValue", tag = "1")]
1079        DefaultColumns(i32),
1080        #[prost(message, tag = "2")]
1081        Columns(Columns),
1082    }
1083}
1084#[derive(serde::Serialize)]
1085#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1086#[repr(i32)]
1087pub enum StatusCode {
1088    ServerError = 0,
1089    ViewNotFound = 1,
1090    TransportError = 2,
1091}
1092impl StatusCode {
1093    /// String value of the enum field names used in the ProtoBuf definition.
1094    ///
1095    /// The values are not transformed in any way and thus are considered stable
1096    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1097    pub fn as_str_name(&self) -> &'static str {
1098        match self {
1099            StatusCode::ServerError => "SERVER_ERROR",
1100            StatusCode::ViewNotFound => "VIEW_NOT_FOUND",
1101            StatusCode::TransportError => "TRANSPORT_ERROR",
1102        }
1103    }
1104    /// Creates an enum from field names used in the ProtoBuf definition.
1105    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1106        match value {
1107            "SERVER_ERROR" => Some(Self::ServerError),
1108            "VIEW_NOT_FOUND" => Some(Self::ViewNotFound),
1109            "TRANSPORT_ERROR" => Some(Self::TransportError),
1110            _ => None,
1111        }
1112    }
1113}
1114/// View types
1115#[derive(ts_rs::TS)]
1116#[derive(serde::Serialize)]
1117#[derive(serde::Deserialize)]
1118#[serde(rename_all = "snake_case")]
1119#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1120#[repr(i32)]
1121pub enum ColumnType {
1122    String = 0,
1123    Date = 1,
1124    Datetime = 2,
1125    Integer = 3,
1126    Float = 4,
1127    Boolean = 5,
1128}
1129impl ColumnType {
1130    /// String value of the enum field names used in the ProtoBuf definition.
1131    ///
1132    /// The values are not transformed in any way and thus are considered stable
1133    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1134    pub fn as_str_name(&self) -> &'static str {
1135        match self {
1136            ColumnType::String => "STRING",
1137            ColumnType::Date => "DATE",
1138            ColumnType::Datetime => "DATETIME",
1139            ColumnType::Integer => "INTEGER",
1140            ColumnType::Float => "FLOAT",
1141            ColumnType::Boolean => "BOOLEAN",
1142        }
1143    }
1144    /// Creates an enum from field names used in the ProtoBuf definition.
1145    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1146        match value {
1147            "STRING" => Some(Self::String),
1148            "DATE" => Some(Self::Date),
1149            "DATETIME" => Some(Self::Datetime),
1150            "INTEGER" => Some(Self::Integer),
1151            "FLOAT" => Some(Self::Float),
1152            "BOOLEAN" => Some(Self::Boolean),
1153            _ => None,
1154        }
1155    }
1156}
1157/// TODO This belongs in features
1158#[derive(serde::Serialize)]
1159#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1160#[repr(i32)]
1161pub enum SortOp {
1162    SortNone = 0,
1163    SortAsc = 1,
1164    SortDesc = 2,
1165    SortColAsc = 3,
1166    SortColDesc = 4,
1167    SortAscAbs = 5,
1168    SortDescAbs = 6,
1169    SortColAscAbs = 7,
1170    SortColDescAbs = 8,
1171}
1172impl SortOp {
1173    /// String value of the enum field names used in the ProtoBuf definition.
1174    ///
1175    /// The values are not transformed in any way and thus are considered stable
1176    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1177    pub fn as_str_name(&self) -> &'static str {
1178        match self {
1179            SortOp::SortNone => "SORT_NONE",
1180            SortOp::SortAsc => "SORT_ASC",
1181            SortOp::SortDesc => "SORT_DESC",
1182            SortOp::SortColAsc => "SORT_COL_ASC",
1183            SortOp::SortColDesc => "SORT_COL_DESC",
1184            SortOp::SortAscAbs => "SORT_ASC_ABS",
1185            SortOp::SortDescAbs => "SORT_DESC_ABS",
1186            SortOp::SortColAscAbs => "SORT_COL_ASC_ABS",
1187            SortOp::SortColDescAbs => "SORT_COL_DESC_ABS",
1188        }
1189    }
1190    /// Creates an enum from field names used in the ProtoBuf definition.
1191    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1192        match value {
1193            "SORT_NONE" => Some(Self::SortNone),
1194            "SORT_ASC" => Some(Self::SortAsc),
1195            "SORT_DESC" => Some(Self::SortDesc),
1196            "SORT_COL_ASC" => Some(Self::SortColAsc),
1197            "SORT_COL_DESC" => Some(Self::SortColDesc),
1198            "SORT_ASC_ABS" => Some(Self::SortAscAbs),
1199            "SORT_DESC_ABS" => Some(Self::SortDescAbs),
1200            "SORT_COL_ASC_ABS" => Some(Self::SortColAscAbs),
1201            "SORT_COL_DESC_ABS" => Some(Self::SortColDescAbs),
1202            _ => None,
1203        }
1204    }
1205}
1206#[derive(serde::Serialize)]
1207#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1208#[repr(i32)]
1209pub enum GroupRollupMode {
1210    Rollup = 0,
1211    Flat = 1,
1212    Total = 2,
1213}
1214impl GroupRollupMode {
1215    /// String value of the enum field names used in the ProtoBuf definition.
1216    ///
1217    /// The values are not transformed in any way and thus are considered stable
1218    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1219    pub fn as_str_name(&self) -> &'static str {
1220        match self {
1221            GroupRollupMode::Rollup => "ROLLUP",
1222            GroupRollupMode::Flat => "FLAT",
1223            GroupRollupMode::Total => "TOTAL",
1224        }
1225    }
1226    /// Creates an enum from field names used in the ProtoBuf definition.
1227    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1228        match value {
1229            "ROLLUP" => Some(Self::Rollup),
1230            "FLAT" => Some(Self::Flat),
1231            "TOTAL" => Some(Self::Total),
1232            _ => None,
1233        }
1234    }
1235}
1236#[derive(serde::Deserialize, ts_rs::TS)]
1237#[serde(rename_all = "snake_case")]
1238#[derive(serde::Serialize)]
1239#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1240#[repr(i32)]
1241pub enum JoinType {
1242    Inner = 0,
1243    Left = 1,
1244    Outer = 2,
1245}
1246impl JoinType {
1247    /// String value of the enum field names used in the ProtoBuf definition.
1248    ///
1249    /// The values are not transformed in any way and thus are considered stable
1250    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1251    pub fn as_str_name(&self) -> &'static str {
1252        match self {
1253            JoinType::Inner => "INNER",
1254            JoinType::Left => "LEFT",
1255            JoinType::Outer => "OUTER",
1256        }
1257    }
1258    /// Creates an enum from field names used in the ProtoBuf definition.
1259    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1260        match value {
1261            "INNER" => Some(Self::Inner),
1262            "LEFT" => Some(Self::Left),
1263            "OUTER" => Some(Self::Outer),
1264            _ => None,
1265        }
1266    }
1267}