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    #[prost(message, optional, tag = "3")]
476    pub assets: ::core::option::Option<MultiAssetReference>,
477}
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct ApplyChecklistsConfig {
480    #[prost(message, optional, tag = "1")]
481    pub checklists: ::core::option::Option<MultiChecklistReference>,
482    #[prost(message, optional, tag = "2")]
483    pub runs: ::core::option::Option<MultiRunReference>,
484}
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct ProcedureStepContent {
487    #[prost(oneof = "procedure_step_content::Content", tags = "1, 2, 3, 4")]
488    pub content: ::core::option::Option<procedure_step_content::Content>,
489}
490/// Nested message and enum types in `ProcedureStepContent`.
491pub mod procedure_step_content {
492    #[derive(Clone, PartialEq, ::prost::Oneof)]
493    pub enum Content {
494        #[prost(message, tag = "1")]
495        Form(super::FormStep),
496        #[prost(message, tag = "2")]
497        StartIngest(super::StartIngestStep),
498        #[prost(message, tag = "3")]
499        SelectOrCreateAsset(super::SelectOrCreateAssetStep),
500        #[prost(message, tag = "4")]
501        Wait(super::WaitStep),
502    }
503}
504#[derive(Clone, Copy, PartialEq, ::prost::Message)]
505pub struct WaitStep {}
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct FormStep {
508    #[prost(message, repeated, tag = "1")]
509    pub fields: ::prost::alloc::vec::Vec<FormField>,
510}
511#[derive(Clone, PartialEq, ::prost::Message)]
512pub struct StartIngestStep {
513    #[prost(message, optional, tag = "1")]
514    pub asset: ::core::option::Option<AssetReference>,
515    #[prost(message, optional, tag = "2")]
516    pub ref_name: ::core::option::Option<StringReference>,
517    #[prost(message, optional, tag = "3")]
518    pub ingest_type_config: ::core::option::Option<start_ingest_step::IngestTypeConfig>,
519    #[prost(string, optional, tag = "4")]
520    pub ingest_job_output_field_id: ::core::option::Option<
521        ::prost::alloc::string::String,
522    >,
523}
524/// Nested message and enum types in `StartIngestStep`.
525pub mod start_ingest_step {
526    #[derive(Clone, PartialEq, ::prost::Message)]
527    pub struct IngestTypeConfig {
528        #[prost(oneof = "ingest_type_config::Config", tags = "1, 2, 3, 4")]
529        pub config: ::core::option::Option<ingest_type_config::Config>,
530    }
531    /// Nested message and enum types in `IngestTypeConfig`.
532    pub mod ingest_type_config {
533        #[derive(Clone, PartialEq, ::prost::Message)]
534        pub struct ContainerizedExtractorIngestConfig {
535            #[prost(string, tag = "1")]
536            pub rid: ::prost::alloc::string::String,
537            #[prost(message, repeated, tag = "2")]
538            pub file_input_bindings: ::prost::alloc::vec::Vec<
539                super::super::FileInputBinding,
540            >,
541            #[prost(message, repeated, tag = "3")]
542            pub environment_input_bindings: ::prost::alloc::vec::Vec<
543                super::super::EnvironmentInputBinding,
544            >,
545            #[prost(message, repeated, tag = "4")]
546            pub additional_file_tag_bindings: ::prost::alloc::vec::Vec<
547                super::super::AdditionalFileTagBinding,
548            >,
549        }
550        #[derive(Clone, PartialEq, ::prost::Message)]
551        pub struct DataflashIngestConfig {
552            #[prost(message, optional, tag = "1")]
553            pub file_input: ::core::option::Option<super::super::FileReference>,
554        }
555        #[derive(Clone, PartialEq, ::prost::Message)]
556        pub struct CsvIngestConfig {
557            #[prost(message, optional, tag = "1")]
558            pub timestamp_series_name: ::core::option::Option<
559                super::super::StringReference,
560            >,
561            #[prost(message, optional, tag = "2")]
562            pub timestamp_type: ::core::option::Option<
563                super::super::TimestampTypeParameter,
564            >,
565            #[prost(message, optional, tag = "3")]
566            pub file_input: ::core::option::Option<super::super::FileReference>,
567        }
568        #[derive(Clone, PartialEq, ::prost::Message)]
569        pub struct ParquetIngestConfig {
570            #[prost(message, optional, tag = "1")]
571            pub timestamp_series_name: ::core::option::Option<
572                super::super::StringReference,
573            >,
574            #[prost(message, optional, tag = "2")]
575            pub timestamp_type: ::core::option::Option<
576                super::super::TimestampTypeParameter,
577            >,
578            #[prost(message, optional, tag = "3")]
579            pub file_input: ::core::option::Option<super::super::FileReference>,
580        }
581        #[derive(Clone, PartialEq, ::prost::Oneof)]
582        pub enum Config {
583            #[prost(message, tag = "1")]
584            ContainerizedExtractor(ContainerizedExtractorIngestConfig),
585            #[prost(message, tag = "2")]
586            Dataflash(DataflashIngestConfig),
587            #[prost(message, tag = "3")]
588            Csv(CsvIngestConfig),
589            #[prost(message, tag = "4")]
590            Parquet(ParquetIngestConfig),
591        }
592    }
593}
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct FileInputBinding {
596    #[prost(string, tag = "1")]
597    pub environment_variable: ::prost::alloc::string::String,
598    #[prost(message, optional, tag = "2")]
599    pub file_reference: ::core::option::Option<FileReference>,
600}
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct FileReference {
603    #[prost(oneof = "file_reference::Option", tags = "1")]
604    pub option: ::core::option::Option<file_reference::Option>,
605}
606/// Nested message and enum types in `FileReference`.
607pub mod file_reference {
608    #[derive(Clone, PartialEq, ::prost::Oneof)]
609    pub enum Option {
610        #[prost(string, tag = "1")]
611        FieldId(::prost::alloc::string::String),
612    }
613}
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct EnvironmentInputBinding {
616    #[prost(string, tag = "1")]
617    pub environment_variable: ::prost::alloc::string::String,
618    #[prost(message, optional, tag = "2")]
619    pub value: ::core::option::Option<StringReference>,
620}
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct AdditionalFileTagBinding {
623    #[prost(string, tag = "1")]
624    pub tag_name: ::prost::alloc::string::String,
625    #[prost(oneof = "additional_file_tag_binding::Value", tags = "2, 3")]
626    pub value: ::core::option::Option<additional_file_tag_binding::Value>,
627}
628/// Nested message and enum types in `AdditionalFileTagBinding`.
629pub mod additional_file_tag_binding {
630    #[derive(Clone, PartialEq, ::prost::Oneof)]
631    pub enum Value {
632        #[prost(message, tag = "2")]
633        StringValue(super::StringReference),
634        #[prost(message, tag = "3")]
635        AssetRid(super::AssetReference),
636    }
637}
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct TimestampTypeParameter {
640    #[prost(oneof = "timestamp_type_parameter::Option", tags = "1, 2")]
641    pub option: ::core::option::Option<timestamp_type_parameter::Option>,
642}
643/// Nested message and enum types in `TimestampTypeParameter`.
644pub mod timestamp_type_parameter {
645    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
646    pub struct UserInputOptions {}
647    #[derive(Clone, PartialEq, ::prost::Oneof)]
648    pub enum Option {
649        #[prost(message, tag = "1")]
650        Constant(super::super::super::types::time::TimestampType),
651        #[prost(message, tag = "2")]
652        UserInput(UserInputOptions),
653    }
654}
655#[derive(Clone, PartialEq, ::prost::Message)]
656pub struct SelectOrCreateAssetStep {
657    #[prost(string, optional, tag = "1")]
658    pub asset_output_field_id: ::core::option::Option<::prost::alloc::string::String>,
659    #[prost(message, optional, tag = "2")]
660    pub create_asset_parameters: ::core::option::Option<
661        select_or_create_asset_step::CreateAssetParameters,
662    >,
663    #[prost(oneof = "select_or_create_asset_step::Options", tags = "3")]
664    pub options: ::core::option::Option<select_or_create_asset_step::Options>,
665}
666/// Nested message and enum types in `SelectOrCreateAssetStep`.
667pub mod select_or_create_asset_step {
668    #[derive(Clone, PartialEq, ::prost::Message)]
669    pub struct CreateAssetParameters {
670        #[prost(message, optional, tag = "1")]
671        pub title: ::core::option::Option<create_asset_parameters::TitleParameter>,
672        #[prost(message, optional, tag = "2")]
673        pub description: ::core::option::Option<
674            create_asset_parameters::DescriptionParameter,
675        >,
676        #[prost(message, optional, tag = "3")]
677        pub labels: ::core::option::Option<create_asset_parameters::LabelsParameter>,
678        #[prost(message, optional, tag = "4")]
679        pub properties: ::core::option::Option<
680            create_asset_parameters::PropertiesParameter,
681        >,
682        #[prost(map = "string, message", tag = "5")]
683        pub data_scopes: ::std::collections::HashMap<
684            ::prost::alloc::string::String,
685            create_asset_parameters::DataScopeParameter,
686        >,
687    }
688    /// Nested message and enum types in `CreateAssetParameters`.
689    pub mod create_asset_parameters {
690        #[derive(Clone, PartialEq, ::prost::Message)]
691        pub struct TitleParameter {
692            #[prost(oneof = "title_parameter::Option", tags = "1, 2")]
693            pub option: ::core::option::Option<title_parameter::Option>,
694        }
695        /// Nested message and enum types in `TitleParameter`.
696        pub mod title_parameter {
697            #[derive(Clone, PartialEq, ::prost::Oneof)]
698            pub enum Option {
699                #[prost(string, tag = "1")]
700                Constant(::prost::alloc::string::String),
701                #[prost(string, tag = "2")]
702                FieldId(::prost::alloc::string::String),
703            }
704        }
705        #[derive(Clone, PartialEq, ::prost::Message)]
706        pub struct DescriptionParameter {
707            #[prost(oneof = "description_parameter::Option", tags = "1, 2")]
708            pub option: ::core::option::Option<description_parameter::Option>,
709        }
710        /// Nested message and enum types in `DescriptionParameter`.
711        pub mod description_parameter {
712            #[derive(Clone, PartialEq, ::prost::Oneof)]
713            pub enum Option {
714                #[prost(string, tag = "1")]
715                Constant(::prost::alloc::string::String),
716                #[prost(string, tag = "2")]
717                FieldId(::prost::alloc::string::String),
718            }
719        }
720        #[derive(Clone, PartialEq, ::prost::Message)]
721        pub struct LabelsParameter {
722            #[prost(string, repeated, tag = "1")]
723            pub constant: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
724            #[prost(message, optional, tag = "2")]
725            pub user_input: ::core::option::Option<labels_parameter::UserInputOptions>,
726            #[prost(message, repeated, tag = "3")]
727            pub references: ::prost::alloc::vec::Vec<super::super::StringReference>,
728        }
729        /// Nested message and enum types in `LabelsParameter`.
730        pub mod labels_parameter {
731            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
732            pub struct UserInputOptions {}
733        }
734        #[derive(Clone, PartialEq, ::prost::Message)]
735        pub struct PropertiesParameter {
736            #[prost(map = "string, string", tag = "1")]
737            pub constant: ::std::collections::HashMap<
738                ::prost::alloc::string::String,
739                ::prost::alloc::string::String,
740            >,
741            #[prost(message, optional, tag = "2")]
742            pub user_input: ::core::option::Option<
743                properties_parameter::UserInputOptions,
744            >,
745            #[prost(message, repeated, tag = "3")]
746            pub references: ::prost::alloc::vec::Vec<super::super::PropertyReference>,
747        }
748        /// Nested message and enum types in `PropertiesParameter`.
749        pub mod properties_parameter {
750            #[derive(Clone, PartialEq, ::prost::Message)]
751            pub struct UserInputOptions {
752                #[prost(string, repeated, tag = "1")]
753                pub required_keys: ::prost::alloc::vec::Vec<
754                    ::prost::alloc::string::String,
755                >,
756                #[prost(string, repeated, tag = "2")]
757                pub suggested_keys: ::prost::alloc::vec::Vec<
758                    ::prost::alloc::string::String,
759                >,
760            }
761        }
762        #[derive(Clone, PartialEq, ::prost::Message)]
763        pub struct DataScopeParameter {
764            #[prost(message, optional, tag = "21")]
765            pub series_tags: ::core::option::Option<super::super::TagsParameter>,
766            #[prost(oneof = "data_scope_parameter::DataSource", tags = "1, 2")]
767            pub data_source: ::core::option::Option<data_scope_parameter::DataSource>,
768        }
769        /// Nested message and enum types in `DataScopeParameter`.
770        pub mod data_scope_parameter {
771            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
772            pub struct NewDataset {}
773            #[derive(Clone, PartialEq, ::prost::Message)]
774            pub struct ExistingDataset {
775                #[prost(oneof = "existing_dataset::Options", tags = "1")]
776                pub options: ::core::option::Option<existing_dataset::Options>,
777            }
778            /// Nested message and enum types in `ExistingDataset`.
779            pub mod existing_dataset {
780                #[derive(Clone, PartialEq, ::prost::Oneof)]
781                pub enum Options {
782                    #[prost(message, tag = "1")]
783                    PresetOptions(super::super::super::super::PresetDatasetFieldOptions),
784                }
785            }
786            #[derive(Clone, PartialEq, ::prost::Oneof)]
787            pub enum DataSource {
788                #[prost(message, tag = "1")]
789                NewDataset(NewDataset),
790                #[prost(message, tag = "2")]
791                ExistingDataset(ExistingDataset),
792            }
793        }
794    }
795    #[derive(Clone, PartialEq, ::prost::Oneof)]
796    pub enum Options {
797        #[prost(message, tag = "3")]
798        PresetOptions(super::PresetAssetFieldOptions),
799    }
800}
801#[derive(Clone, PartialEq, ::prost::Message)]
802pub struct PresetDatasetFieldOptions {
803    #[prost(message, repeated, tag = "1")]
804    pub options: ::prost::alloc::vec::Vec<DatasetReference>,
805    #[prost(message, optional, tag = "2")]
806    pub default_option: ::core::option::Option<DatasetReference>,
807}
808#[derive(Clone, PartialEq, ::prost::Message)]
809pub struct DatasetReference {
810    #[prost(oneof = "dataset_reference::Option", tags = "1, 2")]
811    pub option: ::core::option::Option<dataset_reference::Option>,
812}
813/// Nested message and enum types in `DatasetReference`.
814pub mod dataset_reference {
815    #[derive(Clone, PartialEq, ::prost::Oneof)]
816    pub enum Option {
817        #[prost(string, tag = "1")]
818        Rid(::prost::alloc::string::String),
819        #[prost(string, tag = "2")]
820        FieldId(::prost::alloc::string::String),
821    }
822}
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct TagsParameter {
825    #[prost(map = "string, string", tag = "1")]
826    pub constant: ::std::collections::HashMap<
827        ::prost::alloc::string::String,
828        ::prost::alloc::string::String,
829    >,
830    #[prost(message, optional, tag = "2")]
831    pub user_input: ::core::option::Option<tags_parameter::UserInputOptions>,
832    #[prost(message, repeated, tag = "3")]
833    pub references: ::prost::alloc::vec::Vec<TagReference>,
834}
835/// Nested message and enum types in `TagsParameter`.
836pub mod tags_parameter {
837    #[derive(Clone, PartialEq, ::prost::Message)]
838    pub struct UserInputOptions {
839        #[prost(string, repeated, tag = "1")]
840        pub required_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
841        #[prost(string, repeated, tag = "2")]
842        pub suggested_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
843    }
844}
845#[derive(Clone, PartialEq, ::prost::Message)]
846pub struct MultiStringReference {
847    #[prost(oneof = "multi_string_reference::Option", tags = "1")]
848    pub option: ::core::option::Option<multi_string_reference::Option>,
849}
850/// Nested message and enum types in `MultiStringReference`.
851pub mod multi_string_reference {
852    #[derive(Clone, PartialEq, ::prost::Oneof)]
853    pub enum Option {
854        #[prost(string, tag = "1")]
855        FieldId(::prost::alloc::string::String),
856    }
857}
858#[derive(Clone, PartialEq, ::prost::Message)]
859pub struct StringReference {
860    #[prost(oneof = "string_reference::Option", tags = "1, 2")]
861    pub option: ::core::option::Option<string_reference::Option>,
862}
863/// Nested message and enum types in `StringReference`.
864pub mod string_reference {
865    #[derive(Clone, PartialEq, ::prost::Oneof)]
866    pub enum Option {
867        #[prost(string, tag = "1")]
868        Constant(::prost::alloc::string::String),
869        #[prost(string, tag = "2")]
870        FieldId(::prost::alloc::string::String),
871    }
872}
873#[derive(Clone, PartialEq, ::prost::Message)]
874pub struct MultiAssetReference {
875    #[prost(oneof = "multi_asset_reference::Option", tags = "1")]
876    pub option: ::core::option::Option<multi_asset_reference::Option>,
877}
878/// Nested message and enum types in `MultiAssetReference`.
879pub mod multi_asset_reference {
880    #[derive(Clone, PartialEq, ::prost::Message)]
881    pub struct AssetReferenceList {
882        #[prost(message, repeated, tag = "1")]
883        pub references: ::prost::alloc::vec::Vec<super::AssetReference>,
884    }
885    #[derive(Clone, PartialEq, ::prost::Oneof)]
886    pub enum Option {
887        #[prost(message, tag = "1")]
888        List(AssetReferenceList),
889    }
890}
891#[derive(Clone, PartialEq, ::prost::Message)]
892pub struct AssetReference {
893    #[prost(oneof = "asset_reference::Option", tags = "1, 2")]
894    pub option: ::core::option::Option<asset_reference::Option>,
895}
896/// Nested message and enum types in `AssetReference`.
897pub mod asset_reference {
898    #[derive(Clone, PartialEq, ::prost::Oneof)]
899    pub enum Option {
900        #[prost(string, tag = "1")]
901        Rid(::prost::alloc::string::String),
902        #[prost(string, tag = "2")]
903        FieldId(::prost::alloc::string::String),
904    }
905}
906#[derive(Clone, PartialEq, ::prost::Message)]
907pub struct TimeRangeReference {
908    #[prost(oneof = "time_range_reference::Option", tags = "1, 2")]
909    pub option: ::core::option::Option<time_range_reference::Option>,
910}
911/// Nested message and enum types in `TimeRangeReference`.
912pub mod time_range_reference {
913    #[derive(Clone, PartialEq, ::prost::Message)]
914    pub struct IngestJobList {
915        #[prost(string, repeated, tag = "1")]
916        pub field_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
917    }
918    #[derive(Clone, PartialEq, ::prost::Message)]
919    pub struct RangeLiteral {
920        #[prost(message, optional, tag = "1")]
921        pub start: ::core::option::Option<super::TimestampReference>,
922        #[prost(message, optional, tag = "2")]
923        pub end: ::core::option::Option<super::TimestampReference>,
924    }
925    #[derive(Clone, PartialEq, ::prost::Oneof)]
926    pub enum Option {
927        #[prost(message, tag = "1")]
928        FromIngestJobs(IngestJobList),
929        #[prost(message, tag = "2")]
930        Literal(RangeLiteral),
931    }
932}
933#[derive(Clone, PartialEq, ::prost::Message)]
934pub struct TimestampReference {
935    #[prost(oneof = "timestamp_reference::Option", tags = "1, 2")]
936    pub option: ::core::option::Option<timestamp_reference::Option>,
937}
938/// Nested message and enum types in `TimestampReference`.
939pub mod timestamp_reference {
940    #[derive(Clone, PartialEq, ::prost::Oneof)]
941    pub enum Option {
942        #[prost(string, tag = "1")]
943        FieldId(::prost::alloc::string::String),
944        #[prost(message, tag = "2")]
945        Constant(super::super::super::super::google::protobuf::Timestamp),
946    }
947}
948#[derive(Clone, PartialEq, ::prost::Message)]
949pub struct MultiRunReference {
950    #[prost(oneof = "multi_run_reference::Option", tags = "1")]
951    pub option: ::core::option::Option<multi_run_reference::Option>,
952}
953/// Nested message and enum types in `MultiRunReference`.
954pub mod multi_run_reference {
955    #[derive(Clone, PartialEq, ::prost::Message)]
956    pub struct RunReferenceList {
957        #[prost(message, repeated, tag = "1")]
958        pub references: ::prost::alloc::vec::Vec<super::RunReference>,
959    }
960    #[derive(Clone, PartialEq, ::prost::Oneof)]
961    pub enum Option {
962        #[prost(message, tag = "1")]
963        List(RunReferenceList),
964    }
965}
966#[derive(Clone, PartialEq, ::prost::Message)]
967pub struct RunReference {
968    #[prost(oneof = "run_reference::Option", tags = "1")]
969    pub option: ::core::option::Option<run_reference::Option>,
970}
971/// Nested message and enum types in `RunReference`.
972pub mod run_reference {
973    #[derive(Clone, PartialEq, ::prost::Oneof)]
974    pub enum Option {
975        #[prost(string, tag = "1")]
976        FieldId(::prost::alloc::string::String),
977    }
978}
979#[derive(Clone, PartialEq, ::prost::Message)]
980pub struct MultiWorkbookTemplateReference {
981    #[prost(oneof = "multi_workbook_template_reference::Option", tags = "1")]
982    pub option: ::core::option::Option<multi_workbook_template_reference::Option>,
983}
984/// Nested message and enum types in `MultiWorkbookTemplateReference`.
985pub mod multi_workbook_template_reference {
986    #[derive(Clone, PartialEq, ::prost::Message)]
987    pub struct WorkbookTemplateReferenceList {
988        #[prost(message, repeated, tag = "1")]
989        pub references: ::prost::alloc::vec::Vec<super::WorkbookTemplateReference>,
990    }
991    #[derive(Clone, PartialEq, ::prost::Oneof)]
992    pub enum Option {
993        #[prost(message, tag = "1")]
994        List(WorkbookTemplateReferenceList),
995    }
996}
997#[derive(Clone, PartialEq, ::prost::Message)]
998pub struct WorkbookTemplateReference {
999    #[prost(oneof = "workbook_template_reference::Option", tags = "1")]
1000    pub option: ::core::option::Option<workbook_template_reference::Option>,
1001}
1002/// Nested message and enum types in `WorkbookTemplateReference`.
1003pub mod workbook_template_reference {
1004    #[derive(Clone, PartialEq, ::prost::Oneof)]
1005    pub enum Option {
1006        #[prost(string, tag = "1")]
1007        Rid(::prost::alloc::string::String),
1008    }
1009}
1010#[derive(Clone, PartialEq, ::prost::Message)]
1011pub struct MultiChecklistReference {
1012    #[prost(oneof = "multi_checklist_reference::Option", tags = "1")]
1013    pub option: ::core::option::Option<multi_checklist_reference::Option>,
1014}
1015/// Nested message and enum types in `MultiChecklistReference`.
1016pub mod multi_checklist_reference {
1017    #[derive(Clone, PartialEq, ::prost::Message)]
1018    pub struct ChecklistReferenceList {
1019        #[prost(message, repeated, tag = "1")]
1020        pub references: ::prost::alloc::vec::Vec<super::ChecklistReference>,
1021    }
1022    #[derive(Clone, PartialEq, ::prost::Oneof)]
1023    pub enum Option {
1024        #[prost(message, tag = "1")]
1025        List(ChecklistReferenceList),
1026    }
1027}
1028#[derive(Clone, PartialEq, ::prost::Message)]
1029pub struct ChecklistReference {
1030    #[prost(oneof = "checklist_reference::Option", tags = "1")]
1031    pub option: ::core::option::Option<checklist_reference::Option>,
1032}
1033/// Nested message and enum types in `ChecklistReference`.
1034pub mod checklist_reference {
1035    #[derive(Clone, PartialEq, ::prost::Oneof)]
1036    pub enum Option {
1037        #[prost(string, tag = "1")]
1038        Rid(::prost::alloc::string::String),
1039    }
1040}
1041#[derive(Clone, PartialEq, ::prost::Message)]
1042pub struct MultiIntegrationReference {
1043    #[prost(oneof = "multi_integration_reference::Option", tags = "1")]
1044    pub option: ::core::option::Option<multi_integration_reference::Option>,
1045}
1046/// Nested message and enum types in `MultiIntegrationReference`.
1047pub mod multi_integration_reference {
1048    #[derive(Clone, PartialEq, ::prost::Message)]
1049    pub struct IntegrationReferenceList {
1050        #[prost(message, repeated, tag = "1")]
1051        pub references: ::prost::alloc::vec::Vec<super::IntegrationReference>,
1052    }
1053    #[derive(Clone, PartialEq, ::prost::Oneof)]
1054    pub enum Option {
1055        #[prost(message, tag = "1")]
1056        List(IntegrationReferenceList),
1057    }
1058}
1059#[derive(Clone, PartialEq, ::prost::Message)]
1060pub struct IntegrationReference {
1061    #[prost(oneof = "integration_reference::Option", tags = "1")]
1062    pub option: ::core::option::Option<integration_reference::Option>,
1063}
1064/// Nested message and enum types in `IntegrationReference`.
1065pub mod integration_reference {
1066    #[derive(Clone, PartialEq, ::prost::Oneof)]
1067    pub enum Option {
1068        #[prost(string, tag = "1")]
1069        Rid(::prost::alloc::string::String),
1070    }
1071}
1072#[derive(Clone, PartialEq, ::prost::Message)]
1073pub struct FormField {
1074    #[prost(string, tag = "1")]
1075    pub id: ::prost::alloc::string::String,
1076    #[prost(string, optional, tag = "11")]
1077    pub label: ::core::option::Option<::prost::alloc::string::String>,
1078    #[prost(string, optional, tag = "12")]
1079    pub description: ::core::option::Option<::prost::alloc::string::String>,
1080    #[prost(oneof = "form_field::Field", tags = "2, 3, 4, 5, 6, 7, 8, 9, 10")]
1081    pub field: ::core::option::Option<form_field::Field>,
1082}
1083/// Nested message and enum types in `FormField`.
1084pub mod form_field {
1085    #[derive(Clone, PartialEq, ::prost::Oneof)]
1086    pub enum Field {
1087        #[prost(message, tag = "2")]
1088        Asset(super::AssetField),
1089        #[prost(message, tag = "3")]
1090        Checkbox(super::CheckboxField),
1091        #[prost(message, tag = "4")]
1092        Text(super::TextField),
1093        #[prost(message, tag = "5")]
1094        Int(super::IntField),
1095        #[prost(message, tag = "6")]
1096        Double(super::DoubleField),
1097        #[prost(message, tag = "7")]
1098        SingleEnum(super::SingleEnumField),
1099        #[prost(message, tag = "8")]
1100        MultiEnum(super::MultiEnumField),
1101        #[prost(message, tag = "9")]
1102        FileUpload(super::FileUploadField),
1103        #[prost(message, tag = "10")]
1104        MultiFileUpload(super::MultiFileUploadField),
1105    }
1106}
1107#[derive(Clone, PartialEq, ::prost::Message)]
1108pub struct PresetAssetFieldOptions {
1109    #[prost(message, repeated, tag = "1")]
1110    pub options: ::prost::alloc::vec::Vec<AssetReference>,
1111    #[prost(message, optional, tag = "2")]
1112    pub default_option: ::core::option::Option<AssetReference>,
1113}
1114#[derive(Clone, PartialEq, ::prost::Message)]
1115pub struct AssetField {
1116    #[prost(string, tag = "1")]
1117    pub label: ::prost::alloc::string::String,
1118    #[prost(bool, tag = "2")]
1119    pub is_required: bool,
1120    #[prost(oneof = "asset_field::Options", tags = "3")]
1121    pub options: ::core::option::Option<asset_field::Options>,
1122}
1123/// Nested message and enum types in `AssetField`.
1124pub mod asset_field {
1125    #[derive(Clone, PartialEq, ::prost::Oneof)]
1126    pub enum Options {
1127        #[prost(message, tag = "3")]
1128        PresetOptions(super::PresetAssetFieldOptions),
1129    }
1130}
1131#[derive(Clone, PartialEq, ::prost::Message)]
1132pub struct CheckboxField {
1133    #[prost(string, tag = "1")]
1134    pub label: ::prost::alloc::string::String,
1135    #[prost(bool, tag = "2")]
1136    pub is_required: bool,
1137}
1138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1139pub struct TextFieldSimpleInputType {}
1140#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1141pub struct TextFieldMarkdownInputType {}
1142#[derive(Clone, PartialEq, ::prost::Message)]
1143pub struct TextField {
1144    #[prost(string, tag = "1")]
1145    pub label: ::prost::alloc::string::String,
1146    #[prost(uint32, optional, tag = "4")]
1147    pub min_length: ::core::option::Option<u32>,
1148    #[prost(uint32, optional, tag = "5")]
1149    pub max_length: ::core::option::Option<u32>,
1150    #[prost(string, optional, tag = "6")]
1151    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
1152    #[prost(string, optional, tag = "7")]
1153    pub pattern_description: ::core::option::Option<::prost::alloc::string::String>,
1154    #[prost(oneof = "text_field::InputType", tags = "2, 3")]
1155    pub input_type: ::core::option::Option<text_field::InputType>,
1156}
1157/// Nested message and enum types in `TextField`.
1158pub mod text_field {
1159    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1160    pub enum InputType {
1161        #[prost(message, tag = "2")]
1162        Simple(super::TextFieldSimpleInputType),
1163        #[prost(message, tag = "3")]
1164        Markdown(super::TextFieldMarkdownInputType),
1165    }
1166}
1167#[derive(Clone, PartialEq, ::prost::Message)]
1168pub struct IntField {
1169    #[prost(string, tag = "1")]
1170    pub label: ::prost::alloc::string::String,
1171    #[prost(bool, tag = "2")]
1172    pub is_required: bool,
1173    #[prost(int64, optional, tag = "3")]
1174    pub gte_value: ::core::option::Option<i64>,
1175    #[prost(int64, optional, tag = "4")]
1176    pub lte_value: ::core::option::Option<i64>,
1177}
1178#[derive(Clone, PartialEq, ::prost::Message)]
1179pub struct DoubleField {
1180    #[prost(string, tag = "1")]
1181    pub label: ::prost::alloc::string::String,
1182    #[prost(bool, tag = "2")]
1183    pub is_required: bool,
1184    #[prost(oneof = "double_field::LowerBound", tags = "3, 4")]
1185    pub lower_bound: ::core::option::Option<double_field::LowerBound>,
1186    #[prost(oneof = "double_field::UpperBound", tags = "5, 6")]
1187    pub upper_bound: ::core::option::Option<double_field::UpperBound>,
1188}
1189/// Nested message and enum types in `DoubleField`.
1190pub mod double_field {
1191    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1192    pub enum LowerBound {
1193        #[prost(double, tag = "3")]
1194        GtValue(f64),
1195        #[prost(double, tag = "4")]
1196        GteValue(f64),
1197    }
1198    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1199    pub enum UpperBound {
1200        #[prost(double, tag = "5")]
1201        LtValue(f64),
1202        #[prost(double, tag = "6")]
1203        LteValue(f64),
1204    }
1205}
1206#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1207pub struct EnumFieldButtonsInputType {}
1208#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1209pub struct EnumFieldMenuInputType {}
1210#[derive(Clone, PartialEq, ::prost::Message)]
1211pub struct SingleEnumField {
1212    #[prost(string, tag = "1")]
1213    pub label: ::prost::alloc::string::String,
1214    #[prost(string, repeated, tag = "2")]
1215    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1216    #[prost(bool, tag = "5")]
1217    pub allow_custom: bool,
1218    #[prost(bool, tag = "6")]
1219    pub is_required: bool,
1220    #[prost(oneof = "single_enum_field::InputType", tags = "3, 4")]
1221    pub input_type: ::core::option::Option<single_enum_field::InputType>,
1222}
1223/// Nested message and enum types in `SingleEnumField`.
1224pub mod single_enum_field {
1225    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1226    pub enum InputType {
1227        #[prost(message, tag = "3")]
1228        Buttons(super::EnumFieldButtonsInputType),
1229        #[prost(message, tag = "4")]
1230        Dropdown(super::EnumFieldMenuInputType),
1231    }
1232}
1233#[derive(Clone, PartialEq, ::prost::Message)]
1234pub struct MultiEnumField {
1235    #[prost(string, tag = "1")]
1236    pub label: ::prost::alloc::string::String,
1237    #[prost(string, repeated, tag = "2")]
1238    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1239    #[prost(bool, tag = "6")]
1240    pub allow_custom: bool,
1241    #[prost(uint32, optional, tag = "7")]
1242    pub min_count: ::core::option::Option<u32>,
1243    #[prost(uint32, optional, tag = "8")]
1244    pub max_count: ::core::option::Option<u32>,
1245    #[prost(oneof = "multi_enum_field::InputType", tags = "3, 4")]
1246    pub input_type: ::core::option::Option<multi_enum_field::InputType>,
1247}
1248/// Nested message and enum types in `MultiEnumField`.
1249pub mod multi_enum_field {
1250    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1251    pub enum InputType {
1252        #[prost(message, tag = "3")]
1253        Buttons(super::EnumFieldButtonsInputType),
1254        #[prost(message, tag = "4")]
1255        Dropdown(super::EnumFieldMenuInputType),
1256    }
1257}
1258#[derive(Clone, PartialEq, ::prost::Message)]
1259pub struct FileUploadField {
1260    #[prost(bool, tag = "1")]
1261    pub is_required: bool,
1262    #[prost(string, repeated, tag = "2")]
1263    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1264}
1265#[derive(Clone, PartialEq, ::prost::Message)]
1266pub struct MultiFileUploadField {
1267    #[prost(uint32, optional, tag = "1")]
1268    pub min_count: ::core::option::Option<u32>,
1269    #[prost(uint32, optional, tag = "2")]
1270    pub max_count: ::core::option::Option<u32>,
1271    #[prost(string, repeated, tag = "3")]
1272    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1273}
1274#[derive(Clone, PartialEq, ::prost::Message)]
1275pub struct ProcedureMetadata {
1276    #[prost(string, tag = "1")]
1277    pub rid: ::prost::alloc::string::String,
1278    #[prost(string, tag = "2")]
1279    pub title: ::prost::alloc::string::String,
1280    #[prost(string, optional, tag = "3")]
1281    pub description: ::core::option::Option<::prost::alloc::string::String>,
1282    #[prost(string, repeated, tag = "4")]
1283    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1284    #[prost(map = "string, string", tag = "5")]
1285    pub properties: ::std::collections::HashMap<
1286        ::prost::alloc::string::String,
1287        ::prost::alloc::string::String,
1288    >,
1289    #[prost(bool, tag = "6")]
1290    pub is_archived: bool,
1291    #[prost(bool, tag = "7")]
1292    pub is_published: bool,
1293    #[prost(message, optional, tag = "8")]
1294    pub created_at: ::core::option::Option<
1295        super::super::super::google::protobuf::Timestamp,
1296    >,
1297    #[prost(string, tag = "9")]
1298    pub created_by: ::prost::alloc::string::String,
1299    #[prost(message, optional, tag = "10")]
1300    pub updated_at: ::core::option::Option<
1301        super::super::super::google::protobuf::Timestamp,
1302    >,
1303    #[prost(string, tag = "11")]
1304    pub updated_by: ::prost::alloc::string::String,
1305    #[prost(string, tag = "12")]
1306    pub workspace: ::prost::alloc::string::String,
1307    #[prost(int64, optional, tag = "13")]
1308    pub execution_count: ::core::option::Option<i64>,
1309}
1310#[derive(Clone, PartialEq, ::prost::Message)]
1311pub struct Procedure {
1312    #[prost(string, tag = "1")]
1313    pub rid: ::prost::alloc::string::String,
1314    #[prost(string, tag = "2")]
1315    pub commit: ::prost::alloc::string::String,
1316    #[prost(message, optional, tag = "3")]
1317    pub metadata: ::core::option::Option<ProcedureMetadata>,
1318    #[prost(message, optional, tag = "4")]
1319    pub state: ::core::option::Option<ProcedureState>,
1320}
1321#[derive(Clone, PartialEq, ::prost::Message)]
1322pub struct CreateProcedureRequest {
1323    #[prost(string, tag = "1")]
1324    pub title: ::prost::alloc::string::String,
1325    #[prost(string, optional, tag = "2")]
1326    pub description: ::core::option::Option<::prost::alloc::string::String>,
1327    #[prost(string, repeated, tag = "3")]
1328    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1329    #[prost(map = "string, string", tag = "4")]
1330    pub properties: ::std::collections::HashMap<
1331        ::prost::alloc::string::String,
1332        ::prost::alloc::string::String,
1333    >,
1334    #[prost(message, optional, tag = "5")]
1335    pub state: ::core::option::Option<ProcedureState>,
1336    #[prost(bool, optional, tag = "6")]
1337    pub is_published: ::core::option::Option<bool>,
1338    #[prost(string, tag = "7")]
1339    pub workspace: ::prost::alloc::string::String,
1340    #[prost(string, tag = "8")]
1341    pub commit_message: ::prost::alloc::string::String,
1342    #[prost(string, optional, tag = "9")]
1343    pub initial_branch_name: ::core::option::Option<::prost::alloc::string::String>,
1344}
1345#[derive(Clone, PartialEq, ::prost::Message)]
1346pub struct CreateProcedureResponse {
1347    #[prost(message, optional, tag = "1")]
1348    pub procedure: ::core::option::Option<Procedure>,
1349    #[prost(string, optional, tag = "2")]
1350    pub branch_name: ::core::option::Option<::prost::alloc::string::String>,
1351}
1352#[derive(Clone, PartialEq, ::prost::Message)]
1353pub struct GetProcedureRequest {
1354    #[prost(string, tag = "1")]
1355    pub rid: ::prost::alloc::string::String,
1356    #[prost(message, optional, tag = "2")]
1357    pub branch_or_commit: ::core::option::Option<
1358        super::super::versioning::v1::BranchOrCommit,
1359    >,
1360    #[prost(bool, tag = "3")]
1361    pub include_display_graph: bool,
1362}
1363#[derive(Clone, PartialEq, ::prost::Message)]
1364pub struct GetProcedureResponse {
1365    #[prost(message, optional, tag = "1")]
1366    pub procedure: ::core::option::Option<Procedure>,
1367    #[prost(message, optional, tag = "2")]
1368    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1369}
1370#[derive(Clone, PartialEq, ::prost::Message)]
1371pub struct BatchGetProcedureMetadataRequest {
1372    #[prost(string, repeated, tag = "1")]
1373    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1374}
1375#[derive(Clone, PartialEq, ::prost::Message)]
1376pub struct BatchGetProcedureMetadataResponse {
1377    #[prost(message, repeated, tag = "1")]
1378    pub procedure_metadatas: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1379}
1380#[derive(Clone, PartialEq, ::prost::Message)]
1381pub struct UpdateProcedureMetadataRequest {
1382    #[prost(string, tag = "1")]
1383    pub rid: ::prost::alloc::string::String,
1384    #[prost(string, optional, tag = "2")]
1385    pub title: ::core::option::Option<::prost::alloc::string::String>,
1386    #[prost(string, optional, tag = "3")]
1387    pub description: ::core::option::Option<::prost::alloc::string::String>,
1388    #[prost(message, optional, tag = "4")]
1389    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
1390    #[prost(message, optional, tag = "5")]
1391    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
1392    #[prost(bool, optional, tag = "6")]
1393    pub is_archived: ::core::option::Option<bool>,
1394    #[prost(bool, optional, tag = "7")]
1395    pub is_published: ::core::option::Option<bool>,
1396}
1397#[derive(Clone, PartialEq, ::prost::Message)]
1398pub struct UpdateProcedureMetadataResponse {
1399    #[prost(message, optional, tag = "1")]
1400    pub procedure_metadata: ::core::option::Option<ProcedureMetadata>,
1401}
1402#[derive(Clone, PartialEq, ::prost::Message)]
1403pub struct ParseNestedProcedureRequest {
1404    #[prost(message, optional, tag = "1")]
1405    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1406    #[prost(bool, tag = "3")]
1407    pub include_display_graph: bool,
1408}
1409#[derive(Clone, PartialEq, ::prost::Message)]
1410pub struct ParseNestedProcedureResponse {
1411    #[prost(message, optional, tag = "1")]
1412    pub procedure: ::core::option::Option<Procedure>,
1413    #[prost(message, optional, tag = "2")]
1414    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1415}
1416#[derive(Clone, PartialEq, ::prost::Message)]
1417pub struct GetProcedureAsNestedRequest {
1418    #[prost(string, tag = "1")]
1419    pub rid: ::prost::alloc::string::String,
1420    #[prost(message, optional, tag = "2")]
1421    pub branch_or_commit: ::core::option::Option<
1422        super::super::versioning::v1::BranchOrCommit,
1423    >,
1424}
1425#[derive(Clone, PartialEq, ::prost::Message)]
1426pub struct GetProcedureAsNestedResponse {
1427    #[prost(message, optional, tag = "1")]
1428    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1429}
1430#[derive(Clone, PartialEq, ::prost::Message)]
1431pub struct MergeToMainRequest {
1432    #[prost(string, tag = "1")]
1433    pub rid: ::prost::alloc::string::String,
1434    #[prost(string, tag = "2")]
1435    pub branch: ::prost::alloc::string::String,
1436    #[prost(string, optional, tag = "3")]
1437    pub latest_commit_on_main: ::core::option::Option<::prost::alloc::string::String>,
1438    #[prost(string, tag = "4")]
1439    pub message: ::prost::alloc::string::String,
1440}
1441#[derive(Clone, PartialEq, ::prost::Message)]
1442pub struct MergeToMainResponse {
1443    #[prost(message, optional, tag = "1")]
1444    pub procedure: ::core::option::Option<Procedure>,
1445}
1446#[derive(Clone, PartialEq, ::prost::Message)]
1447pub struct SaveWorkingStateRequest {
1448    #[prost(string, tag = "1")]
1449    pub rid: ::prost::alloc::string::String,
1450    #[prost(string, optional, tag = "2")]
1451    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1452    #[prost(string, tag = "3")]
1453    pub message: ::prost::alloc::string::String,
1454    #[prost(string, optional, tag = "4")]
1455    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1456    #[prost(message, optional, tag = "5")]
1457    pub state: ::core::option::Option<ProcedureState>,
1458}
1459#[derive(Clone, PartialEq, ::prost::Message)]
1460pub struct SaveWorkingStateResponse {
1461    #[prost(message, optional, tag = "1")]
1462    pub procedure: ::core::option::Option<Procedure>,
1463}
1464#[derive(Clone, PartialEq, ::prost::Message)]
1465pub struct CommitRequest {
1466    #[prost(string, tag = "1")]
1467    pub rid: ::prost::alloc::string::String,
1468    #[prost(string, optional, tag = "2")]
1469    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1470    #[prost(string, optional, tag = "3")]
1471    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1472    #[prost(string, tag = "4")]
1473    pub message: ::prost::alloc::string::String,
1474    #[prost(message, optional, tag = "5")]
1475    pub state: ::core::option::Option<ProcedureState>,
1476}
1477#[derive(Clone, PartialEq, ::prost::Message)]
1478pub struct CommitResponse {
1479    #[prost(message, optional, tag = "1")]
1480    pub procedure: ::core::option::Option<Procedure>,
1481}
1482#[derive(Clone, PartialEq, ::prost::Message)]
1483pub struct ProcedureSearchQuery {
1484    #[prost(oneof = "procedure_search_query::Query", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
1485    pub query: ::core::option::Option<procedure_search_query::Query>,
1486}
1487/// Nested message and enum types in `ProcedureSearchQuery`.
1488pub mod procedure_search_query {
1489    #[derive(Clone, PartialEq, ::prost::Message)]
1490    pub struct ProcedureSearchAndQuery {
1491        #[prost(message, repeated, tag = "1")]
1492        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1493    }
1494    #[derive(Clone, PartialEq, ::prost::Message)]
1495    pub struct ProcedureSearchOrQuery {
1496        #[prost(message, repeated, tag = "1")]
1497        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1498    }
1499    #[derive(Clone, PartialEq, ::prost::Oneof)]
1500    pub enum Query {
1501        #[prost(string, tag = "1")]
1502        SearchText(::prost::alloc::string::String),
1503        #[prost(string, tag = "2")]
1504        Label(::prost::alloc::string::String),
1505        #[prost(message, tag = "3")]
1506        Property(super::super::super::types::Property),
1507        #[prost(message, tag = "4")]
1508        And(ProcedureSearchAndQuery),
1509        #[prost(message, tag = "5")]
1510        Or(ProcedureSearchOrQuery),
1511        #[prost(string, tag = "6")]
1512        Workspace(::prost::alloc::string::String),
1513        #[prost(string, tag = "7")]
1514        CreatedBy(::prost::alloc::string::String),
1515        #[prost(bool, tag = "8")]
1516        IsArchived(bool),
1517    }
1518}
1519#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1520pub struct SearchProceduresSortOptions {
1521    #[prost(bool, optional, tag = "1")]
1522    pub is_descending: ::core::option::Option<bool>,
1523    #[prost(enumeration = "SearchProceduresSortField", optional, tag = "2")]
1524    pub sort_field: ::core::option::Option<i32>,
1525}
1526#[derive(Clone, PartialEq, ::prost::Message)]
1527pub struct SearchProceduresRequest {
1528    #[prost(message, optional, tag = "1")]
1529    pub query: ::core::option::Option<ProcedureSearchQuery>,
1530    #[prost(message, optional, tag = "2")]
1531    pub sort_options: ::core::option::Option<SearchProceduresSortOptions>,
1532    #[prost(int32, optional, tag = "3")]
1533    pub page_size: ::core::option::Option<i32>,
1534    #[prost(string, optional, tag = "4")]
1535    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1536}
1537#[derive(Clone, PartialEq, ::prost::Message)]
1538pub struct SearchProceduresResponse {
1539    #[prost(message, repeated, tag = "1")]
1540    pub procedure_metadata: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1541    #[prost(string, optional, tag = "2")]
1542    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1543}
1544#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct ArchiveProceduresRequest {
1546    #[prost(string, repeated, tag = "1")]
1547    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1548}
1549#[derive(Clone, PartialEq, ::prost::Message)]
1550pub struct ArchiveProceduresResponse {
1551    #[prost(string, repeated, tag = "1")]
1552    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1553}
1554#[derive(Clone, PartialEq, ::prost::Message)]
1555pub struct UnarchiveProceduresRequest {
1556    #[prost(string, repeated, tag = "1")]
1557    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1558}
1559#[derive(Clone, PartialEq, ::prost::Message)]
1560pub struct UnarchiveProceduresResponse {
1561    #[prost(string, repeated, tag = "1")]
1562    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1563}
1564#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1565#[repr(i32)]
1566pub enum CaptureMoment {
1567    Unspecified = 0,
1568    StepStart = 1,
1569    StepCompletion = 2,
1570}
1571impl CaptureMoment {
1572    /// String value of the enum field names used in the ProtoBuf definition.
1573    ///
1574    /// The values are not transformed in any way and thus are considered stable
1575    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1576    pub fn as_str_name(&self) -> &'static str {
1577        match self {
1578            Self::Unspecified => "CAPTURE_MOMENT_UNSPECIFIED",
1579            Self::StepStart => "CAPTURE_MOMENT_STEP_START",
1580            Self::StepCompletion => "CAPTURE_MOMENT_STEP_COMPLETION",
1581        }
1582    }
1583    /// Creates an enum from field names used in the ProtoBuf definition.
1584    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1585        match value {
1586            "CAPTURE_MOMENT_UNSPECIFIED" => Some(Self::Unspecified),
1587            "CAPTURE_MOMENT_STEP_START" => Some(Self::StepStart),
1588            "CAPTURE_MOMENT_STEP_COMPLETION" => Some(Self::StepCompletion),
1589            _ => None,
1590        }
1591    }
1592}
1593#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1594#[repr(i32)]
1595pub enum SearchProceduresSortField {
1596    Unspecified = 0,
1597    Name = 1,
1598    CreatedAt = 2,
1599    UpdatedAt = 3,
1600}
1601impl SearchProceduresSortField {
1602    /// String value of the enum field names used in the ProtoBuf definition.
1603    ///
1604    /// The values are not transformed in any way and thus are considered stable
1605    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1606    pub fn as_str_name(&self) -> &'static str {
1607        match self {
1608            Self::Unspecified => "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED",
1609            Self::Name => "SEARCH_PROCEDURES_SORT_FIELD_NAME",
1610            Self::CreatedAt => "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT",
1611            Self::UpdatedAt => "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT",
1612        }
1613    }
1614    /// Creates an enum from field names used in the ProtoBuf definition.
1615    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1616        match value {
1617            "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
1618            "SEARCH_PROCEDURES_SORT_FIELD_NAME" => Some(Self::Name),
1619            "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
1620            "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
1621            _ => None,
1622        }
1623    }
1624}
1625#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1626#[repr(i32)]
1627pub enum ProceduresServiceError {
1628    Unspecified = 0,
1629    NotFound = 1,
1630    CommitNotFound = 2,
1631    CannotMergeMain = 3,
1632    CannotCommitToArchivedProcedure = 4,
1633    InvalidGraph = 5,
1634    InvalidSearchToken = 6,
1635}
1636impl ProceduresServiceError {
1637    /// String value of the enum field names used in the ProtoBuf definition.
1638    ///
1639    /// The values are not transformed in any way and thus are considered stable
1640    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1641    pub fn as_str_name(&self) -> &'static str {
1642        match self {
1643            Self::Unspecified => "PROCEDURES_SERVICE_ERROR_UNSPECIFIED",
1644            Self::NotFound => "PROCEDURES_SERVICE_ERROR_NOT_FOUND",
1645            Self::CommitNotFound => "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND",
1646            Self::CannotMergeMain => "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN",
1647            Self::CannotCommitToArchivedProcedure => {
1648                "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE"
1649            }
1650            Self::InvalidGraph => "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH",
1651            Self::InvalidSearchToken => "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN",
1652        }
1653    }
1654    /// Creates an enum from field names used in the ProtoBuf definition.
1655    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1656        match value {
1657            "PROCEDURES_SERVICE_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
1658            "PROCEDURES_SERVICE_ERROR_NOT_FOUND" => Some(Self::NotFound),
1659            "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND" => Some(Self::CommitNotFound),
1660            "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN" => Some(Self::CannotMergeMain),
1661            "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE" => {
1662                Some(Self::CannotCommitToArchivedProcedure)
1663            }
1664            "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH" => Some(Self::InvalidGraph),
1665            "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN" => {
1666                Some(Self::InvalidSearchToken)
1667            }
1668            _ => None,
1669        }
1670    }
1671}
1672/// Generated client implementations.
1673pub mod procedures_service_client {
1674    #![allow(
1675        unused_variables,
1676        dead_code,
1677        missing_docs,
1678        clippy::wildcard_imports,
1679        clippy::let_unit_value,
1680    )]
1681    use tonic::codegen::*;
1682    use tonic::codegen::http::Uri;
1683    #[derive(Debug, Clone)]
1684    pub struct ProceduresServiceClient<T> {
1685        inner: tonic::client::Grpc<T>,
1686    }
1687    impl ProceduresServiceClient<tonic::transport::Channel> {
1688        /// Attempt to create a new client by connecting to a given endpoint.
1689        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1690        where
1691            D: TryInto<tonic::transport::Endpoint>,
1692            D::Error: Into<StdError>,
1693        {
1694            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1695            Ok(Self::new(conn))
1696        }
1697    }
1698    impl<T> ProceduresServiceClient<T>
1699    where
1700        T: tonic::client::GrpcService<tonic::body::Body>,
1701        T::Error: Into<StdError>,
1702        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1703        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1704    {
1705        pub fn new(inner: T) -> Self {
1706            let inner = tonic::client::Grpc::new(inner);
1707            Self { inner }
1708        }
1709        pub fn with_origin(inner: T, origin: Uri) -> Self {
1710            let inner = tonic::client::Grpc::with_origin(inner, origin);
1711            Self { inner }
1712        }
1713        pub fn with_interceptor<F>(
1714            inner: T,
1715            interceptor: F,
1716        ) -> ProceduresServiceClient<InterceptedService<T, F>>
1717        where
1718            F: tonic::service::Interceptor,
1719            T::ResponseBody: Default,
1720            T: tonic::codegen::Service<
1721                http::Request<tonic::body::Body>,
1722                Response = http::Response<
1723                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1724                >,
1725            >,
1726            <T as tonic::codegen::Service<
1727                http::Request<tonic::body::Body>,
1728            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1729        {
1730            ProceduresServiceClient::new(InterceptedService::new(inner, interceptor))
1731        }
1732        /// Compress requests with the given encoding.
1733        ///
1734        /// This requires the server to support it otherwise it might respond with an
1735        /// error.
1736        #[must_use]
1737        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1738            self.inner = self.inner.send_compressed(encoding);
1739            self
1740        }
1741        /// Enable decompressing responses.
1742        #[must_use]
1743        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1744            self.inner = self.inner.accept_compressed(encoding);
1745            self
1746        }
1747        /// Limits the maximum size of a decoded message.
1748        ///
1749        /// Default: `4MB`
1750        #[must_use]
1751        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1752            self.inner = self.inner.max_decoding_message_size(limit);
1753            self
1754        }
1755        /// Limits the maximum size of an encoded message.
1756        ///
1757        /// Default: `usize::MAX`
1758        #[must_use]
1759        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1760            self.inner = self.inner.max_encoding_message_size(limit);
1761            self
1762        }
1763        pub async fn create_procedure(
1764            &mut self,
1765            request: impl tonic::IntoRequest<super::CreateProcedureRequest>,
1766        ) -> std::result::Result<
1767            tonic::Response<super::CreateProcedureResponse>,
1768            tonic::Status,
1769        > {
1770            self.inner
1771                .ready()
1772                .await
1773                .map_err(|e| {
1774                    tonic::Status::unknown(
1775                        format!("Service was not ready: {}", e.into()),
1776                    )
1777                })?;
1778            let codec = tonic::codec::ProstCodec::default();
1779            let path = http::uri::PathAndQuery::from_static(
1780                "/nominal.procedures.v1.ProceduresService/CreateProcedure",
1781            );
1782            let mut req = request.into_request();
1783            req.extensions_mut()
1784                .insert(
1785                    GrpcMethod::new(
1786                        "nominal.procedures.v1.ProceduresService",
1787                        "CreateProcedure",
1788                    ),
1789                );
1790            self.inner.unary(req, path, codec).await
1791        }
1792        pub async fn get_procedure(
1793            &mut self,
1794            request: impl tonic::IntoRequest<super::GetProcedureRequest>,
1795        ) -> std::result::Result<
1796            tonic::Response<super::GetProcedureResponse>,
1797            tonic::Status,
1798        > {
1799            self.inner
1800                .ready()
1801                .await
1802                .map_err(|e| {
1803                    tonic::Status::unknown(
1804                        format!("Service was not ready: {}", e.into()),
1805                    )
1806                })?;
1807            let codec = tonic::codec::ProstCodec::default();
1808            let path = http::uri::PathAndQuery::from_static(
1809                "/nominal.procedures.v1.ProceduresService/GetProcedure",
1810            );
1811            let mut req = request.into_request();
1812            req.extensions_mut()
1813                .insert(
1814                    GrpcMethod::new(
1815                        "nominal.procedures.v1.ProceduresService",
1816                        "GetProcedure",
1817                    ),
1818                );
1819            self.inner.unary(req, path, codec).await
1820        }
1821        pub async fn batch_get_procedure_metadata(
1822            &mut self,
1823            request: impl tonic::IntoRequest<super::BatchGetProcedureMetadataRequest>,
1824        ) -> std::result::Result<
1825            tonic::Response<super::BatchGetProcedureMetadataResponse>,
1826            tonic::Status,
1827        > {
1828            self.inner
1829                .ready()
1830                .await
1831                .map_err(|e| {
1832                    tonic::Status::unknown(
1833                        format!("Service was not ready: {}", e.into()),
1834                    )
1835                })?;
1836            let codec = tonic::codec::ProstCodec::default();
1837            let path = http::uri::PathAndQuery::from_static(
1838                "/nominal.procedures.v1.ProceduresService/BatchGetProcedureMetadata",
1839            );
1840            let mut req = request.into_request();
1841            req.extensions_mut()
1842                .insert(
1843                    GrpcMethod::new(
1844                        "nominal.procedures.v1.ProceduresService",
1845                        "BatchGetProcedureMetadata",
1846                    ),
1847                );
1848            self.inner.unary(req, path, codec).await
1849        }
1850        pub async fn update_procedure_metadata(
1851            &mut self,
1852            request: impl tonic::IntoRequest<super::UpdateProcedureMetadataRequest>,
1853        ) -> std::result::Result<
1854            tonic::Response<super::UpdateProcedureMetadataResponse>,
1855            tonic::Status,
1856        > {
1857            self.inner
1858                .ready()
1859                .await
1860                .map_err(|e| {
1861                    tonic::Status::unknown(
1862                        format!("Service was not ready: {}", e.into()),
1863                    )
1864                })?;
1865            let codec = tonic::codec::ProstCodec::default();
1866            let path = http::uri::PathAndQuery::from_static(
1867                "/nominal.procedures.v1.ProceduresService/UpdateProcedureMetadata",
1868            );
1869            let mut req = request.into_request();
1870            req.extensions_mut()
1871                .insert(
1872                    GrpcMethod::new(
1873                        "nominal.procedures.v1.ProceduresService",
1874                        "UpdateProcedureMetadata",
1875                    ),
1876                );
1877            self.inner.unary(req, path, codec).await
1878        }
1879        pub async fn parse_nested_procedure(
1880            &mut self,
1881            request: impl tonic::IntoRequest<super::ParseNestedProcedureRequest>,
1882        ) -> std::result::Result<
1883            tonic::Response<super::ParseNestedProcedureResponse>,
1884            tonic::Status,
1885        > {
1886            self.inner
1887                .ready()
1888                .await
1889                .map_err(|e| {
1890                    tonic::Status::unknown(
1891                        format!("Service was not ready: {}", e.into()),
1892                    )
1893                })?;
1894            let codec = tonic::codec::ProstCodec::default();
1895            let path = http::uri::PathAndQuery::from_static(
1896                "/nominal.procedures.v1.ProceduresService/ParseNestedProcedure",
1897            );
1898            let mut req = request.into_request();
1899            req.extensions_mut()
1900                .insert(
1901                    GrpcMethod::new(
1902                        "nominal.procedures.v1.ProceduresService",
1903                        "ParseNestedProcedure",
1904                    ),
1905                );
1906            self.inner.unary(req, path, codec).await
1907        }
1908        pub async fn get_procedure_as_nested(
1909            &mut self,
1910            request: impl tonic::IntoRequest<super::GetProcedureAsNestedRequest>,
1911        ) -> std::result::Result<
1912            tonic::Response<super::GetProcedureAsNestedResponse>,
1913            tonic::Status,
1914        > {
1915            self.inner
1916                .ready()
1917                .await
1918                .map_err(|e| {
1919                    tonic::Status::unknown(
1920                        format!("Service was not ready: {}", e.into()),
1921                    )
1922                })?;
1923            let codec = tonic::codec::ProstCodec::default();
1924            let path = http::uri::PathAndQuery::from_static(
1925                "/nominal.procedures.v1.ProceduresService/GetProcedureAsNested",
1926            );
1927            let mut req = request.into_request();
1928            req.extensions_mut()
1929                .insert(
1930                    GrpcMethod::new(
1931                        "nominal.procedures.v1.ProceduresService",
1932                        "GetProcedureAsNested",
1933                    ),
1934                );
1935            self.inner.unary(req, path, codec).await
1936        }
1937        pub async fn merge_to_main(
1938            &mut self,
1939            request: impl tonic::IntoRequest<super::MergeToMainRequest>,
1940        ) -> std::result::Result<
1941            tonic::Response<super::MergeToMainResponse>,
1942            tonic::Status,
1943        > {
1944            self.inner
1945                .ready()
1946                .await
1947                .map_err(|e| {
1948                    tonic::Status::unknown(
1949                        format!("Service was not ready: {}", e.into()),
1950                    )
1951                })?;
1952            let codec = tonic::codec::ProstCodec::default();
1953            let path = http::uri::PathAndQuery::from_static(
1954                "/nominal.procedures.v1.ProceduresService/MergeToMain",
1955            );
1956            let mut req = request.into_request();
1957            req.extensions_mut()
1958                .insert(
1959                    GrpcMethod::new(
1960                        "nominal.procedures.v1.ProceduresService",
1961                        "MergeToMain",
1962                    ),
1963                );
1964            self.inner.unary(req, path, codec).await
1965        }
1966        pub async fn save_working_state(
1967            &mut self,
1968            request: impl tonic::IntoRequest<super::SaveWorkingStateRequest>,
1969        ) -> std::result::Result<
1970            tonic::Response<super::SaveWorkingStateResponse>,
1971            tonic::Status,
1972        > {
1973            self.inner
1974                .ready()
1975                .await
1976                .map_err(|e| {
1977                    tonic::Status::unknown(
1978                        format!("Service was not ready: {}", e.into()),
1979                    )
1980                })?;
1981            let codec = tonic::codec::ProstCodec::default();
1982            let path = http::uri::PathAndQuery::from_static(
1983                "/nominal.procedures.v1.ProceduresService/SaveWorkingState",
1984            );
1985            let mut req = request.into_request();
1986            req.extensions_mut()
1987                .insert(
1988                    GrpcMethod::new(
1989                        "nominal.procedures.v1.ProceduresService",
1990                        "SaveWorkingState",
1991                    ),
1992                );
1993            self.inner.unary(req, path, codec).await
1994        }
1995        pub async fn commit(
1996            &mut self,
1997            request: impl tonic::IntoRequest<super::CommitRequest>,
1998        ) -> std::result::Result<tonic::Response<super::CommitResponse>, tonic::Status> {
1999            self.inner
2000                .ready()
2001                .await
2002                .map_err(|e| {
2003                    tonic::Status::unknown(
2004                        format!("Service was not ready: {}", e.into()),
2005                    )
2006                })?;
2007            let codec = tonic::codec::ProstCodec::default();
2008            let path = http::uri::PathAndQuery::from_static(
2009                "/nominal.procedures.v1.ProceduresService/Commit",
2010            );
2011            let mut req = request.into_request();
2012            req.extensions_mut()
2013                .insert(
2014                    GrpcMethod::new("nominal.procedures.v1.ProceduresService", "Commit"),
2015                );
2016            self.inner.unary(req, path, codec).await
2017        }
2018        pub async fn search_procedures(
2019            &mut self,
2020            request: impl tonic::IntoRequest<super::SearchProceduresRequest>,
2021        ) -> std::result::Result<
2022            tonic::Response<super::SearchProceduresResponse>,
2023            tonic::Status,
2024        > {
2025            self.inner
2026                .ready()
2027                .await
2028                .map_err(|e| {
2029                    tonic::Status::unknown(
2030                        format!("Service was not ready: {}", e.into()),
2031                    )
2032                })?;
2033            let codec = tonic::codec::ProstCodec::default();
2034            let path = http::uri::PathAndQuery::from_static(
2035                "/nominal.procedures.v1.ProceduresService/SearchProcedures",
2036            );
2037            let mut req = request.into_request();
2038            req.extensions_mut()
2039                .insert(
2040                    GrpcMethod::new(
2041                        "nominal.procedures.v1.ProceduresService",
2042                        "SearchProcedures",
2043                    ),
2044                );
2045            self.inner.unary(req, path, codec).await
2046        }
2047        pub async fn archive_procedures(
2048            &mut self,
2049            request: impl tonic::IntoRequest<super::ArchiveProceduresRequest>,
2050        ) -> std::result::Result<
2051            tonic::Response<super::ArchiveProceduresResponse>,
2052            tonic::Status,
2053        > {
2054            self.inner
2055                .ready()
2056                .await
2057                .map_err(|e| {
2058                    tonic::Status::unknown(
2059                        format!("Service was not ready: {}", e.into()),
2060                    )
2061                })?;
2062            let codec = tonic::codec::ProstCodec::default();
2063            let path = http::uri::PathAndQuery::from_static(
2064                "/nominal.procedures.v1.ProceduresService/ArchiveProcedures",
2065            );
2066            let mut req = request.into_request();
2067            req.extensions_mut()
2068                .insert(
2069                    GrpcMethod::new(
2070                        "nominal.procedures.v1.ProceduresService",
2071                        "ArchiveProcedures",
2072                    ),
2073                );
2074            self.inner.unary(req, path, codec).await
2075        }
2076        pub async fn unarchive_procedures(
2077            &mut self,
2078            request: impl tonic::IntoRequest<super::UnarchiveProceduresRequest>,
2079        ) -> std::result::Result<
2080            tonic::Response<super::UnarchiveProceduresResponse>,
2081            tonic::Status,
2082        > {
2083            self.inner
2084                .ready()
2085                .await
2086                .map_err(|e| {
2087                    tonic::Status::unknown(
2088                        format!("Service was not ready: {}", e.into()),
2089                    )
2090                })?;
2091            let codec = tonic::codec::ProstCodec::default();
2092            let path = http::uri::PathAndQuery::from_static(
2093                "/nominal.procedures.v1.ProceduresService/UnarchiveProcedures",
2094            );
2095            let mut req = request.into_request();
2096            req.extensions_mut()
2097                .insert(
2098                    GrpcMethod::new(
2099                        "nominal.procedures.v1.ProceduresService",
2100                        "UnarchiveProcedures",
2101                    ),
2102                );
2103            self.inner.unary(req, path, codec).await
2104        }
2105    }
2106}