Skip to main content

nominal_api_proto/proto/
nominal.procedures.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ProcedureState {
4    #[prost(map = "string, message", tag = "1")]
5    pub global_fields: ::std::collections::HashMap<
6        ::prost::alloc::string::String,
7        FormField,
8    >,
9    #[prost(message, repeated, tag = "5")]
10    pub new_global_fields: ::prost::alloc::vec::Vec<FormField>,
11    #[prost(map = "string, message", tag = "2")]
12    pub nodes: ::std::collections::HashMap<
13        ::prost::alloc::string::String,
14        ProcedureNode,
15    >,
16    #[prost(map = "string, message", tag = "3")]
17    pub section_edges: ::std::collections::HashMap<
18        ::prost::alloc::string::String,
19        NodeList,
20    >,
21    #[prost(map = "string, message", tag = "4")]
22    pub step_edges: ::std::collections::HashMap<
23        ::prost::alloc::string::String,
24        NodeList,
25    >,
26}
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct ProcedureDisplayGraph {
29    #[prost(string, repeated, tag = "1")]
30    pub top_level_nodes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
31    #[prost(map = "string, message", tag = "2")]
32    pub section_to_sorted_children: ::std::collections::HashMap<
33        ::prost::alloc::string::String,
34        NodeList,
35    >,
36}
37#[derive(Clone, PartialEq, ::prost::Message)]
38pub struct NestedProcedure {
39    #[prost(string, tag = "1")]
40    pub title: ::prost::alloc::string::String,
41    #[prost(string, optional, tag = "2")]
42    pub description: ::core::option::Option<::prost::alloc::string::String>,
43    #[prost(message, repeated, tag = "3")]
44    pub steps: ::prost::alloc::vec::Vec<NestedProcedureNode>,
45    #[prost(map = "string, message", tag = "4")]
46    pub global_fields: ::std::collections::HashMap<
47        ::prost::alloc::string::String,
48        FormField,
49    >,
50    #[prost(message, repeated, tag = "5")]
51    pub new_global_fields: ::prost::alloc::vec::Vec<FormField>,
52}
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct NodeList {
55    #[prost(string, repeated, tag = "1")]
56    pub node_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
57}
58#[derive(Clone, PartialEq, ::prost::Message)]
59pub struct ProcedureNode {
60    #[prost(oneof = "procedure_node::Node", tags = "1, 2")]
61    pub node: ::core::option::Option<procedure_node::Node>,
62}
63/// Nested message and enum types in `ProcedureNode`.
64pub mod procedure_node {
65    #[derive(Clone, PartialEq, ::prost::Oneof)]
66    pub enum Node {
67        #[prost(message, tag = "1")]
68        Section(super::ProcedureSectionNode),
69        #[prost(message, tag = "2")]
70        Step(super::ProcedureStepNode),
71    }
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct ProcedureSectionNode {
75    #[prost(string, tag = "1")]
76    pub id: ::prost::alloc::string::String,
77    #[prost(string, tag = "2")]
78    pub title: ::prost::alloc::string::String,
79    #[prost(string, optional, tag = "3")]
80    pub description: ::core::option::Option<::prost::alloc::string::String>,
81}
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct ProcedureStepNode {
84    #[prost(string, tag = "1")]
85    pub id: ::prost::alloc::string::String,
86    #[prost(string, tag = "2")]
87    pub title: ::prost::alloc::string::String,
88    #[prost(message, optional, tag = "3")]
89    pub content: ::core::option::Option<ProcedureStepContent>,
90    #[prost(string, optional, tag = "5")]
91    pub description: ::core::option::Option<::prost::alloc::string::String>,
92    #[prost(bool, optional, tag = "6")]
93    pub is_required: ::core::option::Option<bool>,
94    #[prost(message, optional, tag = "7")]
95    pub auto_start: ::core::option::Option<AutoStartConfig>,
96    #[prost(message, optional, tag = "8")]
97    pub initial_auto_proceed_config: ::core::option::Option<AutoProceedConfig>,
98    #[prost(message, optional, tag = "9")]
99    pub success_condition: ::core::option::Option<SuccessCondition>,
100    #[prost(message, repeated, tag = "10")]
101    pub completion_action_configs: ::prost::alloc::vec::Vec<CompletionActionConfig>,
102    #[prost(string, repeated, tag = "11")]
103    pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
104}
105#[derive(Clone, PartialEq, ::prost::Message)]
106pub struct NestedProcedureNode {
107    #[prost(string, tag = "5")]
108    pub id: ::prost::alloc::string::String,
109    #[prost(string, tag = "1")]
110    pub title: ::prost::alloc::string::String,
111    #[prost(string, optional, tag = "2")]
112    pub description: ::core::option::Option<::prost::alloc::string::String>,
113    #[prost(message, repeated, tag = "3")]
114    pub steps: ::prost::alloc::vec::Vec<NestedProcedureNode>,
115    #[prost(message, optional, tag = "4")]
116    pub step: ::core::option::Option<nested_procedure_node::NestedStepNode>,
117}
118/// Nested message and enum types in `NestedProcedureNode`.
119pub mod nested_procedure_node {
120    #[derive(Clone, PartialEq, ::prost::Message)]
121    pub struct NestedStepNode {
122        #[prost(bool, optional, tag = "2")]
123        pub is_required: ::core::option::Option<bool>,
124        #[prost(message, optional, tag = "3")]
125        pub auto_start: ::core::option::Option<super::AutoStartConfig>,
126        #[prost(message, optional, tag = "4")]
127        pub initial_auto_proceed_config: ::core::option::Option<
128            super::AutoProceedConfig,
129        >,
130        #[prost(message, optional, tag = "5")]
131        pub success_condition: ::core::option::Option<super::SuccessCondition>,
132        #[prost(message, repeated, tag = "6")]
133        pub completion_action_configs: ::prost::alloc::vec::Vec<
134            super::CompletionActionConfig,
135        >,
136        #[prost(string, repeated, tag = "51")]
137        pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
138        #[prost(oneof = "nested_step_node::Content", tags = "7, 8, 9, 10")]
139        pub content: ::core::option::Option<nested_step_node::Content>,
140    }
141    /// Nested message and enum types in `NestedStepNode`.
142    pub mod nested_step_node {
143        #[derive(Clone, PartialEq, ::prost::Oneof)]
144        pub enum Content {
145            #[prost(message, tag = "7")]
146            Form(super::super::FormStep),
147            #[prost(message, tag = "8")]
148            StartIngest(super::super::StartIngestStep),
149            #[prost(message, tag = "9")]
150            SelectOrCreateAsset(super::super::SelectOrCreateAssetStep),
151            #[prost(message, tag = "10")]
152            Wait(super::super::WaitStep),
153        }
154    }
155}
156#[derive(Clone, Copy, PartialEq, ::prost::Message)]
157pub struct AutoStartConfig {
158    #[prost(oneof = "auto_start_config::Config", tags = "1, 2")]
159    pub config: ::core::option::Option<auto_start_config::Config>,
160}
161/// Nested message and enum types in `AutoStartConfig`.
162pub mod auto_start_config {
163    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
164    pub struct AllParents {}
165    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
166    pub struct Disabled {}
167    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
168    pub enum Config {
169        #[prost(message, tag = "1")]
170        AllParents(AllParents),
171        #[prost(message, tag = "2")]
172        Disabled(Disabled),
173    }
174}
175#[derive(Clone, Copy, PartialEq, ::prost::Message)]
176pub struct AutoProceedConfig {
177    #[prost(oneof = "auto_proceed_config::Config", tags = "1, 2")]
178    pub config: ::core::option::Option<auto_proceed_config::Config>,
179}
180/// Nested message and enum types in `AutoProceedConfig`.
181pub mod auto_proceed_config {
182    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
183    pub struct Disabled {}
184    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
185    pub struct Enabled {}
186    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
187    pub enum Config {
188        #[prost(message, tag = "1")]
189        Disabled(Disabled),
190        #[prost(message, tag = "2")]
191        Enabled(Enabled),
192    }
193}
194#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct SuccessCondition {
196    #[prost(oneof = "success_condition::Condition", tags = "1, 2, 3, 4, 5")]
197    pub condition: ::core::option::Option<success_condition::Condition>,
198}
199/// Nested message and enum types in `SuccessCondition`.
200pub mod success_condition {
201    #[derive(Clone, PartialEq, ::prost::Oneof)]
202    pub enum Condition {
203        #[prost(message, tag = "1")]
204        And(super::AndSuccessCondition),
205        #[prost(message, tag = "2")]
206        Timer(super::TimerSuccessCondition),
207        #[prost(message, tag = "3")]
208        IngestJob(super::IngestJobSuccessCondition),
209        #[prost(message, tag = "4")]
210        ChannelValidation(super::ChannelValidationSuccessCondition),
211        #[prost(message, tag = "5")]
212        Webhook(super::WebhookSuccessCondition),
213    }
214}
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct AndSuccessCondition {
217    #[prost(message, repeated, tag = "1")]
218    pub conditions: ::prost::alloc::vec::Vec<SuccessCondition>,
219}
220#[derive(Clone, Copy, PartialEq, ::prost::Message)]
221pub struct TimerSuccessCondition {
222    #[prost(int32, tag = "1")]
223    pub duration_seconds: i32,
224}
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct IngestJobSuccessCondition {
227    #[prost(string, tag = "1")]
228    pub field_id: ::prost::alloc::string::String,
229}
230#[derive(Clone, PartialEq, ::prost::Message)]
231pub struct ChannelLocator {
232    #[prost(string, tag = "1")]
233    pub data_source_ref: ::prost::alloc::string::String,
234    #[prost(string, tag = "2")]
235    pub channel_name: ::prost::alloc::string::String,
236    #[prost(map = "string, string", tag = "3")]
237    pub tags: ::std::collections::HashMap<
238        ::prost::alloc::string::String,
239        ::prost::alloc::string::String,
240    >,
241    #[prost(oneof = "channel_locator::AssetOrRun", tags = "4, 5")]
242    pub asset_or_run: ::core::option::Option<channel_locator::AssetOrRun>,
243}
244/// Nested message and enum types in `ChannelLocator`.
245pub mod channel_locator {
246    #[derive(Clone, PartialEq, ::prost::Oneof)]
247    pub enum AssetOrRun {
248        #[prost(message, tag = "4")]
249        Asset(super::AssetReference),
250        #[prost(message, tag = "5")]
251        Run(super::RunReference),
252    }
253}
254#[derive(Clone, PartialEq, ::prost::Message)]
255pub struct ChannelCaptureConfig {
256    #[prost(string, tag = "1")]
257    pub output_field_id: ::prost::alloc::string::String,
258    #[prost(enumeration = "CaptureMoment", repeated, packed = "false", tag = "2")]
259    pub capture_moments: ::prost::alloc::vec::Vec<i32>,
260}
261#[derive(Clone, PartialEq, ::prost::Message)]
262pub struct ChannelValidationSuccessCondition {
263    #[prost(message, optional, tag = "1")]
264    pub channel: ::core::option::Option<ChannelLocator>,
265    #[prost(enumeration = "channel_validation_success_condition::Comparator", tag = "2")]
266    pub comparator: i32,
267    #[prost(double, tag = "3")]
268    pub threshold: f64,
269    #[prost(int32, tag = "4")]
270    pub timeout_millis: i32,
271    #[prost(uint32, optional, tag = "5")]
272    pub point_persistence: ::core::option::Option<u32>,
273    #[prost(uint32, optional, tag = "6")]
274    pub time_persistence: ::core::option::Option<u32>,
275    #[prost(message, repeated, tag = "7")]
276    pub channel_captures: ::prost::alloc::vec::Vec<ChannelCaptureConfig>,
277}
278/// Nested message and enum types in `ChannelValidationSuccessCondition`.
279pub mod channel_validation_success_condition {
280    #[derive(
281        Clone,
282        Copy,
283        Debug,
284        PartialEq,
285        Eq,
286        Hash,
287        PartialOrd,
288        Ord,
289        ::prost::Enumeration
290    )]
291    #[repr(i32)]
292    pub enum Comparator {
293        Unspecified = 0,
294        GreaterThan = 1,
295        GreaterThanOrEqual = 2,
296        LessThan = 3,
297        LessThanOrEqual = 4,
298        Equal = 5,
299        NotEqual = 6,
300        Exists = 7,
301    }
302    impl Comparator {
303        /// String value of the enum field names used in the ProtoBuf definition.
304        ///
305        /// The values are not transformed in any way and thus are considered stable
306        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
307        pub fn as_str_name(&self) -> &'static str {
308            match self {
309                Self::Unspecified => "COMPARATOR_UNSPECIFIED",
310                Self::GreaterThan => "COMPARATOR_GREATER_THAN",
311                Self::GreaterThanOrEqual => "COMPARATOR_GREATER_THAN_OR_EQUAL",
312                Self::LessThan => "COMPARATOR_LESS_THAN",
313                Self::LessThanOrEqual => "COMPARATOR_LESS_THAN_OR_EQUAL",
314                Self::Equal => "COMPARATOR_EQUAL",
315                Self::NotEqual => "COMPARATOR_NOT_EQUAL",
316                Self::Exists => "COMPARATOR_EXISTS",
317            }
318        }
319        /// Creates an enum from field names used in the ProtoBuf definition.
320        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
321            match value {
322                "COMPARATOR_UNSPECIFIED" => Some(Self::Unspecified),
323                "COMPARATOR_GREATER_THAN" => Some(Self::GreaterThan),
324                "COMPARATOR_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
325                "COMPARATOR_LESS_THAN" => Some(Self::LessThan),
326                "COMPARATOR_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
327                "COMPARATOR_EQUAL" => Some(Self::Equal),
328                "COMPARATOR_NOT_EQUAL" => Some(Self::NotEqual),
329                "COMPARATOR_EXISTS" => Some(Self::Exists),
330                _ => None,
331            }
332        }
333    }
334}
335#[derive(Clone, PartialEq, ::prost::Message)]
336pub struct WebhookSuccessCondition {
337    #[prost(string, tag = "1")]
338    pub integration_rid: ::prost::alloc::string::String,
339    #[prost(message, optional, tag = "2")]
340    pub delivery_config: ::core::option::Option<WebhookDeliveryConfig>,
341    #[prost(string, tag = "3")]
342    pub event_type: ::prost::alloc::string::String,
343    #[prost(string, tag = "4")]
344    pub payload_template: ::prost::alloc::string::String,
345}
346#[derive(Clone, Copy, PartialEq, ::prost::Message)]
347pub struct WebhookDeliveryConfig {
348    #[prost(int32, optional, tag = "1")]
349    pub max_retries: ::core::option::Option<i32>,
350    #[prost(int64, optional, tag = "2")]
351    pub retry_interval_seconds: ::core::option::Option<i64>,
352    #[prost(bool, optional, tag = "3")]
353    pub exponential_backoff: ::core::option::Option<bool>,
354    #[prost(int64, optional, tag = "4")]
355    pub max_retry_interval_seconds: ::core::option::Option<i64>,
356    #[prost(int64, optional, tag = "5")]
357    pub timeout_seconds: ::core::option::Option<i64>,
358}
359#[derive(Clone, PartialEq, ::prost::Message)]
360pub struct CompletionActionConfig {
361    #[prost(oneof = "completion_action_config::Config", tags = "1, 2, 3, 4, 5, 6")]
362    pub config: ::core::option::Option<completion_action_config::Config>,
363}
364/// Nested message and enum types in `CompletionActionConfig`.
365pub mod completion_action_config {
366    #[derive(Clone, PartialEq, ::prost::Oneof)]
367    pub enum Config {
368        #[prost(message, tag = "1")]
369        CreateEvent(super::CreateEventConfig),
370        #[prost(message, tag = "2")]
371        SendNotification(super::SendNotificationConfig),
372        #[prost(message, tag = "3")]
373        CreateRun(super::CreateRunConfig),
374        #[prost(message, tag = "4")]
375        ApplyWorkbookTemplates(super::ApplyWorkbookTemplatesConfig),
376        #[prost(message, tag = "5")]
377        ApplyChecklists(super::ApplyChecklistsConfig),
378        #[prost(message, tag = "6")]
379        UpdateRun(super::UpdateRunConfig),
380    }
381}
382#[derive(Clone, PartialEq, ::prost::Message)]
383pub struct CreateEventConfig {
384    #[prost(string, tag = "1")]
385    pub name: ::prost::alloc::string::String,
386    #[prost(string, optional, tag = "2")]
387    pub description: ::core::option::Option<::prost::alloc::string::String>,
388    #[prost(string, repeated, tag = "3")]
389    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
390    #[prost(map = "string, string", tag = "4")]
391    pub properties: ::std::collections::HashMap<
392        ::prost::alloc::string::String,
393        ::prost::alloc::string::String,
394    >,
395    #[prost(string, repeated, tag = "5")]
396    pub asset_field_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
397    #[prost(message, repeated, tag = "6")]
398    pub asset_references: ::prost::alloc::vec::Vec<AssetReference>,
399    #[prost(message, repeated, tag = "7")]
400    pub property_refs: ::prost::alloc::vec::Vec<PropertyReference>,
401}
402#[derive(Clone, PartialEq, ::prost::Message)]
403pub struct SendNotificationConfig {
404    #[prost(message, optional, tag = "1")]
405    pub integrations: ::core::option::Option<MultiIntegrationReference>,
406    #[prost(message, optional, tag = "2")]
407    pub title: ::core::option::Option<StringReference>,
408    #[prost(message, optional, tag = "3")]
409    pub message: ::core::option::Option<StringReference>,
410}
411#[derive(Clone, PartialEq, ::prost::Message)]
412pub struct CreateRunConfig {
413    #[prost(string, optional, tag = "1")]
414    pub run_output_field_id: ::core::option::Option<::prost::alloc::string::String>,
415    #[prost(message, optional, tag = "2")]
416    pub assets: ::core::option::Option<MultiAssetReference>,
417    #[prost(message, optional, tag = "3")]
418    pub name: ::core::option::Option<StringReference>,
419    #[prost(message, optional, tag = "4")]
420    pub description: ::core::option::Option<StringReference>,
421    #[prost(message, optional, tag = "5")]
422    pub time_range: ::core::option::Option<TimeRangeReference>,
423    #[prost(message, optional, tag = "6")]
424    pub labels: ::core::option::Option<MultiStringReference>,
425    #[prost(message, repeated, tag = "7")]
426    pub properties: ::prost::alloc::vec::Vec<create_run_config::Property>,
427}
428/// Nested message and enum types in `CreateRunConfig`.
429pub mod create_run_config {
430    #[derive(Clone, PartialEq, ::prost::Message)]
431    pub struct Property {
432        #[prost(message, optional, tag = "1")]
433        pub key: ::core::option::Option<super::StringReference>,
434        #[prost(message, optional, tag = "2")]
435        pub value: ::core::option::Option<super::StringReference>,
436    }
437}
438#[derive(Clone, PartialEq, ::prost::Message)]
439pub struct UpdateRunConfig {
440    #[prost(message, optional, tag = "1")]
441    pub runs: ::core::option::Option<MultiRunReference>,
442    #[prost(message, optional, tag = "2")]
443    pub name: ::core::option::Option<StringReference>,
444    #[prost(message, optional, tag = "3")]
445    pub description: ::core::option::Option<StringReference>,
446    #[prost(message, optional, tag = "4")]
447    pub time_range: ::core::option::Option<TimeRangeReference>,
448    #[prost(message, optional, tag = "5")]
449    pub labels: ::core::option::Option<MultiStringReference>,
450    #[prost(message, repeated, tag = "6")]
451    pub properties: ::prost::alloc::vec::Vec<PropertyReference>,
452    #[prost(bool, optional, tag = "7")]
453    pub strict_overwrite: ::core::option::Option<bool>,
454}
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct PropertyReference {
457    #[prost(message, optional, tag = "1")]
458    pub key: ::core::option::Option<StringReference>,
459    #[prost(message, optional, tag = "2")]
460    pub value: ::core::option::Option<StringReference>,
461}
462#[derive(Clone, PartialEq, ::prost::Message)]
463pub struct TagReference {
464    #[prost(message, optional, tag = "1")]
465    pub tag_name: ::core::option::Option<StringReference>,
466    #[prost(message, optional, tag = "2")]
467    pub tag_value: ::core::option::Option<StringReference>,
468}
469#[derive(Clone, PartialEq, ::prost::Message)]
470pub struct ApplyWorkbookTemplatesConfig {
471    #[prost(message, optional, tag = "1")]
472    pub workbook_templates: ::core::option::Option<MultiWorkbookTemplateReference>,
473    #[prost(message, optional, tag = "2")]
474    pub runs: ::core::option::Option<MultiRunReference>,
475}
476#[derive(Clone, PartialEq, ::prost::Message)]
477pub struct ApplyChecklistsConfig {
478    #[prost(message, optional, tag = "1")]
479    pub checklists: ::core::option::Option<MultiChecklistReference>,
480    #[prost(message, optional, tag = "2")]
481    pub runs: ::core::option::Option<MultiRunReference>,
482}
483#[derive(Clone, PartialEq, ::prost::Message)]
484pub struct ProcedureStepContent {
485    #[prost(oneof = "procedure_step_content::Content", tags = "1, 2, 3, 4")]
486    pub content: ::core::option::Option<procedure_step_content::Content>,
487}
488/// Nested message and enum types in `ProcedureStepContent`.
489pub mod procedure_step_content {
490    #[derive(Clone, PartialEq, ::prost::Oneof)]
491    pub enum Content {
492        #[prost(message, tag = "1")]
493        Form(super::FormStep),
494        #[prost(message, tag = "2")]
495        StartIngest(super::StartIngestStep),
496        #[prost(message, tag = "3")]
497        SelectOrCreateAsset(super::SelectOrCreateAssetStep),
498        #[prost(message, tag = "4")]
499        Wait(super::WaitStep),
500    }
501}
502#[derive(Clone, Copy, PartialEq, ::prost::Message)]
503pub struct WaitStep {}
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct FormStep {
506    #[prost(message, repeated, tag = "1")]
507    pub fields: ::prost::alloc::vec::Vec<FormField>,
508}
509#[derive(Clone, PartialEq, ::prost::Message)]
510pub struct StartIngestStep {
511    #[prost(message, optional, tag = "1")]
512    pub asset: ::core::option::Option<AssetReference>,
513    #[prost(message, optional, tag = "2")]
514    pub ref_name: ::core::option::Option<StringReference>,
515    #[prost(message, optional, tag = "3")]
516    pub ingest_type_config: ::core::option::Option<start_ingest_step::IngestTypeConfig>,
517    #[prost(string, optional, tag = "4")]
518    pub ingest_job_output_field_id: ::core::option::Option<
519        ::prost::alloc::string::String,
520    >,
521}
522/// Nested message and enum types in `StartIngestStep`.
523pub mod start_ingest_step {
524    #[derive(Clone, PartialEq, ::prost::Message)]
525    pub struct IngestTypeConfig {
526        #[prost(oneof = "ingest_type_config::Config", tags = "1, 2, 3, 4")]
527        pub config: ::core::option::Option<ingest_type_config::Config>,
528    }
529    /// Nested message and enum types in `IngestTypeConfig`.
530    pub mod ingest_type_config {
531        #[derive(Clone, PartialEq, ::prost::Message)]
532        pub struct ContainerizedExtractorIngestConfig {
533            #[prost(string, tag = "1")]
534            pub rid: ::prost::alloc::string::String,
535            #[prost(message, repeated, tag = "2")]
536            pub file_input_bindings: ::prost::alloc::vec::Vec<
537                super::super::FileInputBinding,
538            >,
539            #[prost(message, repeated, tag = "3")]
540            pub environment_input_bindings: ::prost::alloc::vec::Vec<
541                super::super::EnvironmentInputBinding,
542            >,
543            #[prost(message, repeated, tag = "4")]
544            pub additional_file_tag_bindings: ::prost::alloc::vec::Vec<
545                super::super::AdditionalFileTagBinding,
546            >,
547        }
548        #[derive(Clone, PartialEq, ::prost::Message)]
549        pub struct DataflashIngestConfig {
550            #[prost(message, optional, tag = "1")]
551            pub file_input: ::core::option::Option<super::super::FileReference>,
552        }
553        #[derive(Clone, PartialEq, ::prost::Message)]
554        pub struct CsvIngestConfig {
555            #[prost(message, optional, tag = "1")]
556            pub timestamp_series_name: ::core::option::Option<
557                super::super::StringReference,
558            >,
559            #[prost(message, optional, tag = "2")]
560            pub timestamp_type: ::core::option::Option<
561                super::super::TimestampTypeParameter,
562            >,
563            #[prost(message, optional, tag = "3")]
564            pub file_input: ::core::option::Option<super::super::FileReference>,
565        }
566        #[derive(Clone, PartialEq, ::prost::Message)]
567        pub struct ParquetIngestConfig {
568            #[prost(message, optional, tag = "1")]
569            pub timestamp_series_name: ::core::option::Option<
570                super::super::StringReference,
571            >,
572            #[prost(message, optional, tag = "2")]
573            pub timestamp_type: ::core::option::Option<
574                super::super::TimestampTypeParameter,
575            >,
576            #[prost(message, optional, tag = "3")]
577            pub file_input: ::core::option::Option<super::super::FileReference>,
578        }
579        #[derive(Clone, PartialEq, ::prost::Oneof)]
580        pub enum Config {
581            #[prost(message, tag = "1")]
582            ContainerizedExtractor(ContainerizedExtractorIngestConfig),
583            #[prost(message, tag = "2")]
584            Dataflash(DataflashIngestConfig),
585            #[prost(message, tag = "3")]
586            Csv(CsvIngestConfig),
587            #[prost(message, tag = "4")]
588            Parquet(ParquetIngestConfig),
589        }
590    }
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct FileInputBinding {
594    #[prost(string, tag = "1")]
595    pub environment_variable: ::prost::alloc::string::String,
596    #[prost(message, optional, tag = "2")]
597    pub file_reference: ::core::option::Option<FileReference>,
598}
599#[derive(Clone, PartialEq, ::prost::Message)]
600pub struct FileReference {
601    #[prost(oneof = "file_reference::Option", tags = "1")]
602    pub option: ::core::option::Option<file_reference::Option>,
603}
604/// Nested message and enum types in `FileReference`.
605pub mod file_reference {
606    #[derive(Clone, PartialEq, ::prost::Oneof)]
607    pub enum Option {
608        #[prost(string, tag = "1")]
609        FieldId(::prost::alloc::string::String),
610    }
611}
612#[derive(Clone, PartialEq, ::prost::Message)]
613pub struct EnvironmentInputBinding {
614    #[prost(string, tag = "1")]
615    pub environment_variable: ::prost::alloc::string::String,
616    #[prost(message, optional, tag = "2")]
617    pub value: ::core::option::Option<StringReference>,
618}
619#[derive(Clone, PartialEq, ::prost::Message)]
620pub struct AdditionalFileTagBinding {
621    #[prost(string, tag = "1")]
622    pub tag_name: ::prost::alloc::string::String,
623    #[prost(oneof = "additional_file_tag_binding::Value", tags = "2, 3")]
624    pub value: ::core::option::Option<additional_file_tag_binding::Value>,
625}
626/// Nested message and enum types in `AdditionalFileTagBinding`.
627pub mod additional_file_tag_binding {
628    #[derive(Clone, PartialEq, ::prost::Oneof)]
629    pub enum Value {
630        #[prost(message, tag = "2")]
631        StringValue(super::StringReference),
632        #[prost(message, tag = "3")]
633        AssetRid(super::AssetReference),
634    }
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct TimestampTypeParameter {
638    #[prost(oneof = "timestamp_type_parameter::Option", tags = "1, 2")]
639    pub option: ::core::option::Option<timestamp_type_parameter::Option>,
640}
641/// Nested message and enum types in `TimestampTypeParameter`.
642pub mod timestamp_type_parameter {
643    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
644    pub struct UserInputOptions {}
645    #[derive(Clone, PartialEq, ::prost::Oneof)]
646    pub enum Option {
647        #[prost(message, tag = "1")]
648        Constant(super::super::super::types::time::TimestampType),
649        #[prost(message, tag = "2")]
650        UserInput(UserInputOptions),
651    }
652}
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct SelectOrCreateAssetStep {
655    #[prost(string, optional, tag = "1")]
656    pub asset_output_field_id: ::core::option::Option<::prost::alloc::string::String>,
657    #[prost(message, optional, tag = "2")]
658    pub create_asset_parameters: ::core::option::Option<
659        select_or_create_asset_step::CreateAssetParameters,
660    >,
661    #[prost(oneof = "select_or_create_asset_step::Options", tags = "3")]
662    pub options: ::core::option::Option<select_or_create_asset_step::Options>,
663}
664/// Nested message and enum types in `SelectOrCreateAssetStep`.
665pub mod select_or_create_asset_step {
666    #[derive(Clone, PartialEq, ::prost::Message)]
667    pub struct CreateAssetParameters {
668        #[prost(message, optional, tag = "1")]
669        pub title: ::core::option::Option<create_asset_parameters::TitleParameter>,
670        #[prost(message, optional, tag = "2")]
671        pub description: ::core::option::Option<
672            create_asset_parameters::DescriptionParameter,
673        >,
674        #[prost(message, optional, tag = "3")]
675        pub labels: ::core::option::Option<create_asset_parameters::LabelsParameter>,
676        #[prost(message, optional, tag = "4")]
677        pub properties: ::core::option::Option<
678            create_asset_parameters::PropertiesParameter,
679        >,
680        #[prost(map = "string, message", tag = "5")]
681        pub data_scopes: ::std::collections::HashMap<
682            ::prost::alloc::string::String,
683            create_asset_parameters::DataScopeParameter,
684        >,
685    }
686    /// Nested message and enum types in `CreateAssetParameters`.
687    pub mod create_asset_parameters {
688        #[derive(Clone, PartialEq, ::prost::Message)]
689        pub struct TitleParameter {
690            #[prost(oneof = "title_parameter::Option", tags = "1, 2")]
691            pub option: ::core::option::Option<title_parameter::Option>,
692        }
693        /// Nested message and enum types in `TitleParameter`.
694        pub mod title_parameter {
695            #[derive(Clone, PartialEq, ::prost::Oneof)]
696            pub enum Option {
697                #[prost(string, tag = "1")]
698                Constant(::prost::alloc::string::String),
699                #[prost(string, tag = "2")]
700                FieldId(::prost::alloc::string::String),
701            }
702        }
703        #[derive(Clone, PartialEq, ::prost::Message)]
704        pub struct DescriptionParameter {
705            #[prost(oneof = "description_parameter::Option", tags = "1, 2")]
706            pub option: ::core::option::Option<description_parameter::Option>,
707        }
708        /// Nested message and enum types in `DescriptionParameter`.
709        pub mod description_parameter {
710            #[derive(Clone, PartialEq, ::prost::Oneof)]
711            pub enum Option {
712                #[prost(string, tag = "1")]
713                Constant(::prost::alloc::string::String),
714                #[prost(string, tag = "2")]
715                FieldId(::prost::alloc::string::String),
716            }
717        }
718        #[derive(Clone, PartialEq, ::prost::Message)]
719        pub struct LabelsParameter {
720            #[prost(string, repeated, tag = "1")]
721            pub constant: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
722            #[prost(message, optional, tag = "2")]
723            pub user_input: ::core::option::Option<labels_parameter::UserInputOptions>,
724            #[prost(message, repeated, tag = "3")]
725            pub references: ::prost::alloc::vec::Vec<super::super::StringReference>,
726        }
727        /// Nested message and enum types in `LabelsParameter`.
728        pub mod labels_parameter {
729            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
730            pub struct UserInputOptions {}
731        }
732        #[derive(Clone, PartialEq, ::prost::Message)]
733        pub struct PropertiesParameter {
734            #[prost(map = "string, string", tag = "1")]
735            pub constant: ::std::collections::HashMap<
736                ::prost::alloc::string::String,
737                ::prost::alloc::string::String,
738            >,
739            #[prost(message, optional, tag = "2")]
740            pub user_input: ::core::option::Option<
741                properties_parameter::UserInputOptions,
742            >,
743            #[prost(message, repeated, tag = "3")]
744            pub references: ::prost::alloc::vec::Vec<super::super::PropertyReference>,
745        }
746        /// Nested message and enum types in `PropertiesParameter`.
747        pub mod properties_parameter {
748            #[derive(Clone, PartialEq, ::prost::Message)]
749            pub struct UserInputOptions {
750                #[prost(string, repeated, tag = "1")]
751                pub required_keys: ::prost::alloc::vec::Vec<
752                    ::prost::alloc::string::String,
753                >,
754                #[prost(string, repeated, tag = "2")]
755                pub suggested_keys: ::prost::alloc::vec::Vec<
756                    ::prost::alloc::string::String,
757                >,
758            }
759        }
760        #[derive(Clone, PartialEq, ::prost::Message)]
761        pub struct DataScopeParameter {
762            #[prost(message, optional, tag = "21")]
763            pub series_tags: ::core::option::Option<super::super::TagsParameter>,
764            #[prost(oneof = "data_scope_parameter::DataSource", tags = "1, 2")]
765            pub data_source: ::core::option::Option<data_scope_parameter::DataSource>,
766        }
767        /// Nested message and enum types in `DataScopeParameter`.
768        pub mod data_scope_parameter {
769            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
770            pub struct NewDataset {}
771            #[derive(Clone, PartialEq, ::prost::Message)]
772            pub struct ExistingDataset {
773                #[prost(oneof = "existing_dataset::Options", tags = "1")]
774                pub options: ::core::option::Option<existing_dataset::Options>,
775            }
776            /// Nested message and enum types in `ExistingDataset`.
777            pub mod existing_dataset {
778                #[derive(Clone, PartialEq, ::prost::Oneof)]
779                pub enum Options {
780                    #[prost(message, tag = "1")]
781                    PresetOptions(super::super::super::super::PresetDatasetFieldOptions),
782                }
783            }
784            #[derive(Clone, PartialEq, ::prost::Oneof)]
785            pub enum DataSource {
786                #[prost(message, tag = "1")]
787                NewDataset(NewDataset),
788                #[prost(message, tag = "2")]
789                ExistingDataset(ExistingDataset),
790            }
791        }
792    }
793    #[derive(Clone, PartialEq, ::prost::Oneof)]
794    pub enum Options {
795        #[prost(message, tag = "3")]
796        PresetOptions(super::PresetAssetFieldOptions),
797    }
798}
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct PresetDatasetFieldOptions {
801    #[prost(message, repeated, tag = "1")]
802    pub options: ::prost::alloc::vec::Vec<DatasetReference>,
803    #[prost(message, optional, tag = "2")]
804    pub default_option: ::core::option::Option<DatasetReference>,
805}
806#[derive(Clone, PartialEq, ::prost::Message)]
807pub struct DatasetReference {
808    #[prost(oneof = "dataset_reference::Option", tags = "1, 2")]
809    pub option: ::core::option::Option<dataset_reference::Option>,
810}
811/// Nested message and enum types in `DatasetReference`.
812pub mod dataset_reference {
813    #[derive(Clone, PartialEq, ::prost::Oneof)]
814    pub enum Option {
815        #[prost(string, tag = "1")]
816        Rid(::prost::alloc::string::String),
817        #[prost(string, tag = "2")]
818        FieldId(::prost::alloc::string::String),
819    }
820}
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct TagsParameter {
823    #[prost(map = "string, string", tag = "1")]
824    pub constant: ::std::collections::HashMap<
825        ::prost::alloc::string::String,
826        ::prost::alloc::string::String,
827    >,
828    #[prost(message, optional, tag = "2")]
829    pub user_input: ::core::option::Option<tags_parameter::UserInputOptions>,
830    #[prost(message, repeated, tag = "3")]
831    pub references: ::prost::alloc::vec::Vec<TagReference>,
832}
833/// Nested message and enum types in `TagsParameter`.
834pub mod tags_parameter {
835    #[derive(Clone, PartialEq, ::prost::Message)]
836    pub struct UserInputOptions {
837        #[prost(string, repeated, tag = "1")]
838        pub required_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
839        #[prost(string, repeated, tag = "2")]
840        pub suggested_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
841    }
842}
843#[derive(Clone, PartialEq, ::prost::Message)]
844pub struct MultiStringReference {
845    #[prost(oneof = "multi_string_reference::Option", tags = "1")]
846    pub option: ::core::option::Option<multi_string_reference::Option>,
847}
848/// Nested message and enum types in `MultiStringReference`.
849pub mod multi_string_reference {
850    #[derive(Clone, PartialEq, ::prost::Oneof)]
851    pub enum Option {
852        #[prost(string, tag = "1")]
853        FieldId(::prost::alloc::string::String),
854    }
855}
856#[derive(Clone, PartialEq, ::prost::Message)]
857pub struct StringReference {
858    #[prost(oneof = "string_reference::Option", tags = "1, 2")]
859    pub option: ::core::option::Option<string_reference::Option>,
860}
861/// Nested message and enum types in `StringReference`.
862pub mod string_reference {
863    #[derive(Clone, PartialEq, ::prost::Oneof)]
864    pub enum Option {
865        #[prost(string, tag = "1")]
866        Constant(::prost::alloc::string::String),
867        #[prost(string, tag = "2")]
868        FieldId(::prost::alloc::string::String),
869    }
870}
871#[derive(Clone, PartialEq, ::prost::Message)]
872pub struct MultiAssetReference {
873    #[prost(oneof = "multi_asset_reference::Option", tags = "1")]
874    pub option: ::core::option::Option<multi_asset_reference::Option>,
875}
876/// Nested message and enum types in `MultiAssetReference`.
877pub mod multi_asset_reference {
878    #[derive(Clone, PartialEq, ::prost::Message)]
879    pub struct AssetReferenceList {
880        #[prost(message, repeated, tag = "1")]
881        pub references: ::prost::alloc::vec::Vec<super::AssetReference>,
882    }
883    #[derive(Clone, PartialEq, ::prost::Oneof)]
884    pub enum Option {
885        #[prost(message, tag = "1")]
886        List(AssetReferenceList),
887    }
888}
889#[derive(Clone, PartialEq, ::prost::Message)]
890pub struct AssetReference {
891    #[prost(oneof = "asset_reference::Option", tags = "1, 2")]
892    pub option: ::core::option::Option<asset_reference::Option>,
893}
894/// Nested message and enum types in `AssetReference`.
895pub mod asset_reference {
896    #[derive(Clone, PartialEq, ::prost::Oneof)]
897    pub enum Option {
898        #[prost(string, tag = "1")]
899        Rid(::prost::alloc::string::String),
900        #[prost(string, tag = "2")]
901        FieldId(::prost::alloc::string::String),
902    }
903}
904#[derive(Clone, PartialEq, ::prost::Message)]
905pub struct TimeRangeReference {
906    #[prost(oneof = "time_range_reference::Option", tags = "1, 2")]
907    pub option: ::core::option::Option<time_range_reference::Option>,
908}
909/// Nested message and enum types in `TimeRangeReference`.
910pub mod time_range_reference {
911    #[derive(Clone, PartialEq, ::prost::Message)]
912    pub struct IngestJobList {
913        #[prost(string, repeated, tag = "1")]
914        pub field_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
915    }
916    #[derive(Clone, PartialEq, ::prost::Message)]
917    pub struct RangeLiteral {
918        #[prost(message, optional, tag = "1")]
919        pub start: ::core::option::Option<super::TimestampReference>,
920        #[prost(message, optional, tag = "2")]
921        pub end: ::core::option::Option<super::TimestampReference>,
922    }
923    #[derive(Clone, PartialEq, ::prost::Oneof)]
924    pub enum Option {
925        #[prost(message, tag = "1")]
926        FromIngestJobs(IngestJobList),
927        #[prost(message, tag = "2")]
928        Literal(RangeLiteral),
929    }
930}
931#[derive(Clone, PartialEq, ::prost::Message)]
932pub struct TimestampReference {
933    #[prost(oneof = "timestamp_reference::Option", tags = "1, 2")]
934    pub option: ::core::option::Option<timestamp_reference::Option>,
935}
936/// Nested message and enum types in `TimestampReference`.
937pub mod timestamp_reference {
938    #[derive(Clone, PartialEq, ::prost::Oneof)]
939    pub enum Option {
940        #[prost(string, tag = "1")]
941        FieldId(::prost::alloc::string::String),
942        #[prost(message, tag = "2")]
943        Constant(super::super::super::super::google::protobuf::Timestamp),
944    }
945}
946#[derive(Clone, PartialEq, ::prost::Message)]
947pub struct MultiRunReference {
948    #[prost(oneof = "multi_run_reference::Option", tags = "1")]
949    pub option: ::core::option::Option<multi_run_reference::Option>,
950}
951/// Nested message and enum types in `MultiRunReference`.
952pub mod multi_run_reference {
953    #[derive(Clone, PartialEq, ::prost::Message)]
954    pub struct RunReferenceList {
955        #[prost(message, repeated, tag = "1")]
956        pub references: ::prost::alloc::vec::Vec<super::RunReference>,
957    }
958    #[derive(Clone, PartialEq, ::prost::Oneof)]
959    pub enum Option {
960        #[prost(message, tag = "1")]
961        List(RunReferenceList),
962    }
963}
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct RunReference {
966    #[prost(oneof = "run_reference::Option", tags = "1")]
967    pub option: ::core::option::Option<run_reference::Option>,
968}
969/// Nested message and enum types in `RunReference`.
970pub mod run_reference {
971    #[derive(Clone, PartialEq, ::prost::Oneof)]
972    pub enum Option {
973        #[prost(string, tag = "1")]
974        FieldId(::prost::alloc::string::String),
975    }
976}
977#[derive(Clone, PartialEq, ::prost::Message)]
978pub struct MultiWorkbookTemplateReference {
979    #[prost(oneof = "multi_workbook_template_reference::Option", tags = "1")]
980    pub option: ::core::option::Option<multi_workbook_template_reference::Option>,
981}
982/// Nested message and enum types in `MultiWorkbookTemplateReference`.
983pub mod multi_workbook_template_reference {
984    #[derive(Clone, PartialEq, ::prost::Message)]
985    pub struct WorkbookTemplateReferenceList {
986        #[prost(message, repeated, tag = "1")]
987        pub references: ::prost::alloc::vec::Vec<super::WorkbookTemplateReference>,
988    }
989    #[derive(Clone, PartialEq, ::prost::Oneof)]
990    pub enum Option {
991        #[prost(message, tag = "1")]
992        List(WorkbookTemplateReferenceList),
993    }
994}
995#[derive(Clone, PartialEq, ::prost::Message)]
996pub struct WorkbookTemplateReference {
997    #[prost(oneof = "workbook_template_reference::Option", tags = "1")]
998    pub option: ::core::option::Option<workbook_template_reference::Option>,
999}
1000/// Nested message and enum types in `WorkbookTemplateReference`.
1001pub mod workbook_template_reference {
1002    #[derive(Clone, PartialEq, ::prost::Oneof)]
1003    pub enum Option {
1004        #[prost(string, tag = "1")]
1005        Rid(::prost::alloc::string::String),
1006    }
1007}
1008#[derive(Clone, PartialEq, ::prost::Message)]
1009pub struct MultiChecklistReference {
1010    #[prost(oneof = "multi_checklist_reference::Option", tags = "1")]
1011    pub option: ::core::option::Option<multi_checklist_reference::Option>,
1012}
1013/// Nested message and enum types in `MultiChecklistReference`.
1014pub mod multi_checklist_reference {
1015    #[derive(Clone, PartialEq, ::prost::Message)]
1016    pub struct ChecklistReferenceList {
1017        #[prost(message, repeated, tag = "1")]
1018        pub references: ::prost::alloc::vec::Vec<super::ChecklistReference>,
1019    }
1020    #[derive(Clone, PartialEq, ::prost::Oneof)]
1021    pub enum Option {
1022        #[prost(message, tag = "1")]
1023        List(ChecklistReferenceList),
1024    }
1025}
1026#[derive(Clone, PartialEq, ::prost::Message)]
1027pub struct ChecklistReference {
1028    #[prost(oneof = "checklist_reference::Option", tags = "1")]
1029    pub option: ::core::option::Option<checklist_reference::Option>,
1030}
1031/// Nested message and enum types in `ChecklistReference`.
1032pub mod checklist_reference {
1033    #[derive(Clone, PartialEq, ::prost::Oneof)]
1034    pub enum Option {
1035        #[prost(string, tag = "1")]
1036        Rid(::prost::alloc::string::String),
1037    }
1038}
1039#[derive(Clone, PartialEq, ::prost::Message)]
1040pub struct MultiIntegrationReference {
1041    #[prost(oneof = "multi_integration_reference::Option", tags = "1")]
1042    pub option: ::core::option::Option<multi_integration_reference::Option>,
1043}
1044/// Nested message and enum types in `MultiIntegrationReference`.
1045pub mod multi_integration_reference {
1046    #[derive(Clone, PartialEq, ::prost::Message)]
1047    pub struct IntegrationReferenceList {
1048        #[prost(message, repeated, tag = "1")]
1049        pub references: ::prost::alloc::vec::Vec<super::IntegrationReference>,
1050    }
1051    #[derive(Clone, PartialEq, ::prost::Oneof)]
1052    pub enum Option {
1053        #[prost(message, tag = "1")]
1054        List(IntegrationReferenceList),
1055    }
1056}
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct IntegrationReference {
1059    #[prost(oneof = "integration_reference::Option", tags = "1")]
1060    pub option: ::core::option::Option<integration_reference::Option>,
1061}
1062/// Nested message and enum types in `IntegrationReference`.
1063pub mod integration_reference {
1064    #[derive(Clone, PartialEq, ::prost::Oneof)]
1065    pub enum Option {
1066        #[prost(string, tag = "1")]
1067        Rid(::prost::alloc::string::String),
1068    }
1069}
1070#[derive(Clone, PartialEq, ::prost::Message)]
1071pub struct FormField {
1072    #[prost(string, tag = "1")]
1073    pub id: ::prost::alloc::string::String,
1074    #[prost(string, optional, tag = "11")]
1075    pub label: ::core::option::Option<::prost::alloc::string::String>,
1076    #[prost(string, optional, tag = "12")]
1077    pub description: ::core::option::Option<::prost::alloc::string::String>,
1078    #[prost(oneof = "form_field::Field", tags = "2, 3, 4, 5, 6, 7, 8, 9, 10")]
1079    pub field: ::core::option::Option<form_field::Field>,
1080}
1081/// Nested message and enum types in `FormField`.
1082pub mod form_field {
1083    #[derive(Clone, PartialEq, ::prost::Oneof)]
1084    pub enum Field {
1085        #[prost(message, tag = "2")]
1086        Asset(super::AssetField),
1087        #[prost(message, tag = "3")]
1088        Checkbox(super::CheckboxField),
1089        #[prost(message, tag = "4")]
1090        Text(super::TextField),
1091        #[prost(message, tag = "5")]
1092        Int(super::IntField),
1093        #[prost(message, tag = "6")]
1094        Double(super::DoubleField),
1095        #[prost(message, tag = "7")]
1096        SingleEnum(super::SingleEnumField),
1097        #[prost(message, tag = "8")]
1098        MultiEnum(super::MultiEnumField),
1099        #[prost(message, tag = "9")]
1100        FileUpload(super::FileUploadField),
1101        #[prost(message, tag = "10")]
1102        MultiFileUpload(super::MultiFileUploadField),
1103    }
1104}
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct PresetAssetFieldOptions {
1107    #[prost(message, repeated, tag = "1")]
1108    pub options: ::prost::alloc::vec::Vec<AssetReference>,
1109    #[prost(message, optional, tag = "2")]
1110    pub default_option: ::core::option::Option<AssetReference>,
1111}
1112#[derive(Clone, PartialEq, ::prost::Message)]
1113pub struct AssetField {
1114    #[prost(string, tag = "1")]
1115    pub label: ::prost::alloc::string::String,
1116    #[prost(bool, tag = "2")]
1117    pub is_required: bool,
1118    #[prost(oneof = "asset_field::Options", tags = "3")]
1119    pub options: ::core::option::Option<asset_field::Options>,
1120}
1121/// Nested message and enum types in `AssetField`.
1122pub mod asset_field {
1123    #[derive(Clone, PartialEq, ::prost::Oneof)]
1124    pub enum Options {
1125        #[prost(message, tag = "3")]
1126        PresetOptions(super::PresetAssetFieldOptions),
1127    }
1128}
1129#[derive(Clone, PartialEq, ::prost::Message)]
1130pub struct CheckboxField {
1131    #[prost(string, tag = "1")]
1132    pub label: ::prost::alloc::string::String,
1133    #[prost(bool, tag = "2")]
1134    pub is_required: bool,
1135}
1136#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1137pub struct TextFieldSimpleInputType {}
1138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1139pub struct TextFieldMarkdownInputType {}
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct TextField {
1142    #[prost(string, tag = "1")]
1143    pub label: ::prost::alloc::string::String,
1144    #[prost(uint32, optional, tag = "4")]
1145    pub min_length: ::core::option::Option<u32>,
1146    #[prost(uint32, optional, tag = "5")]
1147    pub max_length: ::core::option::Option<u32>,
1148    #[prost(string, optional, tag = "6")]
1149    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
1150    #[prost(string, optional, tag = "7")]
1151    pub pattern_description: ::core::option::Option<::prost::alloc::string::String>,
1152    #[prost(oneof = "text_field::InputType", tags = "2, 3")]
1153    pub input_type: ::core::option::Option<text_field::InputType>,
1154}
1155/// Nested message and enum types in `TextField`.
1156pub mod text_field {
1157    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1158    pub enum InputType {
1159        #[prost(message, tag = "2")]
1160        Simple(super::TextFieldSimpleInputType),
1161        #[prost(message, tag = "3")]
1162        Markdown(super::TextFieldMarkdownInputType),
1163    }
1164}
1165#[derive(Clone, PartialEq, ::prost::Message)]
1166pub struct IntField {
1167    #[prost(string, tag = "1")]
1168    pub label: ::prost::alloc::string::String,
1169    #[prost(bool, tag = "2")]
1170    pub is_required: bool,
1171    #[prost(int64, optional, tag = "3")]
1172    pub gte_value: ::core::option::Option<i64>,
1173    #[prost(int64, optional, tag = "4")]
1174    pub lte_value: ::core::option::Option<i64>,
1175}
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct DoubleField {
1178    #[prost(string, tag = "1")]
1179    pub label: ::prost::alloc::string::String,
1180    #[prost(bool, tag = "2")]
1181    pub is_required: bool,
1182    #[prost(oneof = "double_field::LowerBound", tags = "3, 4")]
1183    pub lower_bound: ::core::option::Option<double_field::LowerBound>,
1184    #[prost(oneof = "double_field::UpperBound", tags = "5, 6")]
1185    pub upper_bound: ::core::option::Option<double_field::UpperBound>,
1186}
1187/// Nested message and enum types in `DoubleField`.
1188pub mod double_field {
1189    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1190    pub enum LowerBound {
1191        #[prost(double, tag = "3")]
1192        GtValue(f64),
1193        #[prost(double, tag = "4")]
1194        GteValue(f64),
1195    }
1196    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1197    pub enum UpperBound {
1198        #[prost(double, tag = "5")]
1199        LtValue(f64),
1200        #[prost(double, tag = "6")]
1201        LteValue(f64),
1202    }
1203}
1204#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1205pub struct EnumFieldButtonsInputType {}
1206#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1207pub struct EnumFieldMenuInputType {}
1208#[derive(Clone, PartialEq, ::prost::Message)]
1209pub struct SingleEnumField {
1210    #[prost(string, tag = "1")]
1211    pub label: ::prost::alloc::string::String,
1212    #[prost(string, repeated, tag = "2")]
1213    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1214    #[prost(bool, tag = "5")]
1215    pub allow_custom: bool,
1216    #[prost(bool, tag = "6")]
1217    pub is_required: bool,
1218    #[prost(oneof = "single_enum_field::InputType", tags = "3, 4")]
1219    pub input_type: ::core::option::Option<single_enum_field::InputType>,
1220}
1221/// Nested message and enum types in `SingleEnumField`.
1222pub mod single_enum_field {
1223    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1224    pub enum InputType {
1225        #[prost(message, tag = "3")]
1226        Buttons(super::EnumFieldButtonsInputType),
1227        #[prost(message, tag = "4")]
1228        Dropdown(super::EnumFieldMenuInputType),
1229    }
1230}
1231#[derive(Clone, PartialEq, ::prost::Message)]
1232pub struct MultiEnumField {
1233    #[prost(string, tag = "1")]
1234    pub label: ::prost::alloc::string::String,
1235    #[prost(string, repeated, tag = "2")]
1236    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1237    #[prost(bool, tag = "6")]
1238    pub allow_custom: bool,
1239    #[prost(uint32, optional, tag = "7")]
1240    pub min_count: ::core::option::Option<u32>,
1241    #[prost(uint32, optional, tag = "8")]
1242    pub max_count: ::core::option::Option<u32>,
1243    #[prost(oneof = "multi_enum_field::InputType", tags = "3, 4")]
1244    pub input_type: ::core::option::Option<multi_enum_field::InputType>,
1245}
1246/// Nested message and enum types in `MultiEnumField`.
1247pub mod multi_enum_field {
1248    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1249    pub enum InputType {
1250        #[prost(message, tag = "3")]
1251        Buttons(super::EnumFieldButtonsInputType),
1252        #[prost(message, tag = "4")]
1253        Dropdown(super::EnumFieldMenuInputType),
1254    }
1255}
1256#[derive(Clone, PartialEq, ::prost::Message)]
1257pub struct FileUploadField {
1258    #[prost(bool, tag = "1")]
1259    pub is_required: bool,
1260    #[prost(string, repeated, tag = "2")]
1261    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1262}
1263#[derive(Clone, PartialEq, ::prost::Message)]
1264pub struct MultiFileUploadField {
1265    #[prost(uint32, optional, tag = "1")]
1266    pub min_count: ::core::option::Option<u32>,
1267    #[prost(uint32, optional, tag = "2")]
1268    pub max_count: ::core::option::Option<u32>,
1269    #[prost(string, repeated, tag = "3")]
1270    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1271}
1272#[derive(Clone, PartialEq, ::prost::Message)]
1273pub struct ProcedureMetadata {
1274    #[prost(string, tag = "1")]
1275    pub rid: ::prost::alloc::string::String,
1276    #[prost(string, tag = "2")]
1277    pub title: ::prost::alloc::string::String,
1278    #[prost(string, optional, tag = "3")]
1279    pub description: ::core::option::Option<::prost::alloc::string::String>,
1280    #[prost(string, repeated, tag = "4")]
1281    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1282    #[prost(map = "string, string", tag = "5")]
1283    pub properties: ::std::collections::HashMap<
1284        ::prost::alloc::string::String,
1285        ::prost::alloc::string::String,
1286    >,
1287    #[prost(bool, tag = "6")]
1288    pub is_archived: bool,
1289    #[prost(bool, tag = "7")]
1290    pub is_published: bool,
1291    #[prost(message, optional, tag = "8")]
1292    pub created_at: ::core::option::Option<
1293        super::super::super::google::protobuf::Timestamp,
1294    >,
1295    #[prost(string, tag = "9")]
1296    pub created_by: ::prost::alloc::string::String,
1297    #[prost(message, optional, tag = "10")]
1298    pub updated_at: ::core::option::Option<
1299        super::super::super::google::protobuf::Timestamp,
1300    >,
1301    #[prost(string, tag = "11")]
1302    pub updated_by: ::prost::alloc::string::String,
1303    #[prost(string, tag = "12")]
1304    pub workspace: ::prost::alloc::string::String,
1305    #[prost(int64, optional, tag = "13")]
1306    pub execution_count: ::core::option::Option<i64>,
1307}
1308#[derive(Clone, PartialEq, ::prost::Message)]
1309pub struct Procedure {
1310    #[prost(string, tag = "1")]
1311    pub rid: ::prost::alloc::string::String,
1312    #[prost(string, tag = "2")]
1313    pub commit: ::prost::alloc::string::String,
1314    #[prost(message, optional, tag = "3")]
1315    pub metadata: ::core::option::Option<ProcedureMetadata>,
1316    #[prost(message, optional, tag = "4")]
1317    pub state: ::core::option::Option<ProcedureState>,
1318}
1319#[derive(Clone, PartialEq, ::prost::Message)]
1320pub struct CreateProcedureRequest {
1321    #[prost(string, tag = "1")]
1322    pub title: ::prost::alloc::string::String,
1323    #[prost(string, optional, tag = "2")]
1324    pub description: ::core::option::Option<::prost::alloc::string::String>,
1325    #[prost(string, repeated, tag = "3")]
1326    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1327    #[prost(map = "string, string", tag = "4")]
1328    pub properties: ::std::collections::HashMap<
1329        ::prost::alloc::string::String,
1330        ::prost::alloc::string::String,
1331    >,
1332    #[prost(message, optional, tag = "5")]
1333    pub state: ::core::option::Option<ProcedureState>,
1334    #[prost(bool, optional, tag = "6")]
1335    pub is_published: ::core::option::Option<bool>,
1336    #[prost(string, tag = "7")]
1337    pub workspace: ::prost::alloc::string::String,
1338    #[prost(string, tag = "8")]
1339    pub commit_message: ::prost::alloc::string::String,
1340    #[prost(string, optional, tag = "9")]
1341    pub initial_branch_name: ::core::option::Option<::prost::alloc::string::String>,
1342}
1343#[derive(Clone, PartialEq, ::prost::Message)]
1344pub struct CreateProcedureResponse {
1345    #[prost(message, optional, tag = "1")]
1346    pub procedure: ::core::option::Option<Procedure>,
1347    #[prost(string, optional, tag = "2")]
1348    pub branch_name: ::core::option::Option<::prost::alloc::string::String>,
1349}
1350#[derive(Clone, PartialEq, ::prost::Message)]
1351pub struct GetProcedureRequest {
1352    #[prost(string, tag = "1")]
1353    pub rid: ::prost::alloc::string::String,
1354    #[prost(message, optional, tag = "2")]
1355    pub branch_or_commit: ::core::option::Option<
1356        super::super::versioning::v1::BranchOrCommit,
1357    >,
1358    #[prost(bool, tag = "3")]
1359    pub include_display_graph: bool,
1360}
1361#[derive(Clone, PartialEq, ::prost::Message)]
1362pub struct GetProcedureResponse {
1363    #[prost(message, optional, tag = "1")]
1364    pub procedure: ::core::option::Option<Procedure>,
1365    #[prost(message, optional, tag = "2")]
1366    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1367}
1368#[derive(Clone, PartialEq, ::prost::Message)]
1369pub struct BatchGetProcedureMetadataRequest {
1370    #[prost(string, repeated, tag = "1")]
1371    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1372}
1373#[derive(Clone, PartialEq, ::prost::Message)]
1374pub struct BatchGetProcedureMetadataResponse {
1375    #[prost(message, repeated, tag = "1")]
1376    pub procedure_metadatas: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1377}
1378#[derive(Clone, PartialEq, ::prost::Message)]
1379pub struct UpdateProcedureMetadataRequest {
1380    #[prost(string, tag = "1")]
1381    pub rid: ::prost::alloc::string::String,
1382    #[prost(string, optional, tag = "2")]
1383    pub title: ::core::option::Option<::prost::alloc::string::String>,
1384    #[prost(string, optional, tag = "3")]
1385    pub description: ::core::option::Option<::prost::alloc::string::String>,
1386    #[prost(message, optional, tag = "4")]
1387    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
1388    #[prost(message, optional, tag = "5")]
1389    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
1390    #[prost(bool, optional, tag = "6")]
1391    pub is_archived: ::core::option::Option<bool>,
1392    #[prost(bool, optional, tag = "7")]
1393    pub is_published: ::core::option::Option<bool>,
1394}
1395#[derive(Clone, PartialEq, ::prost::Message)]
1396pub struct UpdateProcedureMetadataResponse {
1397    #[prost(message, optional, tag = "1")]
1398    pub procedure_metadata: ::core::option::Option<ProcedureMetadata>,
1399}
1400#[derive(Clone, PartialEq, ::prost::Message)]
1401pub struct ParseNestedProcedureRequest {
1402    #[prost(message, optional, tag = "1")]
1403    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1404    #[prost(bool, tag = "3")]
1405    pub include_display_graph: bool,
1406}
1407#[derive(Clone, PartialEq, ::prost::Message)]
1408pub struct ParseNestedProcedureResponse {
1409    #[prost(message, optional, tag = "1")]
1410    pub procedure: ::core::option::Option<Procedure>,
1411    #[prost(message, optional, tag = "2")]
1412    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1413}
1414#[derive(Clone, PartialEq, ::prost::Message)]
1415pub struct GetProcedureAsNestedRequest {
1416    #[prost(string, tag = "1")]
1417    pub rid: ::prost::alloc::string::String,
1418    #[prost(message, optional, tag = "2")]
1419    pub branch_or_commit: ::core::option::Option<
1420        super::super::versioning::v1::BranchOrCommit,
1421    >,
1422}
1423#[derive(Clone, PartialEq, ::prost::Message)]
1424pub struct GetProcedureAsNestedResponse {
1425    #[prost(message, optional, tag = "1")]
1426    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1427}
1428#[derive(Clone, PartialEq, ::prost::Message)]
1429pub struct MergeToMainRequest {
1430    #[prost(string, tag = "1")]
1431    pub rid: ::prost::alloc::string::String,
1432    #[prost(string, tag = "2")]
1433    pub branch: ::prost::alloc::string::String,
1434    #[prost(string, optional, tag = "3")]
1435    pub latest_commit_on_main: ::core::option::Option<::prost::alloc::string::String>,
1436    #[prost(string, tag = "4")]
1437    pub message: ::prost::alloc::string::String,
1438}
1439#[derive(Clone, PartialEq, ::prost::Message)]
1440pub struct MergeToMainResponse {
1441    #[prost(message, optional, tag = "1")]
1442    pub procedure: ::core::option::Option<Procedure>,
1443}
1444#[derive(Clone, PartialEq, ::prost::Message)]
1445pub struct SaveWorkingStateRequest {
1446    #[prost(string, tag = "1")]
1447    pub rid: ::prost::alloc::string::String,
1448    #[prost(string, optional, tag = "2")]
1449    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1450    #[prost(string, tag = "3")]
1451    pub message: ::prost::alloc::string::String,
1452    #[prost(string, optional, tag = "4")]
1453    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1454    #[prost(message, optional, tag = "5")]
1455    pub state: ::core::option::Option<ProcedureState>,
1456}
1457#[derive(Clone, PartialEq, ::prost::Message)]
1458pub struct SaveWorkingStateResponse {
1459    #[prost(message, optional, tag = "1")]
1460    pub procedure: ::core::option::Option<Procedure>,
1461}
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463pub struct CommitRequest {
1464    #[prost(string, tag = "1")]
1465    pub rid: ::prost::alloc::string::String,
1466    #[prost(string, optional, tag = "2")]
1467    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1468    #[prost(string, optional, tag = "3")]
1469    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1470    #[prost(string, tag = "4")]
1471    pub message: ::prost::alloc::string::String,
1472    #[prost(message, optional, tag = "5")]
1473    pub state: ::core::option::Option<ProcedureState>,
1474}
1475#[derive(Clone, PartialEq, ::prost::Message)]
1476pub struct CommitResponse {
1477    #[prost(message, optional, tag = "1")]
1478    pub procedure: ::core::option::Option<Procedure>,
1479}
1480#[derive(Clone, PartialEq, ::prost::Message)]
1481pub struct ProcedureSearchQuery {
1482    #[prost(oneof = "procedure_search_query::Query", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
1483    pub query: ::core::option::Option<procedure_search_query::Query>,
1484}
1485/// Nested message and enum types in `ProcedureSearchQuery`.
1486pub mod procedure_search_query {
1487    #[derive(Clone, PartialEq, ::prost::Message)]
1488    pub struct ProcedureSearchAndQuery {
1489        #[prost(message, repeated, tag = "1")]
1490        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1491    }
1492    #[derive(Clone, PartialEq, ::prost::Message)]
1493    pub struct ProcedureSearchOrQuery {
1494        #[prost(message, repeated, tag = "1")]
1495        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1496    }
1497    #[derive(Clone, PartialEq, ::prost::Oneof)]
1498    pub enum Query {
1499        #[prost(string, tag = "1")]
1500        SearchText(::prost::alloc::string::String),
1501        #[prost(string, tag = "2")]
1502        Label(::prost::alloc::string::String),
1503        #[prost(message, tag = "3")]
1504        Property(super::super::super::types::Property),
1505        #[prost(message, tag = "4")]
1506        And(ProcedureSearchAndQuery),
1507        #[prost(message, tag = "5")]
1508        Or(ProcedureSearchOrQuery),
1509        #[prost(string, tag = "6")]
1510        Workspace(::prost::alloc::string::String),
1511        #[prost(string, tag = "7")]
1512        CreatedBy(::prost::alloc::string::String),
1513        #[prost(bool, tag = "8")]
1514        IsArchived(bool),
1515    }
1516}
1517#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1518pub struct SearchProceduresSortOptions {
1519    #[prost(bool, optional, tag = "1")]
1520    pub is_descending: ::core::option::Option<bool>,
1521    #[prost(enumeration = "SearchProceduresSortField", optional, tag = "2")]
1522    pub sort_field: ::core::option::Option<i32>,
1523}
1524#[derive(Clone, PartialEq, ::prost::Message)]
1525pub struct SearchProceduresRequest {
1526    #[prost(message, optional, tag = "1")]
1527    pub query: ::core::option::Option<ProcedureSearchQuery>,
1528    #[prost(message, optional, tag = "2")]
1529    pub sort_options: ::core::option::Option<SearchProceduresSortOptions>,
1530    #[prost(int32, optional, tag = "3")]
1531    pub page_size: ::core::option::Option<i32>,
1532    #[prost(string, optional, tag = "4")]
1533    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1534}
1535#[derive(Clone, PartialEq, ::prost::Message)]
1536pub struct SearchProceduresResponse {
1537    #[prost(message, repeated, tag = "1")]
1538    pub procedure_metadata: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1539    #[prost(string, optional, tag = "2")]
1540    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1541}
1542#[derive(Clone, PartialEq, ::prost::Message)]
1543pub struct ArchiveProceduresRequest {
1544    #[prost(string, repeated, tag = "1")]
1545    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1546}
1547#[derive(Clone, PartialEq, ::prost::Message)]
1548pub struct ArchiveProceduresResponse {
1549    #[prost(string, repeated, tag = "1")]
1550    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1551}
1552#[derive(Clone, PartialEq, ::prost::Message)]
1553pub struct UnarchiveProceduresRequest {
1554    #[prost(string, repeated, tag = "1")]
1555    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1556}
1557#[derive(Clone, PartialEq, ::prost::Message)]
1558pub struct UnarchiveProceduresResponse {
1559    #[prost(string, repeated, tag = "1")]
1560    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1561}
1562#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1563#[repr(i32)]
1564pub enum CaptureMoment {
1565    Unspecified = 0,
1566    StepStart = 1,
1567    StepCompletion = 2,
1568}
1569impl CaptureMoment {
1570    /// String value of the enum field names used in the ProtoBuf definition.
1571    ///
1572    /// The values are not transformed in any way and thus are considered stable
1573    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1574    pub fn as_str_name(&self) -> &'static str {
1575        match self {
1576            Self::Unspecified => "CAPTURE_MOMENT_UNSPECIFIED",
1577            Self::StepStart => "CAPTURE_MOMENT_STEP_START",
1578            Self::StepCompletion => "CAPTURE_MOMENT_STEP_COMPLETION",
1579        }
1580    }
1581    /// Creates an enum from field names used in the ProtoBuf definition.
1582    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1583        match value {
1584            "CAPTURE_MOMENT_UNSPECIFIED" => Some(Self::Unspecified),
1585            "CAPTURE_MOMENT_STEP_START" => Some(Self::StepStart),
1586            "CAPTURE_MOMENT_STEP_COMPLETION" => Some(Self::StepCompletion),
1587            _ => None,
1588        }
1589    }
1590}
1591#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1592#[repr(i32)]
1593pub enum SearchProceduresSortField {
1594    Unspecified = 0,
1595    Name = 1,
1596    CreatedAt = 2,
1597    UpdatedAt = 3,
1598}
1599impl SearchProceduresSortField {
1600    /// String value of the enum field names used in the ProtoBuf definition.
1601    ///
1602    /// The values are not transformed in any way and thus are considered stable
1603    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1604    pub fn as_str_name(&self) -> &'static str {
1605        match self {
1606            Self::Unspecified => "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED",
1607            Self::Name => "SEARCH_PROCEDURES_SORT_FIELD_NAME",
1608            Self::CreatedAt => "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT",
1609            Self::UpdatedAt => "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT",
1610        }
1611    }
1612    /// Creates an enum from field names used in the ProtoBuf definition.
1613    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1614        match value {
1615            "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
1616            "SEARCH_PROCEDURES_SORT_FIELD_NAME" => Some(Self::Name),
1617            "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
1618            "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
1619            _ => None,
1620        }
1621    }
1622}
1623#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1624#[repr(i32)]
1625pub enum ProceduresServiceError {
1626    Unspecified = 0,
1627    NotFound = 1,
1628    CommitNotFound = 2,
1629    CannotMergeMain = 3,
1630    CannotCommitToArchivedProcedure = 4,
1631    InvalidGraph = 5,
1632    InvalidSearchToken = 6,
1633}
1634impl ProceduresServiceError {
1635    /// String value of the enum field names used in the ProtoBuf definition.
1636    ///
1637    /// The values are not transformed in any way and thus are considered stable
1638    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1639    pub fn as_str_name(&self) -> &'static str {
1640        match self {
1641            Self::Unspecified => "PROCEDURES_SERVICE_ERROR_UNSPECIFIED",
1642            Self::NotFound => "PROCEDURES_SERVICE_ERROR_NOT_FOUND",
1643            Self::CommitNotFound => "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND",
1644            Self::CannotMergeMain => "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN",
1645            Self::CannotCommitToArchivedProcedure => {
1646                "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE"
1647            }
1648            Self::InvalidGraph => "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH",
1649            Self::InvalidSearchToken => "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN",
1650        }
1651    }
1652    /// Creates an enum from field names used in the ProtoBuf definition.
1653    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1654        match value {
1655            "PROCEDURES_SERVICE_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
1656            "PROCEDURES_SERVICE_ERROR_NOT_FOUND" => Some(Self::NotFound),
1657            "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND" => Some(Self::CommitNotFound),
1658            "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN" => Some(Self::CannotMergeMain),
1659            "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE" => {
1660                Some(Self::CannotCommitToArchivedProcedure)
1661            }
1662            "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH" => Some(Self::InvalidGraph),
1663            "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN" => {
1664                Some(Self::InvalidSearchToken)
1665            }
1666            _ => None,
1667        }
1668    }
1669}
1670/// Generated client implementations.
1671pub mod procedures_service_client {
1672    #![allow(
1673        unused_variables,
1674        dead_code,
1675        missing_docs,
1676        clippy::wildcard_imports,
1677        clippy::let_unit_value,
1678    )]
1679    use tonic::codegen::*;
1680    use tonic::codegen::http::Uri;
1681    #[derive(Debug, Clone)]
1682    pub struct ProceduresServiceClient<T> {
1683        inner: tonic::client::Grpc<T>,
1684    }
1685    impl ProceduresServiceClient<tonic::transport::Channel> {
1686        /// Attempt to create a new client by connecting to a given endpoint.
1687        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1688        where
1689            D: TryInto<tonic::transport::Endpoint>,
1690            D::Error: Into<StdError>,
1691        {
1692            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1693            Ok(Self::new(conn))
1694        }
1695    }
1696    impl<T> ProceduresServiceClient<T>
1697    where
1698        T: tonic::client::GrpcService<tonic::body::Body>,
1699        T::Error: Into<StdError>,
1700        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1701        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1702    {
1703        pub fn new(inner: T) -> Self {
1704            let inner = tonic::client::Grpc::new(inner);
1705            Self { inner }
1706        }
1707        pub fn with_origin(inner: T, origin: Uri) -> Self {
1708            let inner = tonic::client::Grpc::with_origin(inner, origin);
1709            Self { inner }
1710        }
1711        pub fn with_interceptor<F>(
1712            inner: T,
1713            interceptor: F,
1714        ) -> ProceduresServiceClient<InterceptedService<T, F>>
1715        where
1716            F: tonic::service::Interceptor,
1717            T::ResponseBody: Default,
1718            T: tonic::codegen::Service<
1719                http::Request<tonic::body::Body>,
1720                Response = http::Response<
1721                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1722                >,
1723            >,
1724            <T as tonic::codegen::Service<
1725                http::Request<tonic::body::Body>,
1726            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1727        {
1728            ProceduresServiceClient::new(InterceptedService::new(inner, interceptor))
1729        }
1730        /// Compress requests with the given encoding.
1731        ///
1732        /// This requires the server to support it otherwise it might respond with an
1733        /// error.
1734        #[must_use]
1735        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1736            self.inner = self.inner.send_compressed(encoding);
1737            self
1738        }
1739        /// Enable decompressing responses.
1740        #[must_use]
1741        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1742            self.inner = self.inner.accept_compressed(encoding);
1743            self
1744        }
1745        /// Limits the maximum size of a decoded message.
1746        ///
1747        /// Default: `4MB`
1748        #[must_use]
1749        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1750            self.inner = self.inner.max_decoding_message_size(limit);
1751            self
1752        }
1753        /// Limits the maximum size of an encoded message.
1754        ///
1755        /// Default: `usize::MAX`
1756        #[must_use]
1757        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1758            self.inner = self.inner.max_encoding_message_size(limit);
1759            self
1760        }
1761        pub async fn create_procedure(
1762            &mut self,
1763            request: impl tonic::IntoRequest<super::CreateProcedureRequest>,
1764        ) -> std::result::Result<
1765            tonic::Response<super::CreateProcedureResponse>,
1766            tonic::Status,
1767        > {
1768            self.inner
1769                .ready()
1770                .await
1771                .map_err(|e| {
1772                    tonic::Status::unknown(
1773                        format!("Service was not ready: {}", e.into()),
1774                    )
1775                })?;
1776            let codec = tonic::codec::ProstCodec::default();
1777            let path = http::uri::PathAndQuery::from_static(
1778                "/nominal.procedures.v1.ProceduresService/CreateProcedure",
1779            );
1780            let mut req = request.into_request();
1781            req.extensions_mut()
1782                .insert(
1783                    GrpcMethod::new(
1784                        "nominal.procedures.v1.ProceduresService",
1785                        "CreateProcedure",
1786                    ),
1787                );
1788            self.inner.unary(req, path, codec).await
1789        }
1790        pub async fn get_procedure(
1791            &mut self,
1792            request: impl tonic::IntoRequest<super::GetProcedureRequest>,
1793        ) -> std::result::Result<
1794            tonic::Response<super::GetProcedureResponse>,
1795            tonic::Status,
1796        > {
1797            self.inner
1798                .ready()
1799                .await
1800                .map_err(|e| {
1801                    tonic::Status::unknown(
1802                        format!("Service was not ready: {}", e.into()),
1803                    )
1804                })?;
1805            let codec = tonic::codec::ProstCodec::default();
1806            let path = http::uri::PathAndQuery::from_static(
1807                "/nominal.procedures.v1.ProceduresService/GetProcedure",
1808            );
1809            let mut req = request.into_request();
1810            req.extensions_mut()
1811                .insert(
1812                    GrpcMethod::new(
1813                        "nominal.procedures.v1.ProceduresService",
1814                        "GetProcedure",
1815                    ),
1816                );
1817            self.inner.unary(req, path, codec).await
1818        }
1819        pub async fn batch_get_procedure_metadata(
1820            &mut self,
1821            request: impl tonic::IntoRequest<super::BatchGetProcedureMetadataRequest>,
1822        ) -> std::result::Result<
1823            tonic::Response<super::BatchGetProcedureMetadataResponse>,
1824            tonic::Status,
1825        > {
1826            self.inner
1827                .ready()
1828                .await
1829                .map_err(|e| {
1830                    tonic::Status::unknown(
1831                        format!("Service was not ready: {}", e.into()),
1832                    )
1833                })?;
1834            let codec = tonic::codec::ProstCodec::default();
1835            let path = http::uri::PathAndQuery::from_static(
1836                "/nominal.procedures.v1.ProceduresService/BatchGetProcedureMetadata",
1837            );
1838            let mut req = request.into_request();
1839            req.extensions_mut()
1840                .insert(
1841                    GrpcMethod::new(
1842                        "nominal.procedures.v1.ProceduresService",
1843                        "BatchGetProcedureMetadata",
1844                    ),
1845                );
1846            self.inner.unary(req, path, codec).await
1847        }
1848        pub async fn update_procedure_metadata(
1849            &mut self,
1850            request: impl tonic::IntoRequest<super::UpdateProcedureMetadataRequest>,
1851        ) -> std::result::Result<
1852            tonic::Response<super::UpdateProcedureMetadataResponse>,
1853            tonic::Status,
1854        > {
1855            self.inner
1856                .ready()
1857                .await
1858                .map_err(|e| {
1859                    tonic::Status::unknown(
1860                        format!("Service was not ready: {}", e.into()),
1861                    )
1862                })?;
1863            let codec = tonic::codec::ProstCodec::default();
1864            let path = http::uri::PathAndQuery::from_static(
1865                "/nominal.procedures.v1.ProceduresService/UpdateProcedureMetadata",
1866            );
1867            let mut req = request.into_request();
1868            req.extensions_mut()
1869                .insert(
1870                    GrpcMethod::new(
1871                        "nominal.procedures.v1.ProceduresService",
1872                        "UpdateProcedureMetadata",
1873                    ),
1874                );
1875            self.inner.unary(req, path, codec).await
1876        }
1877        pub async fn parse_nested_procedure(
1878            &mut self,
1879            request: impl tonic::IntoRequest<super::ParseNestedProcedureRequest>,
1880        ) -> std::result::Result<
1881            tonic::Response<super::ParseNestedProcedureResponse>,
1882            tonic::Status,
1883        > {
1884            self.inner
1885                .ready()
1886                .await
1887                .map_err(|e| {
1888                    tonic::Status::unknown(
1889                        format!("Service was not ready: {}", e.into()),
1890                    )
1891                })?;
1892            let codec = tonic::codec::ProstCodec::default();
1893            let path = http::uri::PathAndQuery::from_static(
1894                "/nominal.procedures.v1.ProceduresService/ParseNestedProcedure",
1895            );
1896            let mut req = request.into_request();
1897            req.extensions_mut()
1898                .insert(
1899                    GrpcMethod::new(
1900                        "nominal.procedures.v1.ProceduresService",
1901                        "ParseNestedProcedure",
1902                    ),
1903                );
1904            self.inner.unary(req, path, codec).await
1905        }
1906        pub async fn get_procedure_as_nested(
1907            &mut self,
1908            request: impl tonic::IntoRequest<super::GetProcedureAsNestedRequest>,
1909        ) -> std::result::Result<
1910            tonic::Response<super::GetProcedureAsNestedResponse>,
1911            tonic::Status,
1912        > {
1913            self.inner
1914                .ready()
1915                .await
1916                .map_err(|e| {
1917                    tonic::Status::unknown(
1918                        format!("Service was not ready: {}", e.into()),
1919                    )
1920                })?;
1921            let codec = tonic::codec::ProstCodec::default();
1922            let path = http::uri::PathAndQuery::from_static(
1923                "/nominal.procedures.v1.ProceduresService/GetProcedureAsNested",
1924            );
1925            let mut req = request.into_request();
1926            req.extensions_mut()
1927                .insert(
1928                    GrpcMethod::new(
1929                        "nominal.procedures.v1.ProceduresService",
1930                        "GetProcedureAsNested",
1931                    ),
1932                );
1933            self.inner.unary(req, path, codec).await
1934        }
1935        pub async fn merge_to_main(
1936            &mut self,
1937            request: impl tonic::IntoRequest<super::MergeToMainRequest>,
1938        ) -> std::result::Result<
1939            tonic::Response<super::MergeToMainResponse>,
1940            tonic::Status,
1941        > {
1942            self.inner
1943                .ready()
1944                .await
1945                .map_err(|e| {
1946                    tonic::Status::unknown(
1947                        format!("Service was not ready: {}", e.into()),
1948                    )
1949                })?;
1950            let codec = tonic::codec::ProstCodec::default();
1951            let path = http::uri::PathAndQuery::from_static(
1952                "/nominal.procedures.v1.ProceduresService/MergeToMain",
1953            );
1954            let mut req = request.into_request();
1955            req.extensions_mut()
1956                .insert(
1957                    GrpcMethod::new(
1958                        "nominal.procedures.v1.ProceduresService",
1959                        "MergeToMain",
1960                    ),
1961                );
1962            self.inner.unary(req, path, codec).await
1963        }
1964        pub async fn save_working_state(
1965            &mut self,
1966            request: impl tonic::IntoRequest<super::SaveWorkingStateRequest>,
1967        ) -> std::result::Result<
1968            tonic::Response<super::SaveWorkingStateResponse>,
1969            tonic::Status,
1970        > {
1971            self.inner
1972                .ready()
1973                .await
1974                .map_err(|e| {
1975                    tonic::Status::unknown(
1976                        format!("Service was not ready: {}", e.into()),
1977                    )
1978                })?;
1979            let codec = tonic::codec::ProstCodec::default();
1980            let path = http::uri::PathAndQuery::from_static(
1981                "/nominal.procedures.v1.ProceduresService/SaveWorkingState",
1982            );
1983            let mut req = request.into_request();
1984            req.extensions_mut()
1985                .insert(
1986                    GrpcMethod::new(
1987                        "nominal.procedures.v1.ProceduresService",
1988                        "SaveWorkingState",
1989                    ),
1990                );
1991            self.inner.unary(req, path, codec).await
1992        }
1993        pub async fn commit(
1994            &mut self,
1995            request: impl tonic::IntoRequest<super::CommitRequest>,
1996        ) -> std::result::Result<tonic::Response<super::CommitResponse>, tonic::Status> {
1997            self.inner
1998                .ready()
1999                .await
2000                .map_err(|e| {
2001                    tonic::Status::unknown(
2002                        format!("Service was not ready: {}", e.into()),
2003                    )
2004                })?;
2005            let codec = tonic::codec::ProstCodec::default();
2006            let path = http::uri::PathAndQuery::from_static(
2007                "/nominal.procedures.v1.ProceduresService/Commit",
2008            );
2009            let mut req = request.into_request();
2010            req.extensions_mut()
2011                .insert(
2012                    GrpcMethod::new("nominal.procedures.v1.ProceduresService", "Commit"),
2013                );
2014            self.inner.unary(req, path, codec).await
2015        }
2016        pub async fn search_procedures(
2017            &mut self,
2018            request: impl tonic::IntoRequest<super::SearchProceduresRequest>,
2019        ) -> std::result::Result<
2020            tonic::Response<super::SearchProceduresResponse>,
2021            tonic::Status,
2022        > {
2023            self.inner
2024                .ready()
2025                .await
2026                .map_err(|e| {
2027                    tonic::Status::unknown(
2028                        format!("Service was not ready: {}", e.into()),
2029                    )
2030                })?;
2031            let codec = tonic::codec::ProstCodec::default();
2032            let path = http::uri::PathAndQuery::from_static(
2033                "/nominal.procedures.v1.ProceduresService/SearchProcedures",
2034            );
2035            let mut req = request.into_request();
2036            req.extensions_mut()
2037                .insert(
2038                    GrpcMethod::new(
2039                        "nominal.procedures.v1.ProceduresService",
2040                        "SearchProcedures",
2041                    ),
2042                );
2043            self.inner.unary(req, path, codec).await
2044        }
2045        pub async fn archive_procedures(
2046            &mut self,
2047            request: impl tonic::IntoRequest<super::ArchiveProceduresRequest>,
2048        ) -> std::result::Result<
2049            tonic::Response<super::ArchiveProceduresResponse>,
2050            tonic::Status,
2051        > {
2052            self.inner
2053                .ready()
2054                .await
2055                .map_err(|e| {
2056                    tonic::Status::unknown(
2057                        format!("Service was not ready: {}", e.into()),
2058                    )
2059                })?;
2060            let codec = tonic::codec::ProstCodec::default();
2061            let path = http::uri::PathAndQuery::from_static(
2062                "/nominal.procedures.v1.ProceduresService/ArchiveProcedures",
2063            );
2064            let mut req = request.into_request();
2065            req.extensions_mut()
2066                .insert(
2067                    GrpcMethod::new(
2068                        "nominal.procedures.v1.ProceduresService",
2069                        "ArchiveProcedures",
2070                    ),
2071                );
2072            self.inner.unary(req, path, codec).await
2073        }
2074        pub async fn unarchive_procedures(
2075            &mut self,
2076            request: impl tonic::IntoRequest<super::UnarchiveProceduresRequest>,
2077        ) -> std::result::Result<
2078            tonic::Response<super::UnarchiveProceduresResponse>,
2079            tonic::Status,
2080        > {
2081            self.inner
2082                .ready()
2083                .await
2084                .map_err(|e| {
2085                    tonic::Status::unknown(
2086                        format!("Service was not ready: {}", e.into()),
2087                    )
2088                })?;
2089            let codec = tonic::codec::ProstCodec::default();
2090            let path = http::uri::PathAndQuery::from_static(
2091                "/nominal.procedures.v1.ProceduresService/UnarchiveProcedures",
2092            );
2093            let mut req = request.into_request();
2094            req.extensions_mut()
2095                .insert(
2096                    GrpcMethod::new(
2097                        "nominal.procedures.v1.ProceduresService",
2098                        "UnarchiveProcedures",
2099                    ),
2100                );
2101            self.inner.unary(req, path, codec).await
2102        }
2103    }
2104}