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, PartialEq, ::prost::Message)]
1105pub struct TextFieldSimpleRegex {
1106    #[prost(string, tag = "1")]
1107    pub pattern: ::prost::alloc::string::String,
1108    #[prost(string, optional, tag = "2")]
1109    pub description: ::core::option::Option<::prost::alloc::string::String>,
1110}
1111#[derive(Clone, PartialEq, ::prost::Message)]
1112pub struct TextFieldSimpleInputType {
1113    #[prost(message, optional, tag = "1")]
1114    pub regex: ::core::option::Option<TextFieldSimpleRegex>,
1115}
1116#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1117pub struct TextFieldMarkdownInputType {}
1118#[derive(Clone, PartialEq, ::prost::Message)]
1119pub struct TextField {
1120    #[prost(string, tag = "1")]
1121    pub label: ::prost::alloc::string::String,
1122    #[prost(uint32, optional, tag = "4")]
1123    pub min_length: ::core::option::Option<u32>,
1124    #[prost(uint32, optional, tag = "5")]
1125    pub max_length: ::core::option::Option<u32>,
1126    #[prost(oneof = "text_field::InputType", tags = "2, 3")]
1127    pub input_type: ::core::option::Option<text_field::InputType>,
1128}
1129/// Nested message and enum types in `TextField`.
1130pub mod text_field {
1131    #[derive(Clone, PartialEq, ::prost::Oneof)]
1132    pub enum InputType {
1133        #[prost(message, tag = "2")]
1134        Simple(super::TextFieldSimpleInputType),
1135        #[prost(message, tag = "3")]
1136        Markdown(super::TextFieldMarkdownInputType),
1137    }
1138}
1139#[derive(Clone, PartialEq, ::prost::Message)]
1140pub struct IntField {
1141    #[prost(string, tag = "1")]
1142    pub label: ::prost::alloc::string::String,
1143    #[prost(bool, tag = "2")]
1144    pub is_required: bool,
1145    #[prost(int64, optional, tag = "3")]
1146    pub gte_value: ::core::option::Option<i64>,
1147    #[prost(int64, optional, tag = "4")]
1148    pub lte_value: ::core::option::Option<i64>,
1149}
1150#[derive(Clone, PartialEq, ::prost::Message)]
1151pub struct DoubleField {
1152    #[prost(string, tag = "1")]
1153    pub label: ::prost::alloc::string::String,
1154    #[prost(bool, tag = "2")]
1155    pub is_required: bool,
1156    #[prost(oneof = "double_field::LowerBound", tags = "3, 4")]
1157    pub lower_bound: ::core::option::Option<double_field::LowerBound>,
1158    #[prost(oneof = "double_field::UpperBound", tags = "5, 6")]
1159    pub upper_bound: ::core::option::Option<double_field::UpperBound>,
1160}
1161/// Nested message and enum types in `DoubleField`.
1162pub mod double_field {
1163    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1164    pub enum LowerBound {
1165        #[prost(double, tag = "3")]
1166        GtValue(f64),
1167        #[prost(double, tag = "4")]
1168        GteValue(f64),
1169    }
1170    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1171    pub enum UpperBound {
1172        #[prost(double, tag = "5")]
1173        LtValue(f64),
1174        #[prost(double, tag = "6")]
1175        LteValue(f64),
1176    }
1177}
1178#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1179pub struct EnumFieldButtonsInputType {}
1180#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1181pub struct EnumFieldMenuInputType {}
1182#[derive(Clone, PartialEq, ::prost::Message)]
1183pub struct SingleEnumField {
1184    #[prost(string, tag = "1")]
1185    pub label: ::prost::alloc::string::String,
1186    #[prost(string, repeated, tag = "2")]
1187    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1188    #[prost(bool, tag = "5")]
1189    pub allow_custom: bool,
1190    #[prost(bool, tag = "6")]
1191    pub is_required: bool,
1192    #[prost(oneof = "single_enum_field::InputType", tags = "3, 4")]
1193    pub input_type: ::core::option::Option<single_enum_field::InputType>,
1194}
1195/// Nested message and enum types in `SingleEnumField`.
1196pub mod single_enum_field {
1197    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1198    pub enum InputType {
1199        #[prost(message, tag = "3")]
1200        Buttons(super::EnumFieldButtonsInputType),
1201        #[prost(message, tag = "4")]
1202        Dropdown(super::EnumFieldMenuInputType),
1203    }
1204}
1205#[derive(Clone, PartialEq, ::prost::Message)]
1206pub struct MultiEnumField {
1207    #[prost(string, tag = "1")]
1208    pub label: ::prost::alloc::string::String,
1209    #[prost(string, repeated, tag = "2")]
1210    pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1211    #[prost(bool, tag = "6")]
1212    pub allow_custom: bool,
1213    #[prost(uint32, optional, tag = "7")]
1214    pub min_count: ::core::option::Option<u32>,
1215    #[prost(uint32, optional, tag = "8")]
1216    pub max_count: ::core::option::Option<u32>,
1217    #[prost(oneof = "multi_enum_field::InputType", tags = "3, 4")]
1218    pub input_type: ::core::option::Option<multi_enum_field::InputType>,
1219}
1220/// Nested message and enum types in `MultiEnumField`.
1221pub mod multi_enum_field {
1222    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1223    pub enum InputType {
1224        #[prost(message, tag = "3")]
1225        Buttons(super::EnumFieldButtonsInputType),
1226        #[prost(message, tag = "4")]
1227        Dropdown(super::EnumFieldMenuInputType),
1228    }
1229}
1230#[derive(Clone, PartialEq, ::prost::Message)]
1231pub struct FileUploadField {
1232    #[prost(bool, tag = "1")]
1233    pub is_required: bool,
1234    #[prost(string, repeated, tag = "2")]
1235    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1236}
1237#[derive(Clone, PartialEq, ::prost::Message)]
1238pub struct MultiFileUploadField {
1239    #[prost(uint32, optional, tag = "1")]
1240    pub min_count: ::core::option::Option<u32>,
1241    #[prost(uint32, optional, tag = "2")]
1242    pub max_count: ::core::option::Option<u32>,
1243    #[prost(string, repeated, tag = "3")]
1244    pub suffix_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1245}
1246#[derive(Clone, PartialEq, ::prost::Message)]
1247pub struct ProcedureMetadata {
1248    #[prost(string, tag = "1")]
1249    pub rid: ::prost::alloc::string::String,
1250    #[prost(string, tag = "2")]
1251    pub title: ::prost::alloc::string::String,
1252    #[prost(string, optional, tag = "3")]
1253    pub description: ::core::option::Option<::prost::alloc::string::String>,
1254    #[prost(string, repeated, tag = "4")]
1255    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1256    #[prost(map = "string, string", tag = "5")]
1257    pub properties: ::std::collections::HashMap<
1258        ::prost::alloc::string::String,
1259        ::prost::alloc::string::String,
1260    >,
1261    #[prost(bool, tag = "6")]
1262    pub is_archived: bool,
1263    #[prost(bool, tag = "7")]
1264    pub is_published: bool,
1265    #[prost(message, optional, tag = "8")]
1266    pub created_at: ::core::option::Option<
1267        super::super::super::google::protobuf::Timestamp,
1268    >,
1269    #[prost(string, tag = "9")]
1270    pub created_by: ::prost::alloc::string::String,
1271    #[prost(message, optional, tag = "10")]
1272    pub updated_at: ::core::option::Option<
1273        super::super::super::google::protobuf::Timestamp,
1274    >,
1275    #[prost(string, tag = "11")]
1276    pub updated_by: ::prost::alloc::string::String,
1277    #[prost(string, tag = "12")]
1278    pub workspace: ::prost::alloc::string::String,
1279    #[prost(int64, optional, tag = "13")]
1280    pub execution_count: ::core::option::Option<i64>,
1281}
1282#[derive(Clone, PartialEq, ::prost::Message)]
1283pub struct Procedure {
1284    #[prost(string, tag = "1")]
1285    pub rid: ::prost::alloc::string::String,
1286    #[prost(string, tag = "2")]
1287    pub commit: ::prost::alloc::string::String,
1288    #[prost(message, optional, tag = "3")]
1289    pub metadata: ::core::option::Option<ProcedureMetadata>,
1290    #[prost(message, optional, tag = "4")]
1291    pub state: ::core::option::Option<ProcedureState>,
1292}
1293#[derive(Clone, PartialEq, ::prost::Message)]
1294pub struct CreateProcedureRequest {
1295    #[prost(string, tag = "1")]
1296    pub title: ::prost::alloc::string::String,
1297    #[prost(string, optional, tag = "2")]
1298    pub description: ::core::option::Option<::prost::alloc::string::String>,
1299    #[prost(string, repeated, tag = "3")]
1300    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1301    #[prost(map = "string, string", tag = "4")]
1302    pub properties: ::std::collections::HashMap<
1303        ::prost::alloc::string::String,
1304        ::prost::alloc::string::String,
1305    >,
1306    #[prost(message, optional, tag = "5")]
1307    pub state: ::core::option::Option<ProcedureState>,
1308    #[prost(bool, optional, tag = "6")]
1309    pub is_published: ::core::option::Option<bool>,
1310    #[prost(string, tag = "7")]
1311    pub workspace: ::prost::alloc::string::String,
1312    #[prost(string, tag = "8")]
1313    pub commit_message: ::prost::alloc::string::String,
1314    #[prost(string, optional, tag = "9")]
1315    pub initial_branch_name: ::core::option::Option<::prost::alloc::string::String>,
1316}
1317#[derive(Clone, PartialEq, ::prost::Message)]
1318pub struct CreateProcedureResponse {
1319    #[prost(message, optional, tag = "1")]
1320    pub procedure: ::core::option::Option<Procedure>,
1321    #[prost(string, optional, tag = "2")]
1322    pub branch_name: ::core::option::Option<::prost::alloc::string::String>,
1323}
1324#[derive(Clone, PartialEq, ::prost::Message)]
1325pub struct GetProcedureRequest {
1326    #[prost(string, tag = "1")]
1327    pub rid: ::prost::alloc::string::String,
1328    #[prost(message, optional, tag = "2")]
1329    pub branch_or_commit: ::core::option::Option<
1330        super::super::versioning::v1::BranchOrCommit,
1331    >,
1332    #[prost(bool, tag = "3")]
1333    pub include_display_graph: bool,
1334}
1335#[derive(Clone, PartialEq, ::prost::Message)]
1336pub struct GetProcedureResponse {
1337    #[prost(message, optional, tag = "1")]
1338    pub procedure: ::core::option::Option<Procedure>,
1339    #[prost(message, optional, tag = "2")]
1340    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1341}
1342#[derive(Clone, PartialEq, ::prost::Message)]
1343pub struct BatchGetProcedureMetadataRequest {
1344    #[prost(string, repeated, tag = "1")]
1345    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1346}
1347#[derive(Clone, PartialEq, ::prost::Message)]
1348pub struct BatchGetProcedureMetadataResponse {
1349    #[prost(message, repeated, tag = "1")]
1350    pub procedure_metadatas: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1351}
1352#[derive(Clone, PartialEq, ::prost::Message)]
1353pub struct UpdateProcedureMetadataRequest {
1354    #[prost(string, tag = "1")]
1355    pub rid: ::prost::alloc::string::String,
1356    #[prost(string, optional, tag = "2")]
1357    pub title: ::core::option::Option<::prost::alloc::string::String>,
1358    #[prost(string, optional, tag = "3")]
1359    pub description: ::core::option::Option<::prost::alloc::string::String>,
1360    #[prost(message, optional, tag = "4")]
1361    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
1362    #[prost(message, optional, tag = "5")]
1363    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
1364    #[prost(bool, optional, tag = "6")]
1365    pub is_archived: ::core::option::Option<bool>,
1366    #[prost(bool, optional, tag = "7")]
1367    pub is_published: ::core::option::Option<bool>,
1368}
1369#[derive(Clone, PartialEq, ::prost::Message)]
1370pub struct UpdateProcedureMetadataResponse {
1371    #[prost(message, optional, tag = "1")]
1372    pub procedure_metadata: ::core::option::Option<ProcedureMetadata>,
1373}
1374#[derive(Clone, PartialEq, ::prost::Message)]
1375pub struct ParseNestedProcedureRequest {
1376    #[prost(message, optional, tag = "1")]
1377    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1378    #[prost(bool, tag = "3")]
1379    pub include_display_graph: bool,
1380}
1381#[derive(Clone, PartialEq, ::prost::Message)]
1382pub struct ParseNestedProcedureResponse {
1383    #[prost(message, optional, tag = "1")]
1384    pub procedure: ::core::option::Option<Procedure>,
1385    #[prost(message, optional, tag = "2")]
1386    pub display_graph: ::core::option::Option<ProcedureDisplayGraph>,
1387}
1388#[derive(Clone, PartialEq, ::prost::Message)]
1389pub struct GetProcedureAsNestedRequest {
1390    #[prost(string, tag = "1")]
1391    pub rid: ::prost::alloc::string::String,
1392    #[prost(message, optional, tag = "2")]
1393    pub branch_or_commit: ::core::option::Option<
1394        super::super::versioning::v1::BranchOrCommit,
1395    >,
1396}
1397#[derive(Clone, PartialEq, ::prost::Message)]
1398pub struct GetProcedureAsNestedResponse {
1399    #[prost(message, optional, tag = "1")]
1400    pub nested_procedure: ::core::option::Option<NestedProcedure>,
1401}
1402#[derive(Clone, PartialEq, ::prost::Message)]
1403pub struct MergeToMainRequest {
1404    #[prost(string, tag = "1")]
1405    pub rid: ::prost::alloc::string::String,
1406    #[prost(string, tag = "2")]
1407    pub branch: ::prost::alloc::string::String,
1408    #[prost(string, optional, tag = "3")]
1409    pub latest_commit_on_main: ::core::option::Option<::prost::alloc::string::String>,
1410    #[prost(string, tag = "4")]
1411    pub message: ::prost::alloc::string::String,
1412}
1413#[derive(Clone, PartialEq, ::prost::Message)]
1414pub struct MergeToMainResponse {
1415    #[prost(message, optional, tag = "1")]
1416    pub procedure: ::core::option::Option<Procedure>,
1417}
1418#[derive(Clone, PartialEq, ::prost::Message)]
1419pub struct SaveWorkingStateRequest {
1420    #[prost(string, tag = "1")]
1421    pub rid: ::prost::alloc::string::String,
1422    #[prost(string, optional, tag = "2")]
1423    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1424    #[prost(string, tag = "3")]
1425    pub message: ::prost::alloc::string::String,
1426    #[prost(string, optional, tag = "4")]
1427    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1428    #[prost(message, optional, tag = "5")]
1429    pub state: ::core::option::Option<ProcedureState>,
1430}
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct SaveWorkingStateResponse {
1433    #[prost(message, optional, tag = "1")]
1434    pub procedure: ::core::option::Option<Procedure>,
1435}
1436#[derive(Clone, PartialEq, ::prost::Message)]
1437pub struct CommitRequest {
1438    #[prost(string, tag = "1")]
1439    pub rid: ::prost::alloc::string::String,
1440    #[prost(string, optional, tag = "2")]
1441    pub branch: ::core::option::Option<::prost::alloc::string::String>,
1442    #[prost(string, optional, tag = "3")]
1443    pub latest_commit_on_branch: ::core::option::Option<::prost::alloc::string::String>,
1444    #[prost(string, tag = "4")]
1445    pub message: ::prost::alloc::string::String,
1446    #[prost(message, optional, tag = "5")]
1447    pub state: ::core::option::Option<ProcedureState>,
1448}
1449#[derive(Clone, PartialEq, ::prost::Message)]
1450pub struct CommitResponse {
1451    #[prost(message, optional, tag = "1")]
1452    pub procedure: ::core::option::Option<Procedure>,
1453}
1454#[derive(Clone, PartialEq, ::prost::Message)]
1455pub struct ProcedureSearchQuery {
1456    #[prost(oneof = "procedure_search_query::Query", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
1457    pub query: ::core::option::Option<procedure_search_query::Query>,
1458}
1459/// Nested message and enum types in `ProcedureSearchQuery`.
1460pub mod procedure_search_query {
1461    #[derive(Clone, PartialEq, ::prost::Message)]
1462    pub struct ProcedureSearchAndQuery {
1463        #[prost(message, repeated, tag = "1")]
1464        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1465    }
1466    #[derive(Clone, PartialEq, ::prost::Message)]
1467    pub struct ProcedureSearchOrQuery {
1468        #[prost(message, repeated, tag = "1")]
1469        pub queries: ::prost::alloc::vec::Vec<super::ProcedureSearchQuery>,
1470    }
1471    #[derive(Clone, PartialEq, ::prost::Oneof)]
1472    pub enum Query {
1473        #[prost(string, tag = "1")]
1474        SearchText(::prost::alloc::string::String),
1475        #[prost(string, tag = "2")]
1476        Label(::prost::alloc::string::String),
1477        #[prost(message, tag = "3")]
1478        Property(super::super::super::types::Property),
1479        #[prost(message, tag = "4")]
1480        And(ProcedureSearchAndQuery),
1481        #[prost(message, tag = "5")]
1482        Or(ProcedureSearchOrQuery),
1483        #[prost(string, tag = "6")]
1484        Workspace(::prost::alloc::string::String),
1485        #[prost(string, tag = "7")]
1486        CreatedBy(::prost::alloc::string::String),
1487        #[prost(bool, tag = "8")]
1488        IsArchived(bool),
1489    }
1490}
1491#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1492pub struct SearchProceduresSortOptions {
1493    #[prost(bool, optional, tag = "1")]
1494    pub is_descending: ::core::option::Option<bool>,
1495    #[prost(enumeration = "SearchProceduresSortField", optional, tag = "2")]
1496    pub sort_field: ::core::option::Option<i32>,
1497}
1498#[derive(Clone, PartialEq, ::prost::Message)]
1499pub struct SearchProceduresRequest {
1500    #[prost(message, optional, tag = "1")]
1501    pub query: ::core::option::Option<ProcedureSearchQuery>,
1502    #[prost(message, optional, tag = "2")]
1503    pub sort_options: ::core::option::Option<SearchProceduresSortOptions>,
1504    #[prost(int32, optional, tag = "3")]
1505    pub page_size: ::core::option::Option<i32>,
1506    #[prost(string, optional, tag = "4")]
1507    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1508}
1509#[derive(Clone, PartialEq, ::prost::Message)]
1510pub struct SearchProceduresResponse {
1511    #[prost(message, repeated, tag = "1")]
1512    pub procedure_metadata: ::prost::alloc::vec::Vec<ProcedureMetadata>,
1513    #[prost(string, optional, tag = "2")]
1514    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1515}
1516#[derive(Clone, PartialEq, ::prost::Message)]
1517pub struct ArchiveProceduresRequest {
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 ArchiveProceduresResponse {
1523    #[prost(string, repeated, tag = "1")]
1524    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1525}
1526#[derive(Clone, PartialEq, ::prost::Message)]
1527pub struct UnarchiveProceduresRequest {
1528    #[prost(string, repeated, tag = "1")]
1529    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1530}
1531#[derive(Clone, PartialEq, ::prost::Message)]
1532pub struct UnarchiveProceduresResponse {
1533    #[prost(string, repeated, tag = "1")]
1534    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1535}
1536#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1537#[repr(i32)]
1538pub enum CaptureMoment {
1539    Unspecified = 0,
1540    StepStart = 1,
1541    StepCompletion = 2,
1542}
1543impl CaptureMoment {
1544    /// String value of the enum field names used in the ProtoBuf definition.
1545    ///
1546    /// The values are not transformed in any way and thus are considered stable
1547    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1548    pub fn as_str_name(&self) -> &'static str {
1549        match self {
1550            Self::Unspecified => "CAPTURE_MOMENT_UNSPECIFIED",
1551            Self::StepStart => "CAPTURE_MOMENT_STEP_START",
1552            Self::StepCompletion => "CAPTURE_MOMENT_STEP_COMPLETION",
1553        }
1554    }
1555    /// Creates an enum from field names used in the ProtoBuf definition.
1556    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1557        match value {
1558            "CAPTURE_MOMENT_UNSPECIFIED" => Some(Self::Unspecified),
1559            "CAPTURE_MOMENT_STEP_START" => Some(Self::StepStart),
1560            "CAPTURE_MOMENT_STEP_COMPLETION" => Some(Self::StepCompletion),
1561            _ => None,
1562        }
1563    }
1564}
1565#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1566#[repr(i32)]
1567pub enum SearchProceduresSortField {
1568    Unspecified = 0,
1569    Name = 1,
1570    CreatedAt = 2,
1571    UpdatedAt = 3,
1572}
1573impl SearchProceduresSortField {
1574    /// String value of the enum field names used in the ProtoBuf definition.
1575    ///
1576    /// The values are not transformed in any way and thus are considered stable
1577    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1578    pub fn as_str_name(&self) -> &'static str {
1579        match self {
1580            Self::Unspecified => "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED",
1581            Self::Name => "SEARCH_PROCEDURES_SORT_FIELD_NAME",
1582            Self::CreatedAt => "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT",
1583            Self::UpdatedAt => "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT",
1584        }
1585    }
1586    /// Creates an enum from field names used in the ProtoBuf definition.
1587    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1588        match value {
1589            "SEARCH_PROCEDURES_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
1590            "SEARCH_PROCEDURES_SORT_FIELD_NAME" => Some(Self::Name),
1591            "SEARCH_PROCEDURES_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
1592            "SEARCH_PROCEDURES_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
1593            _ => None,
1594        }
1595    }
1596}
1597#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1598#[repr(i32)]
1599pub enum ProceduresServiceError {
1600    Unspecified = 0,
1601    NotFound = 1,
1602    CommitNotFound = 2,
1603    CannotMergeMain = 3,
1604    CannotCommitToArchivedProcedure = 4,
1605    InvalidGraph = 5,
1606    InvalidSearchToken = 6,
1607}
1608impl ProceduresServiceError {
1609    /// String value of the enum field names used in the ProtoBuf definition.
1610    ///
1611    /// The values are not transformed in any way and thus are considered stable
1612    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1613    pub fn as_str_name(&self) -> &'static str {
1614        match self {
1615            Self::Unspecified => "PROCEDURES_SERVICE_ERROR_UNSPECIFIED",
1616            Self::NotFound => "PROCEDURES_SERVICE_ERROR_NOT_FOUND",
1617            Self::CommitNotFound => "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND",
1618            Self::CannotMergeMain => "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN",
1619            Self::CannotCommitToArchivedProcedure => {
1620                "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE"
1621            }
1622            Self::InvalidGraph => "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH",
1623            Self::InvalidSearchToken => "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN",
1624        }
1625    }
1626    /// Creates an enum from field names used in the ProtoBuf definition.
1627    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1628        match value {
1629            "PROCEDURES_SERVICE_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
1630            "PROCEDURES_SERVICE_ERROR_NOT_FOUND" => Some(Self::NotFound),
1631            "PROCEDURES_SERVICE_ERROR_COMMIT_NOT_FOUND" => Some(Self::CommitNotFound),
1632            "PROCEDURES_SERVICE_ERROR_CANNOT_MERGE_MAIN" => Some(Self::CannotMergeMain),
1633            "PROCEDURES_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_PROCEDURE" => {
1634                Some(Self::CannotCommitToArchivedProcedure)
1635            }
1636            "PROCEDURES_SERVICE_ERROR_INVALID_GRAPH" => Some(Self::InvalidGraph),
1637            "PROCEDURES_SERVICE_ERROR_INVALID_SEARCH_TOKEN" => {
1638                Some(Self::InvalidSearchToken)
1639            }
1640            _ => None,
1641        }
1642    }
1643}
1644/// Generated client implementations.
1645pub mod procedures_service_client {
1646    #![allow(
1647        unused_variables,
1648        dead_code,
1649        missing_docs,
1650        clippy::wildcard_imports,
1651        clippy::let_unit_value,
1652    )]
1653    use tonic::codegen::*;
1654    use tonic::codegen::http::Uri;
1655    #[derive(Debug, Clone)]
1656    pub struct ProceduresServiceClient<T> {
1657        inner: tonic::client::Grpc<T>,
1658    }
1659    impl ProceduresServiceClient<tonic::transport::Channel> {
1660        /// Attempt to create a new client by connecting to a given endpoint.
1661        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1662        where
1663            D: TryInto<tonic::transport::Endpoint>,
1664            D::Error: Into<StdError>,
1665        {
1666            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1667            Ok(Self::new(conn))
1668        }
1669    }
1670    impl<T> ProceduresServiceClient<T>
1671    where
1672        T: tonic::client::GrpcService<tonic::body::Body>,
1673        T::Error: Into<StdError>,
1674        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1675        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1676    {
1677        pub fn new(inner: T) -> Self {
1678            let inner = tonic::client::Grpc::new(inner);
1679            Self { inner }
1680        }
1681        pub fn with_origin(inner: T, origin: Uri) -> Self {
1682            let inner = tonic::client::Grpc::with_origin(inner, origin);
1683            Self { inner }
1684        }
1685        pub fn with_interceptor<F>(
1686            inner: T,
1687            interceptor: F,
1688        ) -> ProceduresServiceClient<InterceptedService<T, F>>
1689        where
1690            F: tonic::service::Interceptor,
1691            T::ResponseBody: Default,
1692            T: tonic::codegen::Service<
1693                http::Request<tonic::body::Body>,
1694                Response = http::Response<
1695                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1696                >,
1697            >,
1698            <T as tonic::codegen::Service<
1699                http::Request<tonic::body::Body>,
1700            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1701        {
1702            ProceduresServiceClient::new(InterceptedService::new(inner, interceptor))
1703        }
1704        /// Compress requests with the given encoding.
1705        ///
1706        /// This requires the server to support it otherwise it might respond with an
1707        /// error.
1708        #[must_use]
1709        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1710            self.inner = self.inner.send_compressed(encoding);
1711            self
1712        }
1713        /// Enable decompressing responses.
1714        #[must_use]
1715        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1716            self.inner = self.inner.accept_compressed(encoding);
1717            self
1718        }
1719        /// Limits the maximum size of a decoded message.
1720        ///
1721        /// Default: `4MB`
1722        #[must_use]
1723        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1724            self.inner = self.inner.max_decoding_message_size(limit);
1725            self
1726        }
1727        /// Limits the maximum size of an encoded message.
1728        ///
1729        /// Default: `usize::MAX`
1730        #[must_use]
1731        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1732            self.inner = self.inner.max_encoding_message_size(limit);
1733            self
1734        }
1735        pub async fn create_procedure(
1736            &mut self,
1737            request: impl tonic::IntoRequest<super::CreateProcedureRequest>,
1738        ) -> std::result::Result<
1739            tonic::Response<super::CreateProcedureResponse>,
1740            tonic::Status,
1741        > {
1742            self.inner
1743                .ready()
1744                .await
1745                .map_err(|e| {
1746                    tonic::Status::unknown(
1747                        format!("Service was not ready: {}", e.into()),
1748                    )
1749                })?;
1750            let codec = tonic::codec::ProstCodec::default();
1751            let path = http::uri::PathAndQuery::from_static(
1752                "/nominal.procedures.v1.ProceduresService/CreateProcedure",
1753            );
1754            let mut req = request.into_request();
1755            req.extensions_mut()
1756                .insert(
1757                    GrpcMethod::new(
1758                        "nominal.procedures.v1.ProceduresService",
1759                        "CreateProcedure",
1760                    ),
1761                );
1762            self.inner.unary(req, path, codec).await
1763        }
1764        pub async fn get_procedure(
1765            &mut self,
1766            request: impl tonic::IntoRequest<super::GetProcedureRequest>,
1767        ) -> std::result::Result<
1768            tonic::Response<super::GetProcedureResponse>,
1769            tonic::Status,
1770        > {
1771            self.inner
1772                .ready()
1773                .await
1774                .map_err(|e| {
1775                    tonic::Status::unknown(
1776                        format!("Service was not ready: {}", e.into()),
1777                    )
1778                })?;
1779            let codec = tonic::codec::ProstCodec::default();
1780            let path = http::uri::PathAndQuery::from_static(
1781                "/nominal.procedures.v1.ProceduresService/GetProcedure",
1782            );
1783            let mut req = request.into_request();
1784            req.extensions_mut()
1785                .insert(
1786                    GrpcMethod::new(
1787                        "nominal.procedures.v1.ProceduresService",
1788                        "GetProcedure",
1789                    ),
1790                );
1791            self.inner.unary(req, path, codec).await
1792        }
1793        pub async fn batch_get_procedure_metadata(
1794            &mut self,
1795            request: impl tonic::IntoRequest<super::BatchGetProcedureMetadataRequest>,
1796        ) -> std::result::Result<
1797            tonic::Response<super::BatchGetProcedureMetadataResponse>,
1798            tonic::Status,
1799        > {
1800            self.inner
1801                .ready()
1802                .await
1803                .map_err(|e| {
1804                    tonic::Status::unknown(
1805                        format!("Service was not ready: {}", e.into()),
1806                    )
1807                })?;
1808            let codec = tonic::codec::ProstCodec::default();
1809            let path = http::uri::PathAndQuery::from_static(
1810                "/nominal.procedures.v1.ProceduresService/BatchGetProcedureMetadata",
1811            );
1812            let mut req = request.into_request();
1813            req.extensions_mut()
1814                .insert(
1815                    GrpcMethod::new(
1816                        "nominal.procedures.v1.ProceduresService",
1817                        "BatchGetProcedureMetadata",
1818                    ),
1819                );
1820            self.inner.unary(req, path, codec).await
1821        }
1822        pub async fn update_procedure_metadata(
1823            &mut self,
1824            request: impl tonic::IntoRequest<super::UpdateProcedureMetadataRequest>,
1825        ) -> std::result::Result<
1826            tonic::Response<super::UpdateProcedureMetadataResponse>,
1827            tonic::Status,
1828        > {
1829            self.inner
1830                .ready()
1831                .await
1832                .map_err(|e| {
1833                    tonic::Status::unknown(
1834                        format!("Service was not ready: {}", e.into()),
1835                    )
1836                })?;
1837            let codec = tonic::codec::ProstCodec::default();
1838            let path = http::uri::PathAndQuery::from_static(
1839                "/nominal.procedures.v1.ProceduresService/UpdateProcedureMetadata",
1840            );
1841            let mut req = request.into_request();
1842            req.extensions_mut()
1843                .insert(
1844                    GrpcMethod::new(
1845                        "nominal.procedures.v1.ProceduresService",
1846                        "UpdateProcedureMetadata",
1847                    ),
1848                );
1849            self.inner.unary(req, path, codec).await
1850        }
1851        pub async fn parse_nested_procedure(
1852            &mut self,
1853            request: impl tonic::IntoRequest<super::ParseNestedProcedureRequest>,
1854        ) -> std::result::Result<
1855            tonic::Response<super::ParseNestedProcedureResponse>,
1856            tonic::Status,
1857        > {
1858            self.inner
1859                .ready()
1860                .await
1861                .map_err(|e| {
1862                    tonic::Status::unknown(
1863                        format!("Service was not ready: {}", e.into()),
1864                    )
1865                })?;
1866            let codec = tonic::codec::ProstCodec::default();
1867            let path = http::uri::PathAndQuery::from_static(
1868                "/nominal.procedures.v1.ProceduresService/ParseNestedProcedure",
1869            );
1870            let mut req = request.into_request();
1871            req.extensions_mut()
1872                .insert(
1873                    GrpcMethod::new(
1874                        "nominal.procedures.v1.ProceduresService",
1875                        "ParseNestedProcedure",
1876                    ),
1877                );
1878            self.inner.unary(req, path, codec).await
1879        }
1880        pub async fn get_procedure_as_nested(
1881            &mut self,
1882            request: impl tonic::IntoRequest<super::GetProcedureAsNestedRequest>,
1883        ) -> std::result::Result<
1884            tonic::Response<super::GetProcedureAsNestedResponse>,
1885            tonic::Status,
1886        > {
1887            self.inner
1888                .ready()
1889                .await
1890                .map_err(|e| {
1891                    tonic::Status::unknown(
1892                        format!("Service was not ready: {}", e.into()),
1893                    )
1894                })?;
1895            let codec = tonic::codec::ProstCodec::default();
1896            let path = http::uri::PathAndQuery::from_static(
1897                "/nominal.procedures.v1.ProceduresService/GetProcedureAsNested",
1898            );
1899            let mut req = request.into_request();
1900            req.extensions_mut()
1901                .insert(
1902                    GrpcMethod::new(
1903                        "nominal.procedures.v1.ProceduresService",
1904                        "GetProcedureAsNested",
1905                    ),
1906                );
1907            self.inner.unary(req, path, codec).await
1908        }
1909        pub async fn merge_to_main(
1910            &mut self,
1911            request: impl tonic::IntoRequest<super::MergeToMainRequest>,
1912        ) -> std::result::Result<
1913            tonic::Response<super::MergeToMainResponse>,
1914            tonic::Status,
1915        > {
1916            self.inner
1917                .ready()
1918                .await
1919                .map_err(|e| {
1920                    tonic::Status::unknown(
1921                        format!("Service was not ready: {}", e.into()),
1922                    )
1923                })?;
1924            let codec = tonic::codec::ProstCodec::default();
1925            let path = http::uri::PathAndQuery::from_static(
1926                "/nominal.procedures.v1.ProceduresService/MergeToMain",
1927            );
1928            let mut req = request.into_request();
1929            req.extensions_mut()
1930                .insert(
1931                    GrpcMethod::new(
1932                        "nominal.procedures.v1.ProceduresService",
1933                        "MergeToMain",
1934                    ),
1935                );
1936            self.inner.unary(req, path, codec).await
1937        }
1938        pub async fn save_working_state(
1939            &mut self,
1940            request: impl tonic::IntoRequest<super::SaveWorkingStateRequest>,
1941        ) -> std::result::Result<
1942            tonic::Response<super::SaveWorkingStateResponse>,
1943            tonic::Status,
1944        > {
1945            self.inner
1946                .ready()
1947                .await
1948                .map_err(|e| {
1949                    tonic::Status::unknown(
1950                        format!("Service was not ready: {}", e.into()),
1951                    )
1952                })?;
1953            let codec = tonic::codec::ProstCodec::default();
1954            let path = http::uri::PathAndQuery::from_static(
1955                "/nominal.procedures.v1.ProceduresService/SaveWorkingState",
1956            );
1957            let mut req = request.into_request();
1958            req.extensions_mut()
1959                .insert(
1960                    GrpcMethod::new(
1961                        "nominal.procedures.v1.ProceduresService",
1962                        "SaveWorkingState",
1963                    ),
1964                );
1965            self.inner.unary(req, path, codec).await
1966        }
1967        pub async fn commit(
1968            &mut self,
1969            request: impl tonic::IntoRequest<super::CommitRequest>,
1970        ) -> std::result::Result<tonic::Response<super::CommitResponse>, tonic::Status> {
1971            self.inner
1972                .ready()
1973                .await
1974                .map_err(|e| {
1975                    tonic::Status::unknown(
1976                        format!("Service was not ready: {}", e.into()),
1977                    )
1978                })?;
1979            let codec = tonic::codec::ProstCodec::default();
1980            let path = http::uri::PathAndQuery::from_static(
1981                "/nominal.procedures.v1.ProceduresService/Commit",
1982            );
1983            let mut req = request.into_request();
1984            req.extensions_mut()
1985                .insert(
1986                    GrpcMethod::new("nominal.procedures.v1.ProceduresService", "Commit"),
1987                );
1988            self.inner.unary(req, path, codec).await
1989        }
1990        pub async fn search_procedures(
1991            &mut self,
1992            request: impl tonic::IntoRequest<super::SearchProceduresRequest>,
1993        ) -> std::result::Result<
1994            tonic::Response<super::SearchProceduresResponse>,
1995            tonic::Status,
1996        > {
1997            self.inner
1998                .ready()
1999                .await
2000                .map_err(|e| {
2001                    tonic::Status::unknown(
2002                        format!("Service was not ready: {}", e.into()),
2003                    )
2004                })?;
2005            let codec = tonic::codec::ProstCodec::default();
2006            let path = http::uri::PathAndQuery::from_static(
2007                "/nominal.procedures.v1.ProceduresService/SearchProcedures",
2008            );
2009            let mut req = request.into_request();
2010            req.extensions_mut()
2011                .insert(
2012                    GrpcMethod::new(
2013                        "nominal.procedures.v1.ProceduresService",
2014                        "SearchProcedures",
2015                    ),
2016                );
2017            self.inner.unary(req, path, codec).await
2018        }
2019        pub async fn archive_procedures(
2020            &mut self,
2021            request: impl tonic::IntoRequest<super::ArchiveProceduresRequest>,
2022        ) -> std::result::Result<
2023            tonic::Response<super::ArchiveProceduresResponse>,
2024            tonic::Status,
2025        > {
2026            self.inner
2027                .ready()
2028                .await
2029                .map_err(|e| {
2030                    tonic::Status::unknown(
2031                        format!("Service was not ready: {}", e.into()),
2032                    )
2033                })?;
2034            let codec = tonic::codec::ProstCodec::default();
2035            let path = http::uri::PathAndQuery::from_static(
2036                "/nominal.procedures.v1.ProceduresService/ArchiveProcedures",
2037            );
2038            let mut req = request.into_request();
2039            req.extensions_mut()
2040                .insert(
2041                    GrpcMethod::new(
2042                        "nominal.procedures.v1.ProceduresService",
2043                        "ArchiveProcedures",
2044                    ),
2045                );
2046            self.inner.unary(req, path, codec).await
2047        }
2048        pub async fn unarchive_procedures(
2049            &mut self,
2050            request: impl tonic::IntoRequest<super::UnarchiveProceduresRequest>,
2051        ) -> std::result::Result<
2052            tonic::Response<super::UnarchiveProceduresResponse>,
2053            tonic::Status,
2054        > {
2055            self.inner
2056                .ready()
2057                .await
2058                .map_err(|e| {
2059                    tonic::Status::unknown(
2060                        format!("Service was not ready: {}", e.into()),
2061                    )
2062                })?;
2063            let codec = tonic::codec::ProstCodec::default();
2064            let path = http::uri::PathAndQuery::from_static(
2065                "/nominal.procedures.v1.ProceduresService/UnarchiveProcedures",
2066            );
2067            let mut req = request.into_request();
2068            req.extensions_mut()
2069                .insert(
2070                    GrpcMethod::new(
2071                        "nominal.procedures.v1.ProceduresService",
2072                        "UnarchiveProcedures",
2073                    ),
2074                );
2075            self.inner.unary(req, path, codec).await
2076        }
2077    }
2078}