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