Skip to main content

chalk_client/gen/
chalk.graph.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct StreamSourceReference {
4    #[prost(enumeration = "StreamSourceType", tag = "1")]
5    pub r#type: i32,
6    #[prost(string, tag = "2")]
7    pub name: ::prost::alloc::string::String,
8}
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct StreamSource {
11    #[prost(oneof = "stream_source::Source", tags = "1, 2, 3")]
12    pub source: ::core::option::Option<stream_source::Source>,
13}
14/// Nested message and enum types in `StreamSource`.
15pub mod stream_source {
16    #[derive(Clone, PartialEq, ::prost::Oneof)]
17    pub enum Source {
18        #[prost(message, tag = "1")]
19        Kafka(super::KafkaSource),
20        #[prost(message, tag = "2")]
21        Kinesis(super::KinesisSource),
22        #[prost(message, tag = "3")]
23        Pubsub(super::PubSubSource),
24    }
25}
26#[derive(Clone, PartialEq, ::prost::Message)]
27pub struct KinesisSource {
28    #[prost(string, tag = "1")]
29    pub name: ::prost::alloc::string::String,
30    #[prost(string, tag = "2")]
31    pub stream_name: ::prost::alloc::string::String,
32    #[prost(string, tag = "3")]
33    pub stream_arn: ::prost::alloc::string::String,
34    #[prost(string, tag = "4")]
35    pub region_name: ::prost::alloc::string::String,
36    #[prost(message, optional, tag = "5")]
37    pub late_arrival_deadline: ::core::option::Option<::prost_types::Duration>,
38    #[prost(string, tag = "6")]
39    pub dead_letter_queue_stream_name: ::prost::alloc::string::String,
40    #[prost(string, tag = "7")]
41    pub aws_access_key_id: ::prost::alloc::string::String,
42    #[prost(string, tag = "8")]
43    pub aws_secret_access_key: ::prost::alloc::string::String,
44    #[prost(string, tag = "9")]
45    pub aws_session_token: ::prost::alloc::string::String,
46    #[prost(string, tag = "10")]
47    pub endpoint_url: ::prost::alloc::string::String,
48    #[prost(string, tag = "11")]
49    pub consumer_role_arn: ::prost::alloc::string::String,
50    #[prost(string, tag = "12")]
51    pub enhanced_fanout_consumer_name: ::prost::alloc::string::String,
52}
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct KafkaSource {
55    #[prost(string, tag = "1")]
56    pub name: ::prost::alloc::string::String,
57    #[prost(string, repeated, tag = "2")]
58    pub bootstrap_servers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
59    #[prost(string, tag = "3")]
60    pub topic: ::prost::alloc::string::String,
61    #[prost(string, tag = "4")]
62    pub ssl_keystore_location: ::prost::alloc::string::String,
63    #[prost(string, tag = "5")]
64    pub ssl_ca_file: ::prost::alloc::string::String,
65    #[prost(string, tag = "6")]
66    pub client_id_prefix: ::prost::alloc::string::String,
67    #[prost(string, tag = "7")]
68    pub group_id_prefix: ::prost::alloc::string::String,
69    #[prost(string, tag = "8")]
70    pub security_protocol: ::prost::alloc::string::String,
71    #[prost(string, tag = "9")]
72    pub sasl_mechanism: ::prost::alloc::string::String,
73    #[prost(string, tag = "10")]
74    pub sasl_username: ::prost::alloc::string::String,
75    #[prost(string, tag = "11")]
76    pub sasl_password: ::prost::alloc::string::String,
77    #[prost(message, optional, tag = "12")]
78    pub late_arrival_deadline: ::core::option::Option<::prost_types::Duration>,
79    #[prost(string, tag = "13")]
80    pub dead_letter_queue_topic: ::prost::alloc::string::String,
81    /// AWS MSK IAM authentication fields
82    #[prost(bool, tag = "14")]
83    pub msk_iam_auth: bool,
84    #[prost(string, tag = "15")]
85    pub aws_region: ::prost::alloc::string::String,
86    #[prost(string, tag = "16")]
87    pub aws_role_arn: ::prost::alloc::string::String,
88}
89#[derive(Clone, PartialEq, ::prost::Message)]
90pub struct PubSubSource {
91    #[prost(string, tag = "1")]
92    pub name: ::prost::alloc::string::String,
93    #[prost(string, tag = "2")]
94    pub project_id: ::prost::alloc::string::String,
95    #[prost(string, tag = "3")]
96    pub subscription_id: ::prost::alloc::string::String,
97    #[prost(message, optional, tag = "4")]
98    pub late_arrival_deadline: ::core::option::Option<::prost_types::Duration>,
99    #[prost(string, tag = "5")]
100    pub dead_letter_queue_topic: ::prost::alloc::string::String,
101}
102#[derive(Clone, PartialEq, ::prost::Message)]
103pub struct DatabaseSourceReference {
104    #[prost(enumeration = "DatabaseSourceType", tag = "1")]
105    pub r#type: i32,
106    #[prost(string, tag = "2")]
107    pub name: ::prost::alloc::string::String,
108}
109#[derive(Clone, PartialEq, ::prost::Message)]
110pub struct DatabaseSource {
111    #[prost(
112        oneof = "database_source::Source",
113        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"
114    )]
115    pub source: ::core::option::Option<database_source::Source>,
116}
117/// Nested message and enum types in `DatabaseSource`.
118pub mod database_source {
119    #[derive(Clone, PartialEq, ::prost::Oneof)]
120    pub enum Source {
121        #[prost(message, tag = "1")]
122        Bigquery(super::BigQuerySource),
123        #[prost(message, tag = "2")]
124        Cloudsql(super::CloudSqlSource),
125        #[prost(message, tag = "3")]
126        Databricks(super::DatabricksSource),
127        #[prost(message, tag = "4")]
128        Mysql(super::MySqlSource),
129        #[prost(message, tag = "5")]
130        Postgres(super::PostgresSource),
131        #[prost(message, tag = "6")]
132        Redshift(super::RedshiftSource),
133        #[prost(message, tag = "7")]
134        Snowflake(super::SnowflakeSource),
135        #[prost(message, tag = "8")]
136        Sqlite(super::SqLiteSource),
137        #[prost(message, tag = "9")]
138        Spanner(super::SpannerSource),
139        #[prost(message, tag = "10")]
140        Trino(super::TrinoSource),
141        #[prost(message, tag = "11")]
142        Dynamodb(super::DynamoDbSource),
143        #[prost(message, tag = "12")]
144        Athena(super::AthenaSource),
145        #[prost(message, tag = "13")]
146        Clickhouse(super::ClickhouseSource),
147        #[prost(message, tag = "14")]
148        Mssql(super::MssqlSource),
149    }
150}
151#[derive(Clone, PartialEq, ::prost::Message)]
152pub struct BigQuerySource {
153    #[prost(string, tag = "1")]
154    pub name: ::prost::alloc::string::String,
155    #[prost(string, tag = "2")]
156    pub project: ::prost::alloc::string::String,
157    #[prost(string, tag = "3")]
158    pub dataset: ::prost::alloc::string::String,
159    #[prost(string, tag = "4")]
160    pub location: ::prost::alloc::string::String,
161    #[prost(string, tag = "5")]
162    pub credentials_base64: ::prost::alloc::string::String,
163    #[prost(string, tag = "6")]
164    pub credentials_path: ::prost::alloc::string::String,
165    #[prost(map = "string, message", tag = "7")]
166    pub engine_args: ::std::collections::HashMap<
167        ::prost::alloc::string::String,
168        super::super::arrow::v1::ScalarValue,
169    >,
170    #[prost(map = "string, message", tag = "8")]
171    pub async_engine_args: ::std::collections::HashMap<
172        ::prost::alloc::string::String,
173        super::super::arrow::v1::ScalarValue,
174    >,
175}
176#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct CloudSqlSource {
178    #[prost(string, tag = "1")]
179    pub name: ::prost::alloc::string::String,
180    #[prost(string, tag = "2")]
181    pub db: ::prost::alloc::string::String,
182    #[prost(string, tag = "3")]
183    pub user: ::prost::alloc::string::String,
184    #[prost(string, tag = "4")]
185    pub password: ::prost::alloc::string::String,
186    #[prost(string, tag = "5")]
187    pub instance_name: ::prost::alloc::string::String,
188    #[prost(map = "string, message", tag = "6")]
189    pub engine_args: ::std::collections::HashMap<
190        ::prost::alloc::string::String,
191        super::super::arrow::v1::ScalarValue,
192    >,
193    #[prost(map = "string, message", tag = "7")]
194    pub async_engine_args: ::std::collections::HashMap<
195        ::prost::alloc::string::String,
196        super::super::arrow::v1::ScalarValue,
197    >,
198}
199#[derive(Clone, PartialEq, ::prost::Message)]
200pub struct DatabricksSource {
201    #[prost(string, tag = "1")]
202    pub name: ::prost::alloc::string::String,
203    #[prost(string, tag = "2")]
204    pub host: ::prost::alloc::string::String,
205    #[prost(string, tag = "3")]
206    pub port: ::prost::alloc::string::String,
207    #[prost(string, tag = "4")]
208    pub db: ::prost::alloc::string::String,
209    #[prost(string, tag = "5")]
210    pub http_path: ::prost::alloc::string::String,
211    #[prost(string, tag = "6")]
212    pub access_token: ::prost::alloc::string::String,
213    #[prost(map = "string, message", tag = "7")]
214    pub engine_args: ::std::collections::HashMap<
215        ::prost::alloc::string::String,
216        super::super::arrow::v1::ScalarValue,
217    >,
218    #[prost(map = "string, message", tag = "8")]
219    pub async_engine_args: ::std::collections::HashMap<
220        ::prost::alloc::string::String,
221        super::super::arrow::v1::ScalarValue,
222    >,
223}
224#[derive(Clone, PartialEq, ::prost::Message)]
225pub struct DynamoDbSource {
226    #[prost(string, tag = "1")]
227    pub name: ::prost::alloc::string::String,
228    #[prost(string, optional, tag = "2")]
229    pub aws_client_id_override: ::core::option::Option<::prost::alloc::string::String>,
230    #[prost(string, optional, tag = "3")]
231    pub aws_client_secret_override: ::core::option::Option<
232        ::prost::alloc::string::String,
233    >,
234    #[prost(string, optional, tag = "4")]
235    pub aws_region_override: ::core::option::Option<::prost::alloc::string::String>,
236    #[prost(string, optional, tag = "5")]
237    pub endpoint_override: ::core::option::Option<::prost::alloc::string::String>,
238    #[prost(map = "string, message", tag = "6")]
239    pub engine_args: ::std::collections::HashMap<
240        ::prost::alloc::string::String,
241        super::super::arrow::v1::ScalarValue,
242    >,
243    #[prost(map = "string, message", tag = "7")]
244    pub async_engine_args: ::std::collections::HashMap<
245        ::prost::alloc::string::String,
246        super::super::arrow::v1::ScalarValue,
247    >,
248}
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct MySqlSource {
251    #[prost(string, tag = "1")]
252    pub name: ::prost::alloc::string::String,
253    #[prost(string, tag = "2")]
254    pub host: ::prost::alloc::string::String,
255    #[prost(string, tag = "3")]
256    pub port: ::prost::alloc::string::String,
257    #[prost(string, tag = "4")]
258    pub db: ::prost::alloc::string::String,
259    #[prost(string, tag = "5")]
260    pub user: ::prost::alloc::string::String,
261    #[prost(string, tag = "6")]
262    pub password: ::prost::alloc::string::String,
263    #[prost(map = "string, message", tag = "7")]
264    pub engine_args: ::std::collections::HashMap<
265        ::prost::alloc::string::String,
266        super::super::arrow::v1::ScalarValue,
267    >,
268    #[prost(map = "string, message", tag = "8")]
269    pub async_engine_args: ::std::collections::HashMap<
270        ::prost::alloc::string::String,
271        super::super::arrow::v1::ScalarValue,
272    >,
273}
274#[derive(Clone, PartialEq, ::prost::Message)]
275pub struct PostgresSource {
276    #[prost(string, tag = "1")]
277    pub name: ::prost::alloc::string::String,
278    #[prost(string, tag = "2")]
279    pub host: ::prost::alloc::string::String,
280    #[prost(string, tag = "3")]
281    pub port: ::prost::alloc::string::String,
282    #[prost(string, tag = "4")]
283    pub db: ::prost::alloc::string::String,
284    #[prost(string, tag = "5")]
285    pub user: ::prost::alloc::string::String,
286    #[prost(string, tag = "6")]
287    pub password: ::prost::alloc::string::String,
288    #[prost(map = "string, message", tag = "7")]
289    pub engine_args: ::std::collections::HashMap<
290        ::prost::alloc::string::String,
291        super::super::arrow::v1::ScalarValue,
292    >,
293    #[prost(map = "string, message", tag = "8")]
294    pub async_engine_args: ::std::collections::HashMap<
295        ::prost::alloc::string::String,
296        super::super::arrow::v1::ScalarValue,
297    >,
298}
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct MssqlSource {
301    #[prost(string, tag = "1")]
302    pub name: ::prost::alloc::string::String,
303    #[prost(string, tag = "2")]
304    pub host: ::prost::alloc::string::String,
305    #[prost(string, tag = "3")]
306    pub port: ::prost::alloc::string::String,
307    #[prost(string, tag = "4")]
308    pub db: ::prost::alloc::string::String,
309    #[prost(string, tag = "5")]
310    pub user: ::prost::alloc::string::String,
311    #[prost(string, tag = "6")]
312    pub password: ::prost::alloc::string::String,
313    #[prost(map = "string, message", tag = "7")]
314    pub engine_args: ::std::collections::HashMap<
315        ::prost::alloc::string::String,
316        super::super::arrow::v1::ScalarValue,
317    >,
318    #[prost(map = "string, message", tag = "8")]
319    pub async_engine_args: ::std::collections::HashMap<
320        ::prost::alloc::string::String,
321        super::super::arrow::v1::ScalarValue,
322    >,
323}
324#[derive(Clone, PartialEq, ::prost::Message)]
325pub struct RedshiftSource {
326    #[prost(string, tag = "1")]
327    pub name: ::prost::alloc::string::String,
328    #[prost(string, tag = "2")]
329    pub host: ::prost::alloc::string::String,
330    #[prost(string, tag = "3")]
331    pub port: ::prost::alloc::string::String,
332    #[prost(string, tag = "4")]
333    pub db: ::prost::alloc::string::String,
334    #[prost(string, tag = "5")]
335    pub user: ::prost::alloc::string::String,
336    #[prost(string, tag = "6")]
337    pub password: ::prost::alloc::string::String,
338    #[prost(string, tag = "7")]
339    pub s3_client: ::prost::alloc::string::String,
340    #[prost(string, tag = "8")]
341    pub s3_bucket: ::prost::alloc::string::String,
342    #[prost(map = "string, message", tag = "9")]
343    pub engine_args: ::std::collections::HashMap<
344        ::prost::alloc::string::String,
345        super::super::arrow::v1::ScalarValue,
346    >,
347    #[prost(map = "string, message", tag = "10")]
348    pub async_engine_args: ::std::collections::HashMap<
349        ::prost::alloc::string::String,
350        super::super::arrow::v1::ScalarValue,
351    >,
352    #[prost(string, tag = "11")]
353    pub unload_iam_role: ::prost::alloc::string::String,
354}
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct SnowflakeSource {
357    #[prost(string, tag = "1")]
358    pub name: ::prost::alloc::string::String,
359    #[prost(string, tag = "2")]
360    pub db: ::prost::alloc::string::String,
361    #[prost(string, tag = "3")]
362    pub schema: ::prost::alloc::string::String,
363    #[prost(string, tag = "4")]
364    pub role: ::prost::alloc::string::String,
365    #[prost(string, tag = "5")]
366    pub user: ::prost::alloc::string::String,
367    #[prost(string, tag = "6")]
368    pub password: ::prost::alloc::string::String,
369    #[prost(string, tag = "7")]
370    pub account_identifier: ::prost::alloc::string::String,
371    #[prost(string, tag = "8")]
372    pub warehouse: ::prost::alloc::string::String,
373    #[prost(map = "string, message", tag = "9")]
374    pub engine_args: ::std::collections::HashMap<
375        ::prost::alloc::string::String,
376        super::super::arrow::v1::ScalarValue,
377    >,
378    #[prost(map = "string, message", tag = "10")]
379    pub async_engine_args: ::std::collections::HashMap<
380        ::prost::alloc::string::String,
381        super::super::arrow::v1::ScalarValue,
382    >,
383    #[prost(string, tag = "11")]
384    pub private_key_b64: ::prost::alloc::string::String,
385}
386#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct SqLiteSource {
388    #[prost(string, tag = "1")]
389    pub name: ::prost::alloc::string::String,
390    #[prost(string, tag = "2")]
391    pub file_name: ::prost::alloc::string::String,
392    #[prost(map = "string, message", tag = "3")]
393    pub engine_args: ::std::collections::HashMap<
394        ::prost::alloc::string::String,
395        super::super::arrow::v1::ScalarValue,
396    >,
397    #[prost(map = "string, message", tag = "4")]
398    pub async_engine_args: ::std::collections::HashMap<
399        ::prost::alloc::string::String,
400        super::super::arrow::v1::ScalarValue,
401    >,
402}
403#[derive(Clone, PartialEq, ::prost::Message)]
404pub struct SpannerSource {
405    #[prost(string, tag = "1")]
406    pub name: ::prost::alloc::string::String,
407    #[prost(string, tag = "2")]
408    pub project: ::prost::alloc::string::String,
409    #[prost(string, tag = "3")]
410    pub instance: ::prost::alloc::string::String,
411    #[prost(string, tag = "4")]
412    pub db: ::prost::alloc::string::String,
413    #[prost(string, tag = "5")]
414    pub credentials_base64: ::prost::alloc::string::String,
415    #[prost(map = "string, message", tag = "6")]
416    pub engine_args: ::std::collections::HashMap<
417        ::prost::alloc::string::String,
418        super::super::arrow::v1::ScalarValue,
419    >,
420    #[prost(map = "string, message", tag = "7")]
421    pub async_engine_args: ::std::collections::HashMap<
422        ::prost::alloc::string::String,
423        super::super::arrow::v1::ScalarValue,
424    >,
425}
426#[derive(Clone, PartialEq, ::prost::Message)]
427pub struct TrinoSource {
428    #[prost(string, tag = "1")]
429    pub name: ::prost::alloc::string::String,
430    #[prost(string, tag = "2")]
431    pub host: ::prost::alloc::string::String,
432    #[prost(string, tag = "3")]
433    pub port: ::prost::alloc::string::String,
434    #[prost(string, tag = "4")]
435    pub catalog: ::prost::alloc::string::String,
436    #[prost(string, tag = "5")]
437    pub schema: ::prost::alloc::string::String,
438    #[prost(string, tag = "6")]
439    pub user: ::prost::alloc::string::String,
440    #[prost(string, tag = "7")]
441    pub password: ::prost::alloc::string::String,
442    #[prost(map = "string, message", tag = "8")]
443    pub engine_args: ::std::collections::HashMap<
444        ::prost::alloc::string::String,
445        super::super::arrow::v1::ScalarValue,
446    >,
447    #[prost(map = "string, message", tag = "9")]
448    pub async_engine_args: ::std::collections::HashMap<
449        ::prost::alloc::string::String,
450        super::super::arrow::v1::ScalarValue,
451    >,
452}
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct AthenaSource {
455    #[prost(string, tag = "1")]
456    pub name: ::prost::alloc::string::String,
457    #[prost(string, tag = "2")]
458    pub aws_region: ::prost::alloc::string::String,
459    #[prost(string, optional, tag = "3")]
460    pub aws_access_key_id: ::core::option::Option<::prost::alloc::string::String>,
461    #[prost(string, optional, tag = "4")]
462    pub aws_access_key_secret: ::core::option::Option<::prost::alloc::string::String>,
463    #[prost(string, tag = "5")]
464    pub s3_staging_dir: ::prost::alloc::string::String,
465    #[prost(string, optional, tag = "6")]
466    pub catalog_name: ::core::option::Option<::prost::alloc::string::String>,
467    #[prost(string, optional, tag = "7")]
468    pub schema_name: ::core::option::Option<::prost::alloc::string::String>,
469    #[prost(string, optional, tag = "8")]
470    pub role_arn: ::core::option::Option<::prost::alloc::string::String>,
471    #[prost(map = "string, message", tag = "9")]
472    pub engine_args: ::std::collections::HashMap<
473        ::prost::alloc::string::String,
474        super::super::arrow::v1::ScalarValue,
475    >,
476    #[prost(map = "string, message", tag = "10")]
477    pub async_engine_args: ::std::collections::HashMap<
478        ::prost::alloc::string::String,
479        super::super::arrow::v1::ScalarValue,
480    >,
481    #[prost(string, optional, tag = "11")]
482    pub work_group: ::core::option::Option<::prost::alloc::string::String>,
483}
484#[derive(Clone, PartialEq, ::prost::Message)]
485pub struct ClickhouseSource {
486    #[prost(string, tag = "1")]
487    pub name: ::prost::alloc::string::String,
488    #[prost(string, tag = "2")]
489    pub host: ::prost::alloc::string::String,
490    #[prost(string, tag = "3")]
491    pub port: ::prost::alloc::string::String,
492    #[prost(string, tag = "4")]
493    pub db: ::prost::alloc::string::String,
494    #[prost(string, tag = "5")]
495    pub user: ::prost::alloc::string::String,
496    #[prost(string, tag = "6")]
497    pub password: ::prost::alloc::string::String,
498    #[prost(bool, tag = "7")]
499    pub use_tls: bool,
500    #[prost(map = "string, message", tag = "8")]
501    pub engine_args: ::std::collections::HashMap<
502        ::prost::alloc::string::String,
503        super::super::arrow::v1::ScalarValue,
504    >,
505    #[prost(map = "string, message", tag = "9")]
506    pub async_engine_args: ::std::collections::HashMap<
507        ::prost::alloc::string::String,
508        super::super::arrow::v1::ScalarValue,
509    >,
510}
511#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
512#[repr(i32)]
513pub enum StreamSourceType {
514    Unspecified = 0,
515    Kafka = 1,
516    Kinesis = 2,
517    Pubsub = 3,
518}
519impl StreamSourceType {
520    /// String value of the enum field names used in the ProtoBuf definition.
521    ///
522    /// The values are not transformed in any way and thus are considered stable
523    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
524    pub fn as_str_name(&self) -> &'static str {
525        match self {
526            Self::Unspecified => "STREAM_SOURCE_TYPE_UNSPECIFIED",
527            Self::Kafka => "STREAM_SOURCE_TYPE_KAFKA",
528            Self::Kinesis => "STREAM_SOURCE_TYPE_KINESIS",
529            Self::Pubsub => "STREAM_SOURCE_TYPE_PUBSUB",
530        }
531    }
532    /// Creates an enum from field names used in the ProtoBuf definition.
533    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
534        match value {
535            "STREAM_SOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
536            "STREAM_SOURCE_TYPE_KAFKA" => Some(Self::Kafka),
537            "STREAM_SOURCE_TYPE_KINESIS" => Some(Self::Kinesis),
538            "STREAM_SOURCE_TYPE_PUBSUB" => Some(Self::Pubsub),
539            _ => None,
540        }
541    }
542}
543#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
544#[repr(i32)]
545pub enum DatabaseSourceType {
546    Unspecified = 0,
547    Bigquery = 1,
548    Cloudsql = 2,
549    Databricks = 3,
550    Mysql = 4,
551    Postgres = 5,
552    Redshift = 6,
553    Snowflake = 7,
554    Sqlite = 8,
555    Spanner = 9,
556    Trino = 10,
557    Dynamodb = 11,
558    Athena = 12,
559    Mssql = 13,
560}
561impl DatabaseSourceType {
562    /// String value of the enum field names used in the ProtoBuf definition.
563    ///
564    /// The values are not transformed in any way and thus are considered stable
565    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
566    pub fn as_str_name(&self) -> &'static str {
567        match self {
568            Self::Unspecified => "DATABASE_SOURCE_TYPE_UNSPECIFIED",
569            Self::Bigquery => "DATABASE_SOURCE_TYPE_BIGQUERY",
570            Self::Cloudsql => "DATABASE_SOURCE_TYPE_CLOUDSQL",
571            Self::Databricks => "DATABASE_SOURCE_TYPE_DATABRICKS",
572            Self::Mysql => "DATABASE_SOURCE_TYPE_MYSQL",
573            Self::Postgres => "DATABASE_SOURCE_TYPE_POSTGRES",
574            Self::Redshift => "DATABASE_SOURCE_TYPE_REDSHIFT",
575            Self::Snowflake => "DATABASE_SOURCE_TYPE_SNOWFLAKE",
576            Self::Sqlite => "DATABASE_SOURCE_TYPE_SQLITE",
577            Self::Spanner => "DATABASE_SOURCE_TYPE_SPANNER",
578            Self::Trino => "DATABASE_SOURCE_TYPE_TRINO",
579            Self::Dynamodb => "DATABASE_SOURCE_TYPE_DYNAMODB",
580            Self::Athena => "DATABASE_SOURCE_TYPE_ATHENA",
581            Self::Mssql => "DATABASE_SOURCE_TYPE_MSSQL",
582        }
583    }
584    /// Creates an enum from field names used in the ProtoBuf definition.
585    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
586        match value {
587            "DATABASE_SOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
588            "DATABASE_SOURCE_TYPE_BIGQUERY" => Some(Self::Bigquery),
589            "DATABASE_SOURCE_TYPE_CLOUDSQL" => Some(Self::Cloudsql),
590            "DATABASE_SOURCE_TYPE_DATABRICKS" => Some(Self::Databricks),
591            "DATABASE_SOURCE_TYPE_MYSQL" => Some(Self::Mysql),
592            "DATABASE_SOURCE_TYPE_POSTGRES" => Some(Self::Postgres),
593            "DATABASE_SOURCE_TYPE_REDSHIFT" => Some(Self::Redshift),
594            "DATABASE_SOURCE_TYPE_SNOWFLAKE" => Some(Self::Snowflake),
595            "DATABASE_SOURCE_TYPE_SQLITE" => Some(Self::Sqlite),
596            "DATABASE_SOURCE_TYPE_SPANNER" => Some(Self::Spanner),
597            "DATABASE_SOURCE_TYPE_TRINO" => Some(Self::Trino),
598            "DATABASE_SOURCE_TYPE_DYNAMODB" => Some(Self::Dynamodb),
599            "DATABASE_SOURCE_TYPE_ATHENA" => Some(Self::Athena),
600            "DATABASE_SOURCE_TYPE_MSSQL" => Some(Self::Mssql),
601            _ => None,
602        }
603    }
604}
605#[derive(Clone, PartialEq, ::prost::Message)]
606pub struct Graph {
607    #[prost(message, repeated, tag = "1")]
608    pub feature_sets: ::prost::alloc::vec::Vec<FeatureSet>,
609    #[prost(message, repeated, tag = "2")]
610    pub resolvers: ::prost::alloc::vec::Vec<Resolver>,
611    #[prost(message, repeated, tag = "3")]
612    pub stream_resolvers: ::prost::alloc::vec::Vec<StreamResolver>,
613    #[prost(message, repeated, tag = "4")]
614    pub sink_resolvers: ::prost::alloc::vec::Vec<SinkResolver>,
615    /// database_sources is deprecated; see database_sources_v2
616    #[deprecated]
617    #[prost(message, repeated, tag = "5")]
618    pub database_sources: ::prost::alloc::vec::Vec<DatabaseSource>,
619    /// stream_sources is deprecated; see stream_sources_v2
620    #[deprecated]
621    #[prost(message, repeated, tag = "6")]
622    pub stream_sources: ::prost::alloc::vec::Vec<StreamSource>,
623    #[prost(message, repeated, tag = "7")]
624    pub named_queries: ::prost::alloc::vec::Vec<NamedQuery>,
625    #[prost(message, repeated, tag = "8")]
626    pub database_sources_v2: ::prost::alloc::vec::Vec<super::v2::DatabaseSource>,
627    #[prost(message, repeated, tag = "10")]
628    pub database_source_groups: ::prost::alloc::vec::Vec<super::v2::DatabaseSourceGroup>,
629    #[prost(message, repeated, tag = "9")]
630    pub stream_sources_v2: ::prost::alloc::vec::Vec<super::v2::StreamSource>,
631    #[prost(message, repeated, tag = "11")]
632    pub model_references: ::prost::alloc::vec::Vec<ModelReference>,
633    #[prost(message, repeated, tag = "12")]
634    pub online_store_configs: ::prost::alloc::vec::Vec<OnlineStoreConfig>,
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct OverlayGraph {
638    #[prost(message, repeated, tag = "1")]
639    pub feature_sets: ::prost::alloc::vec::Vec<FeatureSet>,
640    /// New feature fields to be added to existing feature classes
641    #[prost(message, repeated, tag = "2")]
642    pub feature_fields: ::prost::alloc::vec::Vec<FeatureType>,
643    #[prost(message, repeated, tag = "3")]
644    pub resolvers: ::prost::alloc::vec::Vec<Resolver>,
645    #[prost(message, repeated, tag = "4")]
646    pub generated_sql_resolvers: ::prost::alloc::vec::Vec<SqlResolverInfo>,
647}
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct ModelReference {
650    #[prost(string, tag = "1")]
651    pub name: ::prost::alloc::string::String,
652    #[prost(message, optional, tag = "5")]
653    pub source_file_reference: ::core::option::Option<SourceFileReference>,
654    #[prost(oneof = "model_reference::Identifier", tags = "2, 3, 4")]
655    pub identifier: ::core::option::Option<model_reference::Identifier>,
656}
657/// Nested message and enum types in `ModelReference`.
658pub mod model_reference {
659    #[derive(Clone, PartialEq, ::prost::Oneof)]
660    pub enum Identifier {
661        /// The version of the model is an integer, e.g. 1, 2, 3, etc.
662        #[prost(uint64, tag = "2")]
663        Version(u64),
664        /// The alias for the model version, e.g. "latest", "staging", etc.
665        #[prost(string, tag = "3")]
666        Alias(::prost::alloc::string::String),
667        /// Asof when to pull the model with a given name
668        #[prost(message, tag = "4")]
669        AsOf(::prost_types::Timestamp),
670    }
671}
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct NamedQuery {
674    #[prost(string, tag = "1")]
675    pub name: ::prost::alloc::string::String,
676    #[prost(string, optional, tag = "2")]
677    pub query_version: ::core::option::Option<::prost::alloc::string::String>,
678    #[prost(string, repeated, tag = "3")]
679    pub input: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
680    #[prost(string, repeated, tag = "4")]
681    pub output: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
682    #[prost(string, repeated, tag = "5")]
683    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
684    #[prost(string, optional, tag = "6")]
685    pub description: ::core::option::Option<::prost::alloc::string::String>,
686    #[prost(string, optional, tag = "7")]
687    pub owner: ::core::option::Option<::prost::alloc::string::String>,
688    #[prost(map = "string, string", tag = "8")]
689    pub meta: ::std::collections::HashMap<
690        ::prost::alloc::string::String,
691        ::prost::alloc::string::String,
692    >,
693    #[prost(map = "string, message", tag = "9")]
694    pub staleness: ::std::collections::HashMap<
695        ::prost::alloc::string::String,
696        ::prost_types::Duration,
697    >,
698    #[prost(map = "string, string", tag = "10")]
699    pub planner_options: ::std::collections::HashMap<
700        ::prost::alloc::string::String,
701        ::prost::alloc::string::String,
702    >,
703    #[prost(string, tag = "11")]
704    pub file_name: ::prost::alloc::string::String,
705    /// required
706    #[prost(string, optional, tag = "12")]
707    pub deployment_id: ::core::option::Option<::prost::alloc::string::String>,
708    #[prost(message, optional, tag = "13")]
709    pub source_file_reference: ::core::option::Option<SourceFileReference>,
710    #[prost(string, repeated, tag = "14")]
711    pub additional_logged_features: ::prost::alloc::vec::Vec<
712        ::prost::alloc::string::String,
713    >,
714    #[prost(bool, optional, tag = "15")]
715    pub valid_plan_not_required: ::core::option::Option<bool>,
716}
717#[derive(Clone, PartialEq, ::prost::Message)]
718pub struct FeatureSet {
719    #[prost(string, tag = "1")]
720    pub name: ::prost::alloc::string::String,
721    #[prost(message, repeated, tag = "2")]
722    pub features: ::prost::alloc::vec::Vec<FeatureType>,
723    #[prost(message, optional, tag = "3")]
724    pub max_staleness_duration: ::core::option::Option<::prost_types::Duration>,
725    #[prost(bool, tag = "4")]
726    pub is_singleton: bool,
727    #[prost(string, repeated, tag = "5")]
728    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
729    #[prost(string, optional, tag = "6")]
730    pub owner: ::core::option::Option<::prost::alloc::string::String>,
731    /// The docstring of the class on which the features are defined.
732    #[prost(string, optional, tag = "7")]
733    pub doc: ::core::option::Option<::prost::alloc::string::String>,
734    #[prost(bool, optional, tag = "8")]
735    pub etl_offline_to_online: ::core::option::Option<bool>,
736    #[prost(string, optional, tag = "9")]
737    pub class_path: ::core::option::Option<::prost::alloc::string::String>,
738    #[prost(string, optional, tag = "10")]
739    pub online_store_config: ::core::option::Option<::prost::alloc::string::String>,
740}
741#[derive(Clone, PartialEq, ::prost::Message)]
742pub struct FeatureType {
743    #[prost(oneof = "feature_type::Type", tags = "1, 2, 3, 4, 5, 6")]
744    pub r#type: ::core::option::Option<feature_type::Type>,
745}
746/// Nested message and enum types in `FeatureType`.
747pub mod feature_type {
748    #[derive(Clone, PartialEq, ::prost::Oneof)]
749    pub enum Type {
750        #[prost(message, tag = "1")]
751        Scalar(super::ScalarFeatureType),
752        #[prost(message, tag = "2")]
753        HasOne(super::HasOneFeatureType),
754        #[prost(message, tag = "3")]
755        HasMany(super::HasManyFeatureType),
756        #[prost(message, tag = "4")]
757        FeatureTime(super::FeatureTimeFeatureType),
758        #[prost(message, tag = "5")]
759        Windowed(super::WindowedFeatureType),
760        #[prost(message, tag = "6")]
761        GroupBy(super::GroupByFeatureType),
762    }
763}
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct FeatureReference {
766    #[prost(string, tag = "1")]
767    pub name: ::prost::alloc::string::String,
768    #[prost(string, tag = "2")]
769    pub namespace: ::prost::alloc::string::String,
770    #[prost(message, repeated, tag = "3")]
771    pub path: ::prost::alloc::vec::Vec<FeatureReference>,
772    #[prost(message, optional, tag = "4")]
773    pub df: ::core::option::Option<DataFrameType>,
774}
775#[derive(Clone, PartialEq, ::prost::Message)]
776pub struct DataFrameType {
777    #[prost(string, tag = "1")]
778    pub root_namespace: ::prost::alloc::string::String,
779    #[prost(message, repeated, tag = "2")]
780    pub required_columns: ::prost::alloc::vec::Vec<FeatureReference>,
781    #[prost(message, repeated, tag = "3")]
782    pub optional_columns: ::prost::alloc::vec::Vec<FeatureReference>,
783    #[prost(message, optional, tag = "4")]
784    pub filter: ::core::option::Option<super::super::expression::v1::LogicalExprNode>,
785    #[prost(uint64, optional, tag = "5")]
786    pub limit: ::core::option::Option<u64>,
787}
788#[derive(Clone, PartialEq, ::prost::Message)]
789pub struct GroupByFeatureType {
790    #[prost(string, tag = "1")]
791    pub name: ::prost::alloc::string::String,
792    #[prost(string, tag = "2")]
793    pub namespace: ::prost::alloc::string::String,
794    #[prost(bool, tag = "3")]
795    pub is_nullable: bool,
796    #[prost(uint64, optional, tag = "4")]
797    pub internal_version: ::core::option::Option<u64>,
798    #[prost(message, optional, tag = "5")]
799    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
800    #[prost(message, optional, tag = "6")]
801    pub aggregation: ::core::option::Option<WindowAggregation>,
802    #[prost(message, repeated, tag = "7")]
803    pub window_durations: ::prost::alloc::vec::Vec<::prost_types::Duration>,
804    #[prost(message, optional, tag = "8")]
805    pub expression: ::core::option::Option<
806        super::super::expression::v1::LogicalExprNode,
807    >,
808    #[prost(message, optional, tag = "9")]
809    pub default_value: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
810    #[prost(string, repeated, tag = "10")]
811    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
812    #[prost(string, optional, tag = "11")]
813    pub description: ::core::option::Option<::prost::alloc::string::String>,
814    #[prost(string, optional, tag = "12")]
815    pub owner: ::core::option::Option<::prost::alloc::string::String>,
816    #[prost(message, repeated, tag = "13")]
817    pub validations: ::prost::alloc::vec::Vec<FeatureValidation>,
818    #[prost(string, tag = "14")]
819    pub attribute_name: ::prost::alloc::string::String,
820    #[prost(string, tag = "15")]
821    pub unversioned_attribute_name: ::prost::alloc::string::String,
822}
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct ScalarFeatureType {
825    #[prost(string, tag = "1")]
826    pub name: ::prost::alloc::string::String,
827    #[prost(string, tag = "2")]
828    pub namespace: ::prost::alloc::string::String,
829    #[prost(bool, tag = "3")]
830    pub is_autogenerated: bool,
831    #[prost(bool, tag = "4")]
832    pub no_display: bool,
833    #[prost(bool, tag = "5")]
834    pub is_primary: bool,
835    #[prost(bool, tag = "6")]
836    pub is_nullable: bool,
837    #[prost(uint64, optional, tag = "7")]
838    pub internal_version: ::core::option::Option<u64>,
839    /// This represents whatever arg the user passed into the `feature()` call.
840    /// If both set, this should take precedence over the value in `FeatureSet`.
841    /// If unset here, the value in `FeatureSet` should be used.
842    #[prost(message, optional, tag = "8")]
843    pub max_staleness_duration: ::core::option::Option<::prost_types::Duration>,
844    #[prost(message, optional, tag = "10")]
845    pub offline_ttl_duration: ::core::option::Option<::prost_types::Duration>,
846    #[prost(message, optional, tag = "11")]
847    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
848    #[prost(message, optional, tag = "12")]
849    pub version: ::core::option::Option<VersionInfo>,
850    #[prost(message, optional, tag = "13")]
851    pub window_info: ::core::option::Option<WindowInfo>,
852    #[prost(message, optional, tag = "14")]
853    pub default_value: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
854    #[prost(string, repeated, tag = "15")]
855    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
856    #[prost(string, optional, tag = "16")]
857    pub description: ::core::option::Option<::prost::alloc::string::String>,
858    #[prost(string, optional, tag = "17")]
859    pub owner: ::core::option::Option<::prost::alloc::string::String>,
860    #[prost(message, optional, tag = "18")]
861    pub expression: ::core::option::Option<
862        super::super::expression::v1::LogicalExprNode,
863    >,
864    #[prost(message, repeated, tag = "19")]
865    pub validations: ::prost::alloc::vec::Vec<FeatureValidation>,
866    #[prost(message, optional, tag = "20")]
867    pub last_for: ::core::option::Option<FeatureReference>,
868    /// This represents whatever arg the user passed into the `feature()` call.
869    /// If both set, this should take precedence over the value in `FeatureSet`.
870    /// If unset here, the value in `FeatureSet` should be used.
871    #[prost(bool, optional, tag = "21")]
872    pub etl_offline_to_online: ::core::option::Option<bool>,
873    #[prost(bool, tag = "22")]
874    pub is_distance_pseudofeature: bool,
875    #[prost(string, tag = "23")]
876    pub attribute_name: ::prost::alloc::string::String,
877    /// Whether the user marked the feature as deprecated.
878    #[prost(bool, tag = "24")]
879    pub is_deprecated: bool,
880    #[prost(enumeration = "CacheStrategy", tag = "25")]
881    pub cache_strategy: i32,
882    /// optional because proto default is false, but chalk defaults to true
883    #[prost(bool, optional, tag = "26")]
884    pub store_online: ::core::option::Option<bool>,
885    /// optional because proto default is false, but chalk defaults to true
886    #[prost(bool, optional, tag = "27")]
887    pub store_offline: ::core::option::Option<bool>,
888    #[prost(string, tag = "28")]
889    pub unversioned_attribute_name: ::prost::alloc::string::String,
890    #[prost(message, optional, tag = "29")]
891    pub rich_type_info: ::core::option::Option<FeatureRichTypeInfo>,
892    #[prost(message, optional, tag = "30")]
893    pub expression_definition_location: ::core::option::Option<
894        super::super::lsp::v1::Location,
895    >,
896    #[prost(message, optional, tag = "31")]
897    pub offline_expression: ::core::option::Option<
898        super::super::expression::v1::LogicalExprNode,
899    >,
900}
901#[derive(Clone, PartialEq, ::prost::Message)]
902pub struct HasOneFeatureType {
903    #[prost(string, tag = "1")]
904    pub name: ::prost::alloc::string::String,
905    #[prost(string, tag = "2")]
906    pub namespace: ::prost::alloc::string::String,
907    #[prost(string, tag = "3")]
908    pub foreign_namespace: ::prost::alloc::string::String,
909    #[prost(message, optional, tag = "4")]
910    pub join: ::core::option::Option<super::super::expression::v1::LogicalExprNode>,
911    #[prost(bool, tag = "5")]
912    pub is_nullable: bool,
913    #[prost(bool, tag = "6")]
914    pub is_autogenerated: bool,
915    #[prost(string, repeated, tag = "7")]
916    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
917    #[prost(string, optional, tag = "8")]
918    pub description: ::core::option::Option<::prost::alloc::string::String>,
919    #[prost(string, optional, tag = "9")]
920    pub owner: ::core::option::Option<::prost::alloc::string::String>,
921    #[prost(string, tag = "10")]
922    pub attribute_name: ::prost::alloc::string::String,
923    #[prost(string, tag = "11")]
924    pub unversioned_attribute_name: ::prost::alloc::string::String,
925}
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct HasManyFeatureType {
928    #[prost(string, tag = "1")]
929    pub name: ::prost::alloc::string::String,
930    #[prost(string, tag = "2")]
931    pub namespace: ::prost::alloc::string::String,
932    #[prost(string, tag = "3")]
933    pub foreign_namespace: ::prost::alloc::string::String,
934    #[prost(message, optional, tag = "4")]
935    pub join: ::core::option::Option<super::super::expression::v1::LogicalExprNode>,
936    #[prost(bool, tag = "5")]
937    pub is_autogenerated: bool,
938    #[prost(message, optional, tag = "6")]
939    pub max_staleness_duration: ::core::option::Option<::prost_types::Duration>,
940    #[prost(string, repeated, tag = "7")]
941    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
942    #[prost(string, optional, tag = "8")]
943    pub description: ::core::option::Option<::prost::alloc::string::String>,
944    #[prost(string, optional, tag = "9")]
945    pub owner: ::core::option::Option<::prost::alloc::string::String>,
946    #[prost(string, tag = "10")]
947    pub attribute_name: ::prost::alloc::string::String,
948    #[prost(string, tag = "11")]
949    pub unversioned_attribute_name: ::prost::alloc::string::String,
950    #[prost(uint64, optional, tag = "12")]
951    pub online_store_max_items: ::core::option::Option<u64>,
952}
953#[derive(Clone, PartialEq, ::prost::Message)]
954pub struct FeatureTimeFeatureType {
955    #[prost(string, tag = "1")]
956    pub name: ::prost::alloc::string::String,
957    #[prost(string, tag = "2")]
958    pub namespace: ::prost::alloc::string::String,
959    #[prost(bool, tag = "3")]
960    pub is_autogenerated: bool,
961    #[prost(string, repeated, tag = "4")]
962    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
963    #[prost(string, optional, tag = "5")]
964    pub description: ::core::option::Option<::prost::alloc::string::String>,
965    #[prost(string, optional, tag = "6")]
966    pub owner: ::core::option::Option<::prost::alloc::string::String>,
967    #[prost(string, tag = "7")]
968    pub attribute_name: ::prost::alloc::string::String,
969}
970#[derive(Clone, PartialEq, ::prost::Message)]
971pub struct WindowedFeatureType {
972    #[prost(string, tag = "1")]
973    pub name: ::prost::alloc::string::String,
974    #[prost(string, tag = "2")]
975    pub namespace: ::prost::alloc::string::String,
976    #[prost(bool, tag = "3")]
977    pub is_autogenerated: bool,
978    #[prost(message, repeated, tag = "4")]
979    pub window_durations: ::prost::alloc::vec::Vec<::prost_types::Duration>,
980    #[prost(string, tag = "5")]
981    pub attribute_name: ::prost::alloc::string::String,
982    #[prost(string, tag = "6")]
983    pub unversioned_attribute_name: ::prost::alloc::string::String,
984}
985#[derive(Clone, PartialEq, ::prost::Message)]
986pub struct WindowAggregation {
987    #[prost(string, tag = "1")]
988    pub namespace: ::prost::alloc::string::String,
989    #[prost(message, repeated, tag = "2")]
990    pub group_by: ::prost::alloc::vec::Vec<FeatureReference>,
991    #[prost(message, optional, tag = "3")]
992    pub bucket_duration: ::core::option::Option<::prost_types::Duration>,
993    #[prost(string, tag = "4")]
994    pub aggregation: ::prost::alloc::string::String,
995    #[prost(message, optional, tag = "5")]
996    pub aggregate_on: ::core::option::Option<FeatureReference>,
997    #[prost(message, optional, tag = "6")]
998    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
999    #[prost(message, repeated, tag = "7")]
1000    pub filters: ::prost::alloc::vec::Vec<super::super::expression::v1::LogicalExprNode>,
1001    /// The resolver to use for back-filling the materialized aggregate.
1002    /// If not provided, the data will be back filled using the resolver
1003    /// that would run for an offline query.
1004    #[prost(string, optional, tag = "8")]
1005    pub backfill_resolver: ::core::option::Option<::prost::alloc::string::String>,
1006    /// The amount of time before the start of the previous backfill
1007    /// to consider when running the backfill resolver. Set this parameter
1008    /// to the be equal to the latest arriving data in the backfill window.
1009    #[prost(message, optional, tag = "9")]
1010    pub backfill_lookback_duration: ::core::option::Option<::prost_types::Duration>,
1011    /// The time at which to start back filling the materialized aggregate.
1012    /// If not provided, the backfill consider the earliest available data returned
1013    /// by the `backfill_resolver`.
1014    #[prost(message, optional, tag = "10")]
1015    pub backfill_start_time: ::core::option::Option<::prost_types::Timestamp>,
1016    /// The resolver to use for continuous updates to the materialized aggregate.
1017    /// If not provided, the data will be updated using the resolver that would run
1018    /// for an online query.
1019    #[prost(string, optional, tag = "11")]
1020    pub continuous_resolver: ::core::option::Option<::prost::alloc::string::String>,
1021    /// The period for which to use the continuous resolver, instead
1022    /// of relying upon the last backfill. If not provided, and a continuous
1023    /// resolver is provided, this will be set to backfill_lookback_duration.
1024    #[prost(message, optional, tag = "12")]
1025    pub continuous_buffer_duration: ::core::option::Option<::prost_types::Duration>,
1026    /// A crontab or duration string to specify the schedule for back filling the
1027    /// materialized aggregate.
1028    #[prost(string, optional, tag = "13")]
1029    pub backfill_schedule: ::core::option::Option<::prost::alloc::string::String>,
1030    /// The lower bound of the first bucket. All buckets are aligned to this time.
1031    #[prost(message, optional, tag = "14")]
1032    pub bucket_start: ::core::option::Option<::prost_types::Timestamp>,
1033    /// The 'k' arg of approx_top_k.
1034    #[prost(int64, optional, tag = "15")]
1035    pub approx_top_k_arg_k: ::core::option::Option<i64>,
1036}
1037#[derive(Clone, PartialEq, ::prost::Message)]
1038pub struct WindowInfo {
1039    #[prost(message, optional, tag = "1")]
1040    pub duration: ::core::option::Option<::prost_types::Duration>,
1041    #[prost(message, optional, tag = "2")]
1042    pub aggregation: ::core::option::Option<WindowAggregation>,
1043}
1044#[derive(Clone, PartialEq, ::prost::Message)]
1045pub struct FeatureInput {
1046    #[prost(message, optional, tag = "1")]
1047    pub feature: ::core::option::Option<FeatureReference>,
1048    #[prost(message, optional, tag = "2")]
1049    pub default_value: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
1050}
1051#[derive(Clone, PartialEq, ::prost::Message)]
1052pub struct ResolverInput {
1053    #[prost(oneof = "resolver_input::Annotation", tags = "1, 2, 3")]
1054    pub annotation: ::core::option::Option<resolver_input::Annotation>,
1055}
1056/// Nested message and enum types in `ResolverInput`.
1057pub mod resolver_input {
1058    #[derive(Clone, PartialEq, ::prost::Oneof)]
1059    pub enum Annotation {
1060        #[prost(message, tag = "1")]
1061        Feature(super::FeatureInput),
1062        #[prost(message, tag = "2")]
1063        Df(super::DataFrameType),
1064        #[prost(message, tag = "3")]
1065        State(super::ResolverState),
1066    }
1067}
1068#[derive(Clone, PartialEq, ::prost::Message)]
1069pub struct ResolverOutput {
1070    #[prost(oneof = "resolver_output::Annotation", tags = "1, 2")]
1071    pub annotation: ::core::option::Option<resolver_output::Annotation>,
1072}
1073/// Nested message and enum types in `ResolverOutput`.
1074pub mod resolver_output {
1075    #[derive(Clone, PartialEq, ::prost::Oneof)]
1076    pub enum Annotation {
1077        #[prost(message, tag = "1")]
1078        Feature(super::FeatureReference),
1079        #[prost(message, tag = "2")]
1080        Df(super::DataFrameType),
1081    }
1082}
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct Resolver {
1085    #[prost(string, tag = "1")]
1086    pub fqn: ::prost::alloc::string::String,
1087    #[prost(enumeration = "ResolverKind", tag = "2")]
1088    pub kind: i32,
1089    #[prost(message, repeated, tag = "3")]
1090    pub inputs: ::prost::alloc::vec::Vec<ResolverInput>,
1091    #[prost(message, repeated, tag = "4")]
1092    pub outputs: ::prost::alloc::vec::Vec<ResolverOutput>,
1093    #[prost(bool, tag = "5")]
1094    pub is_generator: bool,
1095    /// data_sources is deprecated; see data_sources_v2
1096    #[deprecated]
1097    #[prost(message, repeated, tag = "6")]
1098    pub data_sources: ::prost::alloc::vec::Vec<DatabaseSourceReference>,
1099    #[prost(string, optional, tag = "7")]
1100    pub machine_type: ::core::option::Option<::prost::alloc::string::String>,
1101    #[prost(string, repeated, tag = "8")]
1102    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1103    #[prost(string, optional, tag = "9")]
1104    pub owner: ::core::option::Option<::prost::alloc::string::String>,
1105    /// The docstring of the python function
1106    #[prost(string, optional, tag = "10")]
1107    pub doc: ::core::option::Option<::prost::alloc::string::String>,
1108    #[prost(string, repeated, tag = "11")]
1109    pub environments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1110    #[prost(message, optional, tag = "12")]
1111    pub timeout_duration: ::core::option::Option<::prost_types::Duration>,
1112    #[prost(message, optional, tag = "13")]
1113    pub schedule: ::core::option::Option<Schedule>,
1114    #[prost(message, optional, tag = "14")]
1115    pub when: ::core::option::Option<super::super::expression::v1::LogicalExprNode>,
1116    #[prost(message, optional, tag = "15")]
1117    pub cron_filter: ::core::option::Option<CronFilterWithFeatureArgs>,
1118    #[prost(message, optional, tag = "16")]
1119    pub function: ::core::option::Option<FunctionReference>,
1120    #[prost(enumeration = "ResourceHint", tag = "17")]
1121    pub resource_hint: i32,
1122    #[prost(bool, tag = "18")]
1123    pub is_static: bool,
1124    #[prost(enumeration = "AcceleratePython", tag = "31")]
1125    pub accelerate_python: i32,
1126    #[prost(bool, optional, tag = "19")]
1127    pub is_total: ::core::option::Option<bool>,
1128    #[prost(string, repeated, tag = "20")]
1129    pub unique_on: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1130    #[prost(string, repeated, tag = "21")]
1131    pub partitioned_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1132    #[prost(message, repeated, tag = "22")]
1133    pub data_sources_v2: ::prost::alloc::vec::Vec<super::v2::DatabaseSourceReference>,
1134    #[prost(message, optional, tag = "23")]
1135    pub static_operation: ::core::option::Option<
1136        super::super::expression::v1::LogicalExprNode,
1137    >,
1138    #[prost(message, optional, tag = "30")]
1139    pub static_operation_dataframe: ::core::option::Option<
1140        super::super::dataframe::v1::DataFramePlan,
1141    >,
1142    #[prost(message, optional, tag = "24")]
1143    pub sql_settings: ::core::option::Option<SqlResolverSettings>,
1144    #[prost(string, optional, tag = "25")]
1145    pub resource_group: ::core::option::Option<::prost::alloc::string::String>,
1146    #[prost(string, optional, tag = "26")]
1147    pub output_row_order: ::core::option::Option<::prost::alloc::string::String>,
1148    #[prost(string, optional, tag = "27")]
1149    pub venv: ::core::option::Option<::prost::alloc::string::String>,
1150    /// Applied to the results of running a resolver. Currently only enabled for
1151    /// SQL resolvers.
1152    #[prost(oneof = "resolver::Postprocessing", tags = "28, 29")]
1153    pub postprocessing: ::core::option::Option<resolver::Postprocessing>,
1154}
1155/// Nested message and enum types in `Resolver`.
1156pub mod resolver {
1157    /// Applied to the results of running a resolver. Currently only enabled for
1158    /// SQL resolvers.
1159    #[derive(Clone, PartialEq, ::prost::Oneof)]
1160    pub enum Postprocessing {
1161        /// Column projection to apply to the resolver outputs -- result should be a
1162        /// struct or list<struct> that can be unpacked into a table w/ the same
1163        /// schema as the original sql outputs
1164        #[prost(message, tag = "28")]
1165        UnderscoreExpr(super::super::super::expression::v1::LogicalExprNode),
1166        /// LazyFrame table operation to apply on the SQL outputs
1167        #[prost(message, tag = "29")]
1168        LazyframeExpr(super::super::super::expression::v1::LogicalExprNode),
1169    }
1170}
1171#[derive(Clone, PartialEq, ::prost::Message)]
1172pub struct SinkResolver {
1173    #[prost(string, tag = "1")]
1174    pub fqn: ::prost::alloc::string::String,
1175    #[prost(message, repeated, tag = "2")]
1176    pub inputs: ::prost::alloc::vec::Vec<ResolverInput>,
1177    #[prost(uint64, optional, tag = "3")]
1178    pub buffer_size: ::core::option::Option<u64>,
1179    #[prost(message, optional, tag = "4")]
1180    pub debounce_duration: ::core::option::Option<::prost_types::Duration>,
1181    #[prost(message, optional, tag = "5")]
1182    pub max_delay_duration: ::core::option::Option<::prost_types::Duration>,
1183    #[prost(bool, tag = "6")]
1184    pub upsert: bool,
1185    #[prost(string, optional, tag = "9")]
1186    pub machine_type: ::core::option::Option<::prost::alloc::string::String>,
1187    #[prost(string, optional, tag = "10")]
1188    pub doc: ::core::option::Option<::prost::alloc::string::String>,
1189    #[prost(string, optional, tag = "11")]
1190    pub owner: ::core::option::Option<::prost::alloc::string::String>,
1191    #[prost(string, repeated, tag = "12")]
1192    pub environments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1193    #[prost(message, optional, tag = "13")]
1194    pub timeout_duration: ::core::option::Option<::prost_types::Duration>,
1195    #[prost(message, optional, tag = "14")]
1196    pub function: ::core::option::Option<FunctionReference>,
1197    #[prost(oneof = "sink_resolver::Integration", tags = "7, 8, 15, 16")]
1198    pub integration: ::core::option::Option<sink_resolver::Integration>,
1199}
1200/// Nested message and enum types in `SinkResolver`.
1201pub mod sink_resolver {
1202    #[derive(Clone, PartialEq, ::prost::Oneof)]
1203    pub enum Integration {
1204        /// stream_source is deprecated; see stream_source_v2
1205        #[prost(message, tag = "7")]
1206        StreamSource(super::StreamSourceReference),
1207        /// database_source is deprecated; see database_source_v2
1208        #[prost(message, tag = "8")]
1209        DatabaseSource(super::DatabaseSourceReference),
1210        #[prost(message, tag = "15")]
1211        StreamSourceV2(super::super::v2::StreamSourceReference),
1212        #[prost(message, tag = "16")]
1213        DatabaseSourceV2(super::super::v2::DatabaseSourceReference),
1214    }
1215}
1216#[derive(Clone, PartialEq, ::prost::Message)]
1217pub struct ParseInfo {
1218    #[prost(message, optional, tag = "1")]
1219    pub parse_function: ::core::option::Option<FunctionReference>,
1220    #[prost(message, optional, tag = "2")]
1221    pub parse_function_input_type: ::core::option::Option<
1222        super::super::arrow::v1::ArrowType,
1223    >,
1224    #[prost(message, optional, tag = "3")]
1225    pub parse_function_output_type: ::core::option::Option<
1226        super::super::arrow::v1::ArrowType,
1227    >,
1228    #[prost(bool, tag = "4")]
1229    pub is_parse_function_output_optional: bool,
1230    /// These are the `__name__` of the type of the parameter/return annotations.
1231    #[prost(string, tag = "5")]
1232    pub parse_function_input_type_name: ::prost::alloc::string::String,
1233    #[prost(string, tag = "6")]
1234    pub parse_function_output_type_name: ::prost::alloc::string::String,
1235    #[prost(oneof = "parse_info::ParseExpression", tags = "7")]
1236    pub parse_expression: ::core::option::Option<parse_info::ParseExpression>,
1237}
1238/// Nested message and enum types in `ParseInfo`.
1239pub mod parse_info {
1240    #[derive(Clone, PartialEq, ::prost::Oneof)]
1241    pub enum ParseExpression {
1242        #[prost(message, tag = "7")]
1243        UnderscoreExpr(super::super::super::expression::v1::LogicalExprNode),
1244    }
1245}
1246/// Feature defined as a projection on some input table.
1247/// In the future we may want to distinguish between underscore & ChalkDataFrame
1248/// projection expr's, since they have the same proto representation but
1249/// different semantics
1250#[derive(Clone, PartialEq, ::prost::Message)]
1251pub struct FeatureExpression {
1252    #[prost(oneof = "feature_expression::Expr", tags = "1")]
1253    pub expr: ::core::option::Option<feature_expression::Expr>,
1254}
1255/// Nested message and enum types in `FeatureExpression`.
1256pub mod feature_expression {
1257    #[derive(Clone, PartialEq, ::prost::Oneof)]
1258    pub enum Expr {
1259        /// chalk.expression.v1.LogicalExprNode dataframe_expr = 1;
1260        #[prost(message, tag = "1")]
1261        UnderscoreExpr(super::super::super::expression::v1::LogicalExprNode),
1262    }
1263}
1264#[derive(Clone, PartialEq, ::prost::Message)]
1265pub struct StreamResolver {
1266    #[prost(string, tag = "1")]
1267    pub fqn: ::prost::alloc::string::String,
1268    #[prost(message, repeated, tag = "2")]
1269    pub params: ::prost::alloc::vec::Vec<StreamResolverParam>,
1270    #[prost(message, repeated, tag = "3")]
1271    pub outputs: ::prost::alloc::vec::Vec<ResolverOutput>,
1272    #[prost(message, optional, tag = "4")]
1273    pub explicit_schema: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1274    #[prost(message, repeated, tag = "5")]
1275    pub keys: ::prost::alloc::vec::Vec<StreamKey>,
1276    #[deprecated]
1277    #[prost(message, optional, tag = "6")]
1278    pub source: ::core::option::Option<StreamSourceReference>,
1279    #[prost(message, optional, tag = "7")]
1280    pub parse_info: ::core::option::Option<ParseInfo>,
1281    #[prost(enumeration = "WindowMode", tag = "8")]
1282    pub mode: i32,
1283    #[prost(string, repeated, tag = "9")]
1284    pub environments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1285    #[prost(message, optional, tag = "10")]
1286    pub timeout_duration: ::core::option::Option<::prost_types::Duration>,
1287    #[prost(string, optional, tag = "11")]
1288    pub timestamp_attribute_name: ::core::option::Option<::prost::alloc::string::String>,
1289    #[prost(string, optional, tag = "12")]
1290    pub owner: ::core::option::Option<::prost::alloc::string::String>,
1291    #[prost(string, optional, tag = "13")]
1292    pub doc: ::core::option::Option<::prost::alloc::string::String>,
1293    #[prost(string, optional, tag = "14")]
1294    pub machine_type: ::core::option::Option<::prost::alloc::string::String>,
1295    #[prost(message, optional, tag = "15")]
1296    pub function: ::core::option::Option<FunctionReference>,
1297    #[prost(message, optional, tag = "16")]
1298    pub source_v2: ::core::option::Option<super::v2::StreamSourceReference>,
1299    #[prost(bool, tag = "17")]
1300    pub updates_materialized_aggregations: bool,
1301    /// Represents features computed as static projection expressions on an input
1302    /// message.
1303    #[prost(map = "string, message", tag = "18")]
1304    pub feature_expressions: ::std::collections::HashMap<
1305        ::prost::alloc::string::String,
1306        FeatureExpression,
1307    >,
1308    #[prost(message, optional, tag = "19")]
1309    pub message_producer: ::core::option::Option<StreamResolverMessageProducerParsed>,
1310    /// Skip online persistence (no writes to Redis/DynamoDB/etc). Default: false
1311    /// Note: Only applies to native streaming (make_stream_resolver)
1312    #[prost(bool, tag = "20")]
1313    pub skip_online: bool,
1314    /// Skip offline persistence (no result bus publishing for offline storage). Default: false
1315    /// Note: Only applies to native streaming (make_stream_resolver)
1316    #[prost(bool, tag = "21")]
1317    pub skip_offline: bool,
1318}
1319#[derive(Clone, PartialEq, ::prost::Message)]
1320pub struct StreamResolverMessageProducerParsed {
1321    #[prost(message, optional, tag = "1")]
1322    pub send_to: ::core::option::Option<super::v2::StreamSourceReference>,
1323    #[prost(string, repeated, tag = "2")]
1324    pub output_features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1325    #[prost(map = "string, message", tag = "3")]
1326    pub transformations: ::std::collections::HashMap<
1327        ::prost::alloc::string::String,
1328        FeatureExpression,
1329    >,
1330    #[prost(string, tag = "4")]
1331    pub format: ::prost::alloc::string::String,
1332}
1333#[derive(Clone, PartialEq, ::prost::Message)]
1334pub struct ResolverState {
1335    #[prost(message, optional, tag = "1")]
1336    pub initial: ::core::option::Option<super::super::arrow::v1::ScalarValue>,
1337    #[prost(message, optional, tag = "2")]
1338    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1339}
1340#[derive(Clone, PartialEq, ::prost::Message)]
1341pub struct StreamResolverParam {
1342    #[prost(oneof = "stream_resolver_param::Type", tags = "1, 2, 3")]
1343    pub r#type: ::core::option::Option<stream_resolver_param::Type>,
1344}
1345/// Nested message and enum types in `StreamResolverParam`.
1346pub mod stream_resolver_param {
1347    #[derive(Clone, PartialEq, ::prost::Oneof)]
1348    pub enum Type {
1349        #[prost(message, tag = "1")]
1350        Message(super::StreamResolverParamMessage),
1351        #[prost(message, tag = "2")]
1352        MessageWindow(super::StreamResolverParamMessageWindow),
1353        #[prost(message, tag = "3")]
1354        State(super::ResolverState),
1355    }
1356}
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct StreamResolverParamMessageWindow {
1359    #[prost(string, tag = "1")]
1360    pub name: ::prost::alloc::string::String,
1361    #[prost(message, optional, tag = "2")]
1362    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1363}
1364#[derive(Clone, PartialEq, ::prost::Message)]
1365pub struct StreamResolverParamMessage {
1366    #[prost(string, tag = "1")]
1367    pub name: ::prost::alloc::string::String,
1368    #[prost(message, optional, tag = "2")]
1369    pub arrow_type: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1370    /// If the message type is a struct, this specifies the struct definition.
1371    /// (e.g. basemodel/dataclass/protobuf)
1372    #[prost(oneof = "stream_resolver_param_message::StructType", tags = "3, 4, 5")]
1373    pub struct_type: ::core::option::Option<stream_resolver_param_message::StructType>,
1374}
1375/// Nested message and enum types in `StreamResolverParamMessage`.
1376pub mod stream_resolver_param_message {
1377    /// If the message type is a struct, this specifies the struct definition.
1378    /// (e.g. basemodel/dataclass/protobuf)
1379    #[derive(Clone, PartialEq, ::prost::Oneof)]
1380    pub enum StructType {
1381        #[prost(message, tag = "3")]
1382        Empty(()),
1383        #[prost(message, tag = "4")]
1384        Struct(super::FunctionGlobalCapturedStruct),
1385        #[prost(message, tag = "5")]
1386        Proto(super::FunctionGlobalCapturedProto),
1387    }
1388}
1389#[derive(Clone, PartialEq, ::prost::Message)]
1390pub struct FunctionReference {
1391    #[prost(string, tag = "1")]
1392    pub name: ::prost::alloc::string::String,
1393    #[prost(string, tag = "2")]
1394    pub module: ::prost::alloc::string::String,
1395    #[prost(string, tag = "3")]
1396    pub file_name: ::prost::alloc::string::String,
1397    #[prost(string, tag = "4")]
1398    pub function_definition: ::prost::alloc::string::String,
1399    #[prost(int32, optional, tag = "5")]
1400    pub source_line: ::core::option::Option<i32>,
1401    #[prost(message, repeated, tag = "6")]
1402    pub captured_globals: ::prost::alloc::vec::Vec<FunctionReferenceCapturedGlobal>,
1403}
1404#[derive(Clone, PartialEq, ::prost::Message)]
1405pub struct FunctionReferenceCapturedGlobal {
1406    #[prost(string, tag = "3")]
1407    pub global_name: ::prost::alloc::string::String,
1408    #[prost(message, optional, tag = "9")]
1409    pub source_reference: ::core::option::Option<SourceFileReference>,
1410    #[prost(
1411        oneof = "function_reference_captured_global::CapturedGlobal",
1412        tags = "1, 2, 4, 5, 7, 6, 8, 10, 11"
1413    )]
1414    pub captured_global: ::core::option::Option<
1415        function_reference_captured_global::CapturedGlobal,
1416    >,
1417}
1418/// Nested message and enum types in `FunctionReferenceCapturedGlobal`.
1419pub mod function_reference_captured_global {
1420    #[derive(Clone, PartialEq, ::prost::Oneof)]
1421    pub enum CapturedGlobal {
1422        #[prost(message, tag = "1")]
1423        Builtin(super::FunctionGlobalCapturedBuiltin),
1424        #[prost(message, tag = "2")]
1425        FeatureClass(super::FunctionGlobalCapturedFeatureClass),
1426        #[prost(message, tag = "4")]
1427        Enum(super::FunctionGlobalCapturedEnum),
1428        #[prost(message, tag = "5")]
1429        Module(super::FunctionGlobalCapturedModule),
1430        #[prost(message, tag = "7")]
1431        ModuleMember(super::FunctionGlobalCapturedModuleMember),
1432        #[prost(message, tag = "6")]
1433        Function(super::FunctionGlobalCapturedFunction),
1434        #[prost(message, tag = "8")]
1435        Struct(super::FunctionGlobalCapturedStruct),
1436        #[prost(message, tag = "10")]
1437        Variable(super::FunctionGlobalCapturedVariable),
1438        #[prost(message, tag = "11")]
1439        Proto(super::FunctionGlobalCapturedProto),
1440    }
1441}
1442#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct FunctionGlobalCapturedBuiltin {
1444    #[prost(string, tag = "1")]
1445    pub builtin_name: ::prost::alloc::string::String,
1446}
1447#[derive(Clone, PartialEq, ::prost::Message)]
1448pub struct FunctionGlobalCapturedVariable {
1449    #[prost(string, tag = "1")]
1450    pub module: ::prost::alloc::string::String,
1451    #[prost(string, tag = "2")]
1452    pub name: ::prost::alloc::string::String,
1453}
1454#[derive(Clone, PartialEq, ::prost::Message)]
1455pub struct FunctionGlobalCapturedStruct {
1456    #[prost(string, tag = "1")]
1457    pub module: ::prost::alloc::string::String,
1458    #[prost(string, tag = "2")]
1459    pub name: ::prost::alloc::string::String,
1460    #[prost(message, optional, tag = "3")]
1461    pub pa_dtype: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1462}
1463#[derive(Clone, PartialEq, ::prost::Message)]
1464pub struct FunctionGlobalCapturedEnum {
1465    #[prost(string, tag = "1")]
1466    pub module: ::prost::alloc::string::String,
1467    #[prost(string, tag = "2")]
1468    pub name: ::prost::alloc::string::String,
1469    #[prost(map = "string, message", tag = "3")]
1470    pub member_map: ::std::collections::HashMap<
1471        ::prost::alloc::string::String,
1472        super::super::arrow::v1::ScalarValue,
1473    >,
1474    #[prost(message, repeated, tag = "4")]
1475    pub bases: ::prost::alloc::vec::Vec<super::super::arrow::v1::ArrowType>,
1476}
1477#[derive(Clone, PartialEq, ::prost::Message)]
1478pub struct FunctionGlobalCapturedFeatureClass {
1479    #[prost(string, tag = "1")]
1480    pub feature_class_name: ::prost::alloc::string::String,
1481}
1482#[derive(Clone, PartialEq, ::prost::Message)]
1483pub struct FunctionGlobalCapturedModule {
1484    #[prost(string, tag = "1")]
1485    pub name: ::prost::alloc::string::String,
1486}
1487#[derive(Clone, PartialEq, ::prost::Message)]
1488pub struct FunctionGlobalCapturedModuleMember {
1489    /// Imported classes/functions, e.g. json.encoder.JSONEncoder
1490    ///
1491    /// name of the module, e.g. `json.encoder`
1492    #[prost(string, tag = "1")]
1493    pub module_name: ::prost::alloc::string::String,
1494    /// name of the class or function, e.g. `JSONEncoder``.
1495    #[prost(string, tag = "2")]
1496    pub qualname: ::prost::alloc::string::String,
1497}
1498#[derive(Clone, PartialEq, ::prost::Message)]
1499pub struct FunctionGlobalCapturedFunction {
1500    #[prost(string, tag = "1")]
1501    pub source: ::prost::alloc::string::String,
1502    #[prost(message, repeated, tag = "2")]
1503    pub captured_globals: ::prost::alloc::vec::Vec<FunctionReferenceCapturedGlobal>,
1504    #[prost(string, optional, tag = "3")]
1505    pub module: ::core::option::Option<::prost::alloc::string::String>,
1506    #[prost(string, tag = "4")]
1507    pub name: ::prost::alloc::string::String,
1508}
1509#[derive(Clone, PartialEq, ::prost::Message)]
1510pub struct FunctionGlobalCapturedProto {
1511    #[prost(string, tag = "1")]
1512    pub module: ::prost::alloc::string::String,
1513    #[prost(string, tag = "2")]
1514    pub name: ::prost::alloc::string::String,
1515    #[deprecated]
1516    #[prost(bytes = "vec", tag = "3")]
1517    pub fd: ::prost::alloc::vec::Vec<u8>,
1518    #[prost(bytes = "vec", tag = "6")]
1519    pub serialized_fd: ::prost::alloc::vec::Vec<u8>,
1520    #[prost(message, optional, tag = "4")]
1521    pub pa_dtype: ::core::option::Option<super::super::arrow::v1::ArrowType>,
1522    #[prost(string, tag = "5")]
1523    pub full_name: ::prost::alloc::string::String,
1524}
1525#[derive(Clone, PartialEq, ::prost::Message)]
1526pub struct SourceFileReference {
1527    #[prost(message, optional, tag = "1")]
1528    pub range: ::core::option::Option<super::super::lsp::v1::Range>,
1529    #[prost(string, optional, tag = "2")]
1530    pub code: ::core::option::Option<::prost::alloc::string::String>,
1531    #[prost(string, tag = "3")]
1532    pub file_name: ::prost::alloc::string::String,
1533}
1534#[derive(Clone, PartialEq, ::prost::Message)]
1535pub struct StreamKey {
1536    #[prost(string, tag = "1")]
1537    pub key: ::prost::alloc::string::String,
1538    #[prost(message, optional, tag = "2")]
1539    pub feature: ::core::option::Option<FeatureReference>,
1540}
1541#[derive(Clone, PartialEq, ::prost::Message)]
1542pub struct SqlResolverSettings {
1543    #[prost(enumeration = "Finalizer", tag = "1")]
1544    pub finalizer: i32,
1545    #[prost(message, optional, tag = "2")]
1546    pub incremental_settings: ::core::option::Option<IncrementalSettings>,
1547    #[prost(map = "string, string", tag = "3")]
1548    pub fields_root_fqn: ::std::collections::HashMap<
1549        ::prost::alloc::string::String,
1550        ::prost::alloc::string::String,
1551    >,
1552    #[prost(map = "string, string", tag = "4")]
1553    pub escaped_param_name_to_fqn: ::std::collections::HashMap<
1554        ::prost::alloc::string::String,
1555        ::prost::alloc::string::String,
1556    >,
1557}
1558#[derive(Clone, PartialEq, ::prost::Message)]
1559pub struct IncrementalSettings {
1560    #[prost(enumeration = "IncrementalMode", tag = "1")]
1561    pub mode: i32,
1562    #[prost(message, optional, tag = "2")]
1563    pub lookback_period: ::core::option::Option<::prost_types::Duration>,
1564    #[prost(string, optional, tag = "3")]
1565    pub incremental_column: ::core::option::Option<::prost::alloc::string::String>,
1566    #[prost(enumeration = "IncrementalTimestampMode", tag = "4")]
1567    pub timestamp_mode: i32,
1568}
1569#[derive(Clone, PartialEq, ::prost::Message)]
1570pub struct SqlResolverCommentDict {
1571    #[prost(bool, optional, tag = "1")]
1572    pub total: ::core::option::Option<bool>,
1573    #[prost(string, optional, tag = "2")]
1574    pub source: ::core::option::Option<::prost::alloc::string::String>,
1575    #[prost(string, optional, tag = "3")]
1576    pub resolves: ::core::option::Option<::prost::alloc::string::String>,
1577    #[prost(string, optional, tag = "4")]
1578    pub namespace: ::core::option::Option<::prost::alloc::string::String>,
1579    #[prost(message, optional, tag = "5")]
1580    pub incremental: ::core::option::Option<IncrementalSettings>,
1581    #[prost(string, repeated, tag = "6")]
1582    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1583    #[prost(string, repeated, tag = "7")]
1584    pub environment: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1585    #[prost(enumeration = "Finalizer", optional, tag = "8")]
1586    pub count: ::core::option::Option<i32>,
1587    #[prost(message, optional, tag = "9")]
1588    pub cron: ::core::option::Option<Schedule>,
1589    #[prost(string, optional, tag = "10")]
1590    pub machine_type: ::core::option::Option<::prost::alloc::string::String>,
1591    #[prost(string, optional, tag = "11")]
1592    pub owner: ::core::option::Option<::prost::alloc::string::String>,
1593    #[prost(string, optional, tag = "12")]
1594    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
1595    #[prost(string, optional, tag = "13")]
1596    pub timeout: ::core::option::Option<::prost::alloc::string::String>,
1597    #[prost(map = "string, string", tag = "14")]
1598    pub fields: ::std::collections::HashMap<
1599        ::prost::alloc::string::String,
1600        ::prost::alloc::string::String,
1601    >,
1602    #[prost(string, repeated, tag = "15")]
1603    pub unique_on: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1604    #[prost(string, repeated, tag = "16")]
1605    pub partitioned_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1606}
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct SqlResolverInfo {
1609    /// Resolver name
1610    #[prost(string, tag = "1")]
1611    pub name: ::prost::alloc::string::String,
1612    /// Filepath of the resolver, or None if it doesn't come from a file in the
1613    /// deployment.
1614    #[prost(string, optional, tag = "2")]
1615    pub filepath: ::core::option::Option<::prost::alloc::string::String>,
1616    /// Source of the SQL query
1617    #[prost(string, tag = "3")]
1618    pub sql_string: ::prost::alloc::string::String,
1619    /// This overrides any comments present in the sql string itself (e.g. `--
1620    /// tags: a,b,...`)
1621    #[prost(message, optional, tag = "4")]
1622    pub override_comment_dict: ::core::option::Option<SqlResolverCommentDict>,
1623}
1624#[derive(Clone, PartialEq, ::prost::Message)]
1625pub struct CronFilterWithFeatureArgs {
1626    #[prost(message, optional, tag = "1")]
1627    pub filter: ::core::option::Option<FunctionReference>,
1628    #[prost(message, repeated, tag = "2")]
1629    pub args: ::prost::alloc::vec::Vec<FeatureReference>,
1630}
1631#[derive(Clone, PartialEq, ::prost::Message)]
1632pub struct Schedule {
1633    #[prost(message, optional, tag = "3")]
1634    pub filter: ::core::option::Option<FunctionReference>,
1635    #[prost(message, optional, tag = "4")]
1636    pub sample: ::core::option::Option<FunctionReference>,
1637    #[prost(oneof = "schedule::Schedule", tags = "1, 2")]
1638    pub schedule: ::core::option::Option<schedule::Schedule>,
1639}
1640/// Nested message and enum types in `Schedule`.
1641pub mod schedule {
1642    #[derive(Clone, PartialEq, ::prost::Oneof)]
1643    pub enum Schedule {
1644        #[prost(string, tag = "1")]
1645        Crontab(::prost::alloc::string::String),
1646        #[prost(message, tag = "2")]
1647        Duration(::prost_types::Duration),
1648    }
1649}
1650#[derive(Clone, PartialEq, ::prost::Message)]
1651pub struct FeatureValidation {
1652    #[prost(bool, tag = "5")]
1653    pub strict: bool,
1654    #[prost(
1655        oneof = "feature_validation::Validation",
1656        tags = "1, 2, 3, 4, 6, 7, 8, 9, 10"
1657    )]
1658    pub validation: ::core::option::Option<feature_validation::Validation>,
1659}
1660/// Nested message and enum types in `FeatureValidation`.
1661pub mod feature_validation {
1662    #[derive(Clone, PartialEq, ::prost::Oneof)]
1663    pub enum Validation {
1664        /// Deprecated since they don't store the full type information (e.g.
1665        /// different numeric types) Use the *_arrow fields (6-9) instead.
1666        #[prost(float, tag = "1")]
1667        Min(f32),
1668        #[prost(float, tag = "2")]
1669        Max(f32),
1670        #[prost(uint32, tag = "3")]
1671        MinLength(u32),
1672        #[prost(uint32, tag = "4")]
1673        MaxLength(u32),
1674        #[prost(message, tag = "6")]
1675        MinArrow(super::super::super::arrow::v1::ScalarValue),
1676        #[prost(message, tag = "7")]
1677        MaxArrow(super::super::super::arrow::v1::ScalarValue),
1678        #[prost(message, tag = "8")]
1679        MinLengthArrow(super::super::super::arrow::v1::ScalarValue),
1680        #[prost(message, tag = "9")]
1681        MaxLengthArrow(super::super::super::arrow::v1::ScalarValue),
1682        #[prost(message, tag = "10")]
1683        Contains(super::super::super::arrow::v1::ScalarValue),
1684    }
1685}
1686#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1687pub struct VersionInfo {
1688    #[prost(uint32, tag = "1")]
1689    pub default: u32,
1690    #[prost(uint32, tag = "2")]
1691    pub maximum: u32,
1692}
1693#[derive(Clone, PartialEq, ::prost::Message)]
1694pub struct StrictValidation {
1695    #[prost(message, optional, tag = "1")]
1696    pub feature: ::core::option::Option<FeatureReference>,
1697    #[prost(message, repeated, tag = "2")]
1698    pub validations: ::prost::alloc::vec::Vec<FeatureValidation>,
1699}
1700#[derive(Clone, PartialEq, ::prost::Message)]
1701pub struct FeatureEncoder {
1702    #[prost(oneof = "feature_encoder::Encoder", tags = "1")]
1703    pub encoder: ::core::option::Option<feature_encoder::Encoder>,
1704}
1705/// Nested message and enum types in `FeatureEncoder`.
1706pub mod feature_encoder {
1707    #[derive(Clone, PartialEq, ::prost::Oneof)]
1708    pub enum Encoder {
1709        #[prost(message, tag = "1")]
1710        GlobalFunctionReference(super::FunctionGlobalCapturedFunction),
1711    }
1712}
1713#[derive(Clone, PartialEq, ::prost::Message)]
1714pub struct FeatureDecoder {
1715    #[prost(oneof = "feature_decoder::Decoder", tags = "1")]
1716    pub decoder: ::core::option::Option<feature_decoder::Decoder>,
1717}
1718/// Nested message and enum types in `FeatureDecoder`.
1719pub mod feature_decoder {
1720    #[derive(Clone, PartialEq, ::prost::Oneof)]
1721    pub enum Decoder {
1722        #[prost(message, tag = "1")]
1723        GlobalFunctionReference(super::FunctionGlobalCapturedFunction),
1724    }
1725}
1726/// Represents a generic typ annotation, e.g. Dict[str,
1727/// List\[Optional[SomeClass]\]] etc.
1728#[derive(Clone, PartialEq, ::prost::Message)]
1729pub struct RichClassType {
1730    #[prost(string, tag = "1")]
1731    pub module_name: ::prost::alloc::string::String,
1732    #[prost(string, tag = "2")]
1733    pub qualname: ::prost::alloc::string::String,
1734    /// The type parameters inside the \[\]
1735    #[prost(message, repeated, tag = "3")]
1736    pub params: ::prost::alloc::vec::Vec<RichClassType>,
1737}
1738#[derive(Clone, PartialEq, ::prost::Message)]
1739pub struct FeatureRichType {
1740    #[prost(oneof = "feature_rich_type::Type", tags = "1")]
1741    pub r#type: ::core::option::Option<feature_rich_type::Type>,
1742}
1743/// Nested message and enum types in `FeatureRichType`.
1744pub mod feature_rich_type {
1745    #[derive(Clone, PartialEq, ::prost::Oneof)]
1746    pub enum Type {
1747        #[prost(message, tag = "1")]
1748        ClassType(super::RichClassType),
1749    }
1750}
1751#[derive(Clone, PartialEq, ::prost::Message)]
1752pub struct FeatureRichTypeInfo {
1753    #[prost(bool, tag = "1")]
1754    pub rich_type_is_same_as_primitive_type: bool,
1755    #[prost(message, optional, tag = "2")]
1756    pub encoder: ::core::option::Option<FeatureEncoder>,
1757    #[prost(message, optional, tag = "3")]
1758    pub decoder: ::core::option::Option<FeatureDecoder>,
1759    #[prost(message, optional, tag = "4")]
1760    pub rich_type: ::core::option::Option<FeatureRichType>,
1761    #[prost(string, optional, tag = "5")]
1762    pub rich_type_name: ::core::option::Option<::prost::alloc::string::String>,
1763}
1764/// Configuration for LRU cache in front of the online store
1765#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1766pub struct LruCacheConfig {
1767    #[prost(uint32, tag = "1")]
1768    pub max_size: u32,
1769    #[prost(message, optional, tag = "2")]
1770    pub ttl: ::core::option::Option<::prost_types::Duration>,
1771    #[prost(bool, tag = "3")]
1772    pub store_cache_misses: bool,
1773}
1774/// Configuration for online store with optional LRU cache
1775#[derive(Clone, PartialEq, ::prost::Message)]
1776pub struct OnlineStoreConfig {
1777    #[prost(string, tag = "1")]
1778    pub name: ::prost::alloc::string::String,
1779    #[prost(message, optional, tag = "2")]
1780    pub lru_cache: ::core::option::Option<LruCacheConfig>,
1781    #[prost(string, repeated, tag = "3")]
1782    pub feature_namespaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1783    #[prost(message, optional, tag = "4")]
1784    pub source_file_reference: ::core::option::Option<SourceFileReference>,
1785}
1786#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1787#[repr(i32)]
1788pub enum CacheStrategy {
1789    Unspecified = 0,
1790    All = 1,
1791    NoNulls = 2,
1792    EvictNulls = 3,
1793    NoDefaults = 4,
1794    EvictDefaults = 5,
1795    NoNullsOrDefaults = 6,
1796    EvictNullsAndDefaults = 7,
1797}
1798impl CacheStrategy {
1799    /// String value of the enum field names used in the ProtoBuf definition.
1800    ///
1801    /// The values are not transformed in any way and thus are considered stable
1802    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1803    pub fn as_str_name(&self) -> &'static str {
1804        match self {
1805            Self::Unspecified => "CACHE_STRATEGY_UNSPECIFIED",
1806            Self::All => "CACHE_STRATEGY_ALL",
1807            Self::NoNulls => "CACHE_STRATEGY_NO_NULLS",
1808            Self::EvictNulls => "CACHE_STRATEGY_EVICT_NULLS",
1809            Self::NoDefaults => "CACHE_STRATEGY_NO_DEFAULTS",
1810            Self::EvictDefaults => "CACHE_STRATEGY_EVICT_DEFAULTS",
1811            Self::NoNullsOrDefaults => "CACHE_STRATEGY_NO_NULLS_OR_DEFAULTS",
1812            Self::EvictNullsAndDefaults => "CACHE_STRATEGY_EVICT_NULLS_AND_DEFAULTS",
1813        }
1814    }
1815    /// Creates an enum from field names used in the ProtoBuf definition.
1816    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1817        match value {
1818            "CACHE_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
1819            "CACHE_STRATEGY_ALL" => Some(Self::All),
1820            "CACHE_STRATEGY_NO_NULLS" => Some(Self::NoNulls),
1821            "CACHE_STRATEGY_EVICT_NULLS" => Some(Self::EvictNulls),
1822            "CACHE_STRATEGY_NO_DEFAULTS" => Some(Self::NoDefaults),
1823            "CACHE_STRATEGY_EVICT_DEFAULTS" => Some(Self::EvictDefaults),
1824            "CACHE_STRATEGY_NO_NULLS_OR_DEFAULTS" => Some(Self::NoNullsOrDefaults),
1825            "CACHE_STRATEGY_EVICT_NULLS_AND_DEFAULTS" => {
1826                Some(Self::EvictNullsAndDefaults)
1827            }
1828            _ => None,
1829        }
1830    }
1831}
1832#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1833#[repr(i32)]
1834pub enum AcceleratePython {
1835    Unspecified = 0,
1836    Require = 1,
1837    Auto = 2,
1838    Never = 3,
1839}
1840impl AcceleratePython {
1841    /// String value of the enum field names used in the ProtoBuf definition.
1842    ///
1843    /// The values are not transformed in any way and thus are considered stable
1844    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1845    pub fn as_str_name(&self) -> &'static str {
1846        match self {
1847            Self::Unspecified => "ACCELERATE_PYTHON_UNSPECIFIED",
1848            Self::Require => "ACCELERATE_PYTHON_REQUIRE",
1849            Self::Auto => "ACCELERATE_PYTHON_AUTO",
1850            Self::Never => "ACCELERATE_PYTHON_NEVER",
1851        }
1852    }
1853    /// Creates an enum from field names used in the ProtoBuf definition.
1854    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1855        match value {
1856            "ACCELERATE_PYTHON_UNSPECIFIED" => Some(Self::Unspecified),
1857            "ACCELERATE_PYTHON_REQUIRE" => Some(Self::Require),
1858            "ACCELERATE_PYTHON_AUTO" => Some(Self::Auto),
1859            "ACCELERATE_PYTHON_NEVER" => Some(Self::Never),
1860            _ => None,
1861        }
1862    }
1863}
1864#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1865#[repr(i32)]
1866pub enum ResolverKind {
1867    Unspecified = 0,
1868    Online = 1,
1869    Offline = 2,
1870}
1871impl ResolverKind {
1872    /// String value of the enum field names used in the ProtoBuf definition.
1873    ///
1874    /// The values are not transformed in any way and thus are considered stable
1875    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1876    pub fn as_str_name(&self) -> &'static str {
1877        match self {
1878            Self::Unspecified => "RESOLVER_KIND_UNSPECIFIED",
1879            Self::Online => "RESOLVER_KIND_ONLINE",
1880            Self::Offline => "RESOLVER_KIND_OFFLINE",
1881        }
1882    }
1883    /// Creates an enum from field names used in the ProtoBuf definition.
1884    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1885        match value {
1886            "RESOLVER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
1887            "RESOLVER_KIND_ONLINE" => Some(Self::Online),
1888            "RESOLVER_KIND_OFFLINE" => Some(Self::Offline),
1889            _ => None,
1890        }
1891    }
1892}
1893#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1894#[repr(i32)]
1895pub enum ResourceHint {
1896    Unspecified = 0,
1897    Cpu = 1,
1898    Io = 2,
1899    Gpu = 3,
1900}
1901impl ResourceHint {
1902    /// String value of the enum field names used in the ProtoBuf definition.
1903    ///
1904    /// The values are not transformed in any way and thus are considered stable
1905    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1906    pub fn as_str_name(&self) -> &'static str {
1907        match self {
1908            Self::Unspecified => "RESOURCE_HINT_UNSPECIFIED",
1909            Self::Cpu => "RESOURCE_HINT_CPU",
1910            Self::Io => "RESOURCE_HINT_IO",
1911            Self::Gpu => "RESOURCE_HINT_GPU",
1912        }
1913    }
1914    /// Creates an enum from field names used in the ProtoBuf definition.
1915    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1916        match value {
1917            "RESOURCE_HINT_UNSPECIFIED" => Some(Self::Unspecified),
1918            "RESOURCE_HINT_CPU" => Some(Self::Cpu),
1919            "RESOURCE_HINT_IO" => Some(Self::Io),
1920            "RESOURCE_HINT_GPU" => Some(Self::Gpu),
1921            _ => None,
1922        }
1923    }
1924}
1925#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1926#[repr(i32)]
1927pub enum Finalizer {
1928    Unspecified = 0,
1929    OneOrNone = 1,
1930    One = 2,
1931    First = 3,
1932    All = 4,
1933}
1934impl Finalizer {
1935    /// String value of the enum field names used in the ProtoBuf definition.
1936    ///
1937    /// The values are not transformed in any way and thus are considered stable
1938    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1939    pub fn as_str_name(&self) -> &'static str {
1940        match self {
1941            Self::Unspecified => "FINALIZER_UNSPECIFIED",
1942            Self::OneOrNone => "FINALIZER_ONE_OR_NONE",
1943            Self::One => "FINALIZER_ONE",
1944            Self::First => "FINALIZER_FIRST",
1945            Self::All => "FINALIZER_ALL",
1946        }
1947    }
1948    /// Creates an enum from field names used in the ProtoBuf definition.
1949    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1950        match value {
1951            "FINALIZER_UNSPECIFIED" => Some(Self::Unspecified),
1952            "FINALIZER_ONE_OR_NONE" => Some(Self::OneOrNone),
1953            "FINALIZER_ONE" => Some(Self::One),
1954            "FINALIZER_FIRST" => Some(Self::First),
1955            "FINALIZER_ALL" => Some(Self::All),
1956            _ => None,
1957        }
1958    }
1959}
1960#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1961#[repr(i32)]
1962pub enum IncrementalMode {
1963    Unspecified = 0,
1964    Row = 1,
1965    Group = 2,
1966    Parameter = 3,
1967}
1968impl IncrementalMode {
1969    /// String value of the enum field names used in the ProtoBuf definition.
1970    ///
1971    /// The values are not transformed in any way and thus are considered stable
1972    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1973    pub fn as_str_name(&self) -> &'static str {
1974        match self {
1975            Self::Unspecified => "INCREMENTAL_MODE_UNSPECIFIED",
1976            Self::Row => "INCREMENTAL_MODE_ROW",
1977            Self::Group => "INCREMENTAL_MODE_GROUP",
1978            Self::Parameter => "INCREMENTAL_MODE_PARAMETER",
1979        }
1980    }
1981    /// Creates an enum from field names used in the ProtoBuf definition.
1982    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1983        match value {
1984            "INCREMENTAL_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1985            "INCREMENTAL_MODE_ROW" => Some(Self::Row),
1986            "INCREMENTAL_MODE_GROUP" => Some(Self::Group),
1987            "INCREMENTAL_MODE_PARAMETER" => Some(Self::Parameter),
1988            _ => None,
1989        }
1990    }
1991}
1992#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1993#[repr(i32)]
1994pub enum IncrementalTimestampMode {
1995    Unspecified = 0,
1996    FeatureTime = 1,
1997    ResolverExecutionTime = 2,
1998}
1999impl IncrementalTimestampMode {
2000    /// String value of the enum field names used in the ProtoBuf definition.
2001    ///
2002    /// The values are not transformed in any way and thus are considered stable
2003    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2004    pub fn as_str_name(&self) -> &'static str {
2005        match self {
2006            Self::Unspecified => "INCREMENTAL_TIMESTAMP_MODE_UNSPECIFIED",
2007            Self::FeatureTime => "INCREMENTAL_TIMESTAMP_MODE_FEATURE_TIME",
2008            Self::ResolverExecutionTime => {
2009                "INCREMENTAL_TIMESTAMP_MODE_RESOLVER_EXECUTION_TIME"
2010            }
2011        }
2012    }
2013    /// Creates an enum from field names used in the ProtoBuf definition.
2014    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2015        match value {
2016            "INCREMENTAL_TIMESTAMP_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2017            "INCREMENTAL_TIMESTAMP_MODE_FEATURE_TIME" => Some(Self::FeatureTime),
2018            "INCREMENTAL_TIMESTAMP_MODE_RESOLVER_EXECUTION_TIME" => {
2019                Some(Self::ResolverExecutionTime)
2020            }
2021            _ => None,
2022        }
2023    }
2024}
2025#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2026#[repr(i32)]
2027pub enum WindowMode {
2028    Unspecified = 0,
2029    Continuous = 1,
2030    Tumbling = 2,
2031    Cdc = 3,
2032}
2033impl WindowMode {
2034    /// String value of the enum field names used in the ProtoBuf definition.
2035    ///
2036    /// The values are not transformed in any way and thus are considered stable
2037    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2038    pub fn as_str_name(&self) -> &'static str {
2039        match self {
2040            Self::Unspecified => "WINDOW_MODE_UNSPECIFIED",
2041            Self::Continuous => "WINDOW_MODE_CONTINUOUS",
2042            Self::Tumbling => "WINDOW_MODE_TUMBLING",
2043            Self::Cdc => "WINDOW_MODE_CDC",
2044        }
2045    }
2046    /// Creates an enum from field names used in the ProtoBuf definition.
2047    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2048        match value {
2049            "WINDOW_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2050            "WINDOW_MODE_CONTINUOUS" => Some(Self::Continuous),
2051            "WINDOW_MODE_TUMBLING" => Some(Self::Tumbling),
2052            "WINDOW_MODE_CDC" => Some(Self::Cdc),
2053            _ => None,
2054        }
2055    }
2056}