// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionNode {
    #[prost(oneof = "procedure_execution_node::Node", tags = "1, 2")]
    pub node: ::core::option::Option<procedure_execution_node::Node>,
}
/// Nested message and enum types in `ProcedureExecutionNode`.
pub mod procedure_execution_node {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Node {
        #[prost(message, tag = "1")]
        Section(super::ProcedureExecutionSectionNode),
        #[prost(message, tag = "2")]
        Step(super::ProcedureExecutionStepNode),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionSectionNode {
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub template_node_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "4")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "5")]
    pub template_commit_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionStepNode {
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub template_node_id: ::prost::alloc::string::String,
    #[prost(bool, tag = "3")]
    pub is_outdated: bool,
    #[prost(message, optional, tag = "4")]
    pub state: ::core::option::Option<ExecutionStepState>,
    #[prost(message, optional, tag = "5")]
    pub value: ::core::option::Option<StepContentValue>,
    #[prost(message, optional, tag = "6")]
    pub auto_proceed_config: ::core::option::Option<super::super::v1::AutoProceedConfig>,
    #[prost(message, optional, tag = "7")]
    pub success_condition_status: ::core::option::Option<SuccessConditionStatus>,
    #[prost(message, repeated, tag = "8")]
    pub completion_action_statuses: ::prost::alloc::vec::Vec<CompletionActionStatus>,
    #[prost(map = "string, message", tag = "10")]
    pub outputs: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        FieldOutput,
    >,
    #[prost(string, optional, tag = "11")]
    pub template_commit_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "12")]
    pub channel_capture_statuses: ::prost::alloc::vec::Vec<ChannelCaptureStatus>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ExecutionStepNotStarted {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepSkipped {
    #[prost(message, optional, tag = "1")]
    pub skipped_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "2")]
    pub skipped_by: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "3")]
    pub skip_reason: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "4")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "5")]
    pub started_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "6")]
    pub submitted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "7")]
    pub submitted_by: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepInProgress {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "2")]
    pub started_by: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepSubmitted {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "2")]
    pub started_by: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub submitted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "4")]
    pub submitted_by: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepSucceeded {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "2")]
    pub started_by: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub submitted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "4")]
    pub submitted_by: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub succeeded_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "6")]
    pub succeeded_by: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepErrored {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "2")]
    pub started_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "3")]
    pub submitted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "4")]
    pub submitted_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "5")]
    pub errored_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "6")]
    pub errored_by: ::prost::alloc::string::String,
    #[prost(string, tag = "7")]
    pub error: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "8")]
    pub skipped_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "9")]
    pub skipped_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "10")]
    pub skip_reason: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "11")]
    pub succeeded_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "12")]
    pub succeeded_by: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionStepState {
    #[prost(oneof = "execution_step_state::State", tags = "1, 2, 3, 4, 5, 6")]
    pub state: ::core::option::Option<execution_step_state::State>,
}
/// Nested message and enum types in `ExecutionStepState`.
pub mod execution_step_state {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum State {
        #[prost(message, tag = "1")]
        NotStarted(super::ExecutionStepNotStarted),
        #[prost(message, tag = "2")]
        InProgress(super::ExecutionStepInProgress),
        #[prost(message, tag = "3")]
        Submitted(super::ExecutionStepSubmitted),
        #[prost(message, tag = "4")]
        Skipped(super::ExecutionStepSkipped),
        #[prost(message, tag = "5")]
        Succeeded(super::ExecutionStepSucceeded),
        #[prost(message, tag = "6")]
        Errored(super::ExecutionStepErrored),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StepInProgressRequest {}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StepSubmittedRequest {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StepSkippedRequest {
    #[prost(string, optional, tag = "1")]
    pub skip_reason: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StepErroredRequest {
    #[prost(string, optional, tag = "1")]
    pub error_reason: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TargetStepStateRequest {
    #[prost(oneof = "target_step_state_request::TargetState", tags = "1, 2, 3, 4")]
    pub target_state: ::core::option::Option<target_step_state_request::TargetState>,
}
/// Nested message and enum types in `TargetStepStateRequest`.
pub mod target_step_state_request {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum TargetState {
        #[prost(message, tag = "1")]
        InProgress(super::StepInProgressRequest),
        #[prost(message, tag = "2")]
        Submitted(super::StepSubmittedRequest),
        #[prost(message, tag = "3")]
        Skipped(super::StepSkippedRequest),
        #[prost(message, tag = "4")]
        Errored(super::StepErroredRequest),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureAsyncTask {
    #[prost(oneof = "procedure_async_task::Task", tags = "1, 2")]
    pub task: ::core::option::Option<procedure_async_task::Task>,
}
/// Nested message and enum types in `ProcedureAsyncTask`.
pub mod procedure_async_task {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Task {
        #[prost(message, tag = "1")]
        ConditionObservation(super::ConditionObservation),
        #[prost(message, tag = "2")]
        CompletionActionExecution(super::CompletionActionExecution),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConditionObservation {
    #[prost(string, tag = "1")]
    pub user_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub org_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub success_condition: ::core::option::Option<super::super::v1::SuccessCondition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompletionActionExecution {
    #[prost(string, tag = "1")]
    pub user_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub org_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub procedure_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub workspace_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "6")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "7")]
    pub completion_action_configs: ::prost::alloc::vec::Vec<
        super::super::v1::CompletionActionConfig,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SuccessConditionStatus {
    #[prost(oneof = "success_condition_status::Condition", tags = "1, 6, 7, 9, 10")]
    pub condition: ::core::option::Option<success_condition_status::Condition>,
    #[prost(oneof = "success_condition_status::Status", tags = "2, 3, 4, 5, 8")]
    pub status: ::core::option::Option<success_condition_status::Status>,
}
/// Nested message and enum types in `SuccessConditionStatus`.
pub mod success_condition_status {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Condition {
        #[prost(message, tag = "1")]
        And(super::AndSuccessCondition),
        #[prost(message, tag = "6")]
        Timer(super::super::super::v1::TimerSuccessCondition),
        #[prost(message, tag = "7")]
        IngestJob(super::super::super::v1::IngestJobSuccessCondition),
        #[prost(message, tag = "9")]
        ChannelValidation(super::ChannelValidationSuccessConditionStatus),
        #[prost(message, tag = "10")]
        Webhook(super::WebhookConditionStatus),
    }
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Status {
        #[prost(message, tag = "2")]
        InProgress(super::SuccessConditionInProgress),
        #[prost(message, tag = "3")]
        Satisfied(super::SuccessConditionSatisfied),
        #[prost(message, tag = "4")]
        Failed(super::SuccessConditionFailed),
        #[prost(message, tag = "5")]
        Canceled(super::SuccessConditionCanceled),
        #[prost(message, tag = "8")]
        Submitted(super::SuccessConditionSubmitted),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelValidationSuccessConditionStatus {
    #[prost(message, optional, tag = "9")]
    pub condition: ::core::option::Option<
        super::super::v1::ChannelValidationSuccessCondition,
    >,
    #[prost(int32, optional, tag = "2")]
    pub consecutive_matches: ::core::option::Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub first_satisfied_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookConditionStatus {
    #[prost(message, optional, tag = "9")]
    pub condition: ::core::option::Option<super::super::v1::WebhookSuccessCondition>,
    #[prost(int32, tag = "1")]
    pub delivery_attempts: i32,
    #[prost(message, optional, tag = "2")]
    pub last_attempt_time: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "3")]
    pub next_retry_time: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "4")]
    pub last_delivery_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "5")]
    pub last_http_status: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "6")]
    pub last_error_message: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "7")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(enumeration = "WebhookFailureReason", optional, tag = "8")]
    pub terminal_failure_reason: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AndSuccessCondition {
    #[prost(message, repeated, tag = "1")]
    pub conditions: ::prost::alloc::vec::Vec<SuccessConditionStatus>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SuccessConditionSubmitted {
    #[prost(message, optional, tag = "1")]
    pub submitted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SuccessConditionInProgress {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SuccessConditionSatisfied {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "2")]
    pub satisfied_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SuccessConditionFailed {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "2")]
    pub failed_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "3")]
    pub failure_reason: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SuccessConditionCanceled {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "2")]
    pub canceled_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelCaptureStatus {
    #[prost(string, tag = "1")]
    pub output_field_id: ::prost::alloc::string::String,
    #[prost(enumeration = "super::super::v1::CaptureMoment", tag = "2")]
    pub capture_moment: i32,
    #[prost(oneof = "channel_capture_status::Status", tags = "3, 4, 5, 6")]
    pub status: ::core::option::Option<channel_capture_status::Status>,
}
/// Nested message and enum types in `ChannelCaptureStatus`.
pub mod channel_capture_status {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Status {
        #[prost(message, tag = "3")]
        InProgress(super::ChannelCaptureInProgress),
        #[prost(message, tag = "4")]
        Succeeded(super::ChannelCaptureSucceeded),
        #[prost(message, tag = "5")]
        Failed(super::ChannelCaptureFailed),
        #[prost(message, tag = "6")]
        Skipped(super::ChannelCaptureSkipped),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ChannelCaptureInProgress {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelCaptureSucceeded {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "2")]
    pub captured_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "3")]
    pub value: ::core::option::Option<CapturedValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapturedValue {
    #[prost(oneof = "captured_value::Value", tags = "1, 2, 3, 4")]
    pub value: ::core::option::Option<captured_value::Value>,
}
/// Nested message and enum types in `CapturedValue`.
pub mod captured_value {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Value {
        #[prost(double, tag = "1")]
        DoubleValue(f64),
        #[prost(int64, tag = "2")]
        IntValue(i64),
        #[prost(bool, tag = "3")]
        BoolValue(bool),
        #[prost(string, tag = "4")]
        StringValue(::prost::alloc::string::String),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelCaptureFailed {
    #[prost(message, optional, tag = "1")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "2")]
    pub failed_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(enumeration = "ChannelCaptureFailureReason", tag = "3")]
    pub reason: i32,
    #[prost(string, tag = "4")]
    pub error_message: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ChannelCaptureSkipped {
    #[prost(message, optional, tag = "1")]
    pub skipped_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(enumeration = "ChannelCaptureSkipReason", tag = "2")]
    pub reason: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompletionActionStatus {
    #[prost(message, optional, tag = "1")]
    pub state: ::core::option::Option<CompletionActionState>,
    #[prost(oneof = "completion_action_status::Result", tags = "2, 3, 4, 5, 6")]
    pub result: ::core::option::Option<completion_action_status::Result>,
}
/// Nested message and enum types in `CompletionActionStatus`.
pub mod completion_action_status {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Result {
        #[prost(message, tag = "2")]
        CreateEvent(super::CreateEventResult),
        #[prost(message, tag = "3")]
        CreateRun(super::CreateRunResult),
        #[prost(message, tag = "4")]
        ApplyWorkbookTemplates(super::ApplyWorkbookTemplatesResult),
        #[prost(message, tag = "5")]
        ApplyChecklists(super::ApplyChecklistsResult),
        #[prost(message, tag = "6")]
        UpdateRun(super::UpdateRunResult),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEventResult {
    #[prost(string, tag = "1")]
    pub event_rid: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateRunResult {
    #[prost(string, tag = "1")]
    pub run_rid: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplyWorkbookTemplatesResult {
    #[prost(string, repeated, tag = "1")]
    pub workbook_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplyChecklistsResult {
    #[prost(string, repeated, tag = "1")]
    pub data_review_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateRunResult {
    #[prost(string, repeated, tag = "1")]
    pub run_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompletionActionState {
    #[prost(oneof = "completion_action_state::State", tags = "1, 2, 3, 4")]
    pub state: ::core::option::Option<completion_action_state::State>,
}
/// Nested message and enum types in `CompletionActionState`.
pub mod completion_action_state {
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct NotRun {}
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct Succeeded {}
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct InProgress {}
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum State {
        #[prost(message, tag = "1")]
        NotRun(NotRun),
        #[prost(message, tag = "2")]
        Succeeded(Succeeded),
        #[prost(string, tag = "3")]
        Error(::prost::alloc::string::String),
        #[prost(message, tag = "4")]
        InProgress(InProgress),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StepContentValue {
    #[prost(oneof = "step_content_value::Value", tags = "1, 2, 3, 4")]
    pub value: ::core::option::Option<step_content_value::Value>,
}
/// Nested message and enum types in `StepContentValue`.
pub mod step_content_value {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Value {
        #[prost(message, tag = "1")]
        Form(super::FormStepValue),
        #[prost(message, tag = "2")]
        StartIngest(super::StartIngestStepValue),
        #[prost(message, tag = "3")]
        SelectOrCreateAsset(super::SelectOrCreateAssetStepValue),
        #[prost(message, tag = "4")]
        Wait(super::WaitStepValue),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WaitStepValue {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FormStepValue {
    #[prost(message, repeated, tag = "1")]
    pub fields: ::prost::alloc::vec::Vec<FormFieldValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartIngestStepValue {
    #[prost(string, optional, tag = "1")]
    pub ingest_job_rid: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelectOrCreateAssetStepValue {
    #[prost(message, optional, tag = "1")]
    pub asset_reference: ::core::option::Option<super::super::v1::AssetReference>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FormFieldValue {
    #[prost(oneof = "form_field_value::Field", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
    pub field: ::core::option::Option<form_field_value::Field>,
}
/// Nested message and enum types in `FormFieldValue`.
pub mod form_field_value {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Field {
        #[prost(message, tag = "1")]
        Asset(super::AssetFieldValue),
        #[prost(message, tag = "2")]
        Checkbox(super::CheckboxFieldValue),
        #[prost(message, tag = "3")]
        Text(super::TextFieldValue),
        #[prost(message, tag = "4")]
        Int(super::IntFieldValue),
        #[prost(message, tag = "5")]
        Double(super::DoubleFieldValue),
        #[prost(message, tag = "6")]
        SingleEnum(super::SingleEnumFieldValue),
        #[prost(message, tag = "7")]
        MultiEnum(super::MultiEnumFieldValue),
        #[prost(message, tag = "8")]
        FileUpload(super::FileUploadFieldValue),
        #[prost(message, tag = "9")]
        MultiFileUpload(super::MultiFileUploadFieldValue),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AssetFieldValue {
    #[prost(oneof = "asset_field_value::Asset", tags = "1")]
    pub asset: ::core::option::Option<asset_field_value::Asset>,
}
/// Nested message and enum types in `AssetFieldValue`.
pub mod asset_field_value {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Asset {
        #[prost(message, tag = "1")]
        AssetReference(super::super::super::v1::AssetReference),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct CheckboxFieldValue {
    #[prost(bool, tag = "1")]
    pub value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextFieldValue {
    #[prost(string, optional, tag = "1")]
    pub value: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct IntFieldValue {
    #[prost(int64, optional, tag = "1")]
    pub value: ::core::option::Option<i64>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DoubleFieldValue {
    #[prost(double, optional, tag = "1")]
    pub value: ::core::option::Option<f64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SingleEnumFieldValue {
    #[prost(string, optional, tag = "1")]
    pub value: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiEnumFieldValue {
    #[prost(string, repeated, tag = "1")]
    pub value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileUploadFieldValue {
    #[prost(oneof = "file_upload_field_value::UploadType", tags = "1")]
    pub upload_type: ::core::option::Option<file_upload_field_value::UploadType>,
}
/// Nested message and enum types in `FileUploadFieldValue`.
pub mod file_upload_field_value {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum UploadType {
        #[prost(message, tag = "1")]
        S3Upload(super::S3UploadFileValue),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct S3UploadFileValue {
    #[prost(string, tag = "1")]
    pub s3_path: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub file_name: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "3")]
    pub file_type: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiFileUploadFieldValue {
    #[prost(message, repeated, tag = "1")]
    pub uploads: ::prost::alloc::vec::Vec<FileUploadFieldValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecution {
    #[prost(string, tag = "1")]
    pub rid: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub metadata: ::core::option::Option<ProcedureExecutionMetadata>,
    #[prost(message, optional, tag = "3")]
    pub state: ::core::option::Option<ProcedureExecutionState>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionMetadata {
    #[prost(string, tag = "1")]
    pub rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub procedure_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub procedure_commit_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "5")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "6")]
    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(map = "string, string", tag = "7")]
    pub properties: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(string, tag = "8")]
    pub created_by: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "9")]
    pub created_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, tag = "10")]
    pub updated_by: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "11")]
    pub updated_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "12")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "13")]
    pub started_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "14")]
    pub finished_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "15")]
    pub finished_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "16")]
    pub aborted_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "17")]
    pub aborted_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "18")]
    pub failed_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(string, optional, tag = "19")]
    pub failed_by: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "20")]
    pub failed_reason: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "21")]
    pub asset_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(bool, tag = "22")]
    pub is_archived: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionState {
    #[prost(map = "string, message", tag = "1")]
    pub global_fields: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        FieldOutput,
    >,
    #[prost(map = "string, message", tag = "2")]
    pub nodes: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ProcedureExecutionNode,
    >,
    #[prost(map = "string, message", tag = "3")]
    pub section_edges: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        super::super::v1::NodeList,
    >,
    #[prost(map = "string, message", tag = "4")]
    pub step_edges: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        super::super::v1::NodeList,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Strings {
    #[prost(string, repeated, tag = "1")]
    pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldOutput {
    #[prost(oneof = "field_output::Output", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
    pub output: ::core::option::Option<field_output::Output>,
}
/// Nested message and enum types in `FieldOutput`.
pub mod field_output {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Output {
        #[prost(string, tag = "1")]
        AssetRid(::prost::alloc::string::String),
        #[prost(string, tag = "2")]
        StringValue(::prost::alloc::string::String),
        #[prost(double, tag = "3")]
        DoubleValue(f64),
        #[prost(bool, tag = "4")]
        BooleanValue(bool),
        #[prost(int64, tag = "5")]
        IntValue(i64),
        #[prost(message, tag = "6")]
        StringsValue(super::Strings),
        #[prost(string, tag = "7")]
        IngestJobRid(::prost::alloc::string::String),
        #[prost(string, tag = "8")]
        RunRid(::prost::alloc::string::String),
        #[prost(message, tag = "9")]
        FileUploadValue(super::FileUploadFieldValue),
        #[prost(message, tag = "10")]
        MultiFileUploadValue(super::MultiFileUploadFieldValue),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateProcedureExecutionRequest {
    #[prost(string, tag = "1")]
    pub procedure_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub procedure_commit_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "4")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag = "5")]
    pub start_immediately: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateProcedureExecutionResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetProcedureExecutionRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(bool, tag = "2")]
    pub include_display_graph: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetProcedureExecutionResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
    #[prost(message, optional, tag = "2")]
    pub display_graph: ::core::option::Option<super::super::v1::ProcedureDisplayGraph>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateProcedureExecutionMetadataRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "2")]
    pub title: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub commit_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "5")]
    pub labels: ::core::option::Option<super::super::super::types::LabelUpdateWrapper>,
    #[prost(message, optional, tag = "6")]
    pub properties: ::core::option::Option<
        super::super::super::types::PropertyUpdateWrapper,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateProcedureExecutionMetadataResponse {
    #[prost(message, optional, tag = "1")]
    pub metadata: ::core::option::Option<ProcedureExecutionMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateProcedureExecutionRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "2")]
    pub title: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "3")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "4")]
    pub commit_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "5")]
    pub labels: ::core::option::Option<super::super::super::types::LabelUpdateWrapper>,
    #[prost(message, optional, tag = "6")]
    pub properties: ::core::option::Option<
        super::super::super::types::PropertyUpdateWrapper,
    >,
    #[prost(message, optional, tag = "7")]
    pub state: ::core::option::Option<ProcedureExecutionState>,
    #[prost(bool, optional, tag = "8")]
    pub is_aborted: ::core::option::Option<bool>,
    #[prost(message, optional, tag = "9")]
    pub started_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
    #[prost(message, optional, tag = "10")]
    pub finished_at: ::core::option::Option<
        super::super::super::super::google::protobuf::Timestamp,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateProcedureExecutionResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub value: ::core::option::Option<StepContentValue>,
    #[prost(message, optional, tag = "4")]
    pub auto_proceed_config: ::core::option::Option<super::super::v1::AutoProceedConfig>,
    #[prost(message, optional, tag = "5")]
    pub target_state: ::core::option::Option<TargetStepStateRequest>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepSuccessConditionStatusRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub success_condition_status: ::core::option::Option<SuccessConditionStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepSuccessConditionStatusResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepChannelCaptureStatusRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub channel_capture_status: ::core::option::Option<ChannelCaptureStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepChannelCaptureStatusResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepCompletionActionStatusRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "3")]
    pub completion_action_statuses: ::prost::alloc::vec::Vec<CompletionActionStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStepCompletionActionStatusResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RepeatStepRequest {
    #[prost(string, tag = "1")]
    pub procedure_execution_rid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub step_id: ::prost::alloc::string::String,
    #[prost(enumeration = "RepeatStepBehavior", tag = "6")]
    pub behavior: i32,
    #[prost(message, optional, tag = "3")]
    pub value: ::core::option::Option<StepContentValue>,
    #[prost(message, optional, tag = "4")]
    pub auto_proceed_config: ::core::option::Option<super::super::v1::AutoProceedConfig>,
    #[prost(message, optional, tag = "5")]
    pub target_state: ::core::option::Option<TargetStepStateRequest>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RepeatStepResponse {
    #[prost(message, optional, tag = "1")]
    pub procedure_execution: ::core::option::Option<ProcedureExecution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionSearchQuery {
    #[prost(
        oneof = "procedure_execution_search_query::Query",
        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"
    )]
    pub query: ::core::option::Option<procedure_execution_search_query::Query>,
}
/// Nested message and enum types in `ProcedureExecutionSearchQuery`.
pub mod procedure_execution_search_query {
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct ProcedureExecutionSearchAndQuery {
        #[prost(message, repeated, tag = "1")]
        pub queries: ::prost::alloc::vec::Vec<super::ProcedureExecutionSearchQuery>,
    }
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct ProcedureExecutionSearchOrQuery {
        #[prost(message, repeated, tag = "1")]
        pub queries: ::prost::alloc::vec::Vec<super::ProcedureExecutionSearchQuery>,
    }
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct AssetsFilter {
        #[prost(string, repeated, tag = "1")]
        pub asset_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
        #[prost(enumeration = "assets_filter::Operator", tag = "2")]
        pub operator: i32,
    }
    /// Nested message and enum types in `AssetsFilter`.
    pub mod assets_filter {
        #[derive(
            Clone,
            Copy,
            Debug,
            PartialEq,
            Eq,
            Hash,
            PartialOrd,
            Ord,
            ::prost::Enumeration
        )]
        #[repr(i32)]
        pub enum Operator {
            Unspecified = 0,
            Or = 1,
            And = 2,
        }
        impl Operator {
            /// String value of the enum field names used in the ProtoBuf definition.
            ///
            /// The values are not transformed in any way and thus are considered stable
            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
            pub fn as_str_name(&self) -> &'static str {
                match self {
                    Self::Unspecified => "OPERATOR_UNSPECIFIED",
                    Self::Or => "OPERATOR_OR",
                    Self::And => "OPERATOR_AND",
                }
            }
            /// Creates an enum from field names used in the ProtoBuf definition.
            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
                match value {
                    "OPERATOR_UNSPECIFIED" => Some(Self::Unspecified),
                    "OPERATOR_OR" => Some(Self::Or),
                    "OPERATOR_AND" => Some(Self::And),
                    _ => None,
                }
            }
        }
    }
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Query {
        #[prost(string, tag = "1")]
        SearchText(::prost::alloc::string::String),
        #[prost(string, tag = "2")]
        Label(::prost::alloc::string::String),
        #[prost(message, tag = "3")]
        Property(super::super::super::super::types::Property),
        #[prost(message, tag = "4")]
        And(ProcedureExecutionSearchAndQuery),
        #[prost(message, tag = "5")]
        Or(ProcedureExecutionSearchOrQuery),
        #[prost(string, tag = "6")]
        Workspace(::prost::alloc::string::String),
        #[prost(string, tag = "7")]
        ProcedureRid(::prost::alloc::string::String),
        #[prost(string, tag = "8")]
        CommitId(::prost::alloc::string::String),
        #[prost(string, tag = "9")]
        CreatedBy(::prost::alloc::string::String),
        #[prost(enumeration = "super::ProcedureExecutionProgressStatus", tag = "10")]
        ProgressStatus(i32),
        #[prost(message, tag = "11")]
        AssetsFilter(AssetsFilter),
        #[prost(bool, tag = "12")]
        IsArchived(bool),
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ProcedureExecutionSortOptions {
    #[prost(bool, optional, tag = "1")]
    pub is_descending: ::core::option::Option<bool>,
    #[prost(enumeration = "SearchProcedureExecutionsSortField", tag = "2")]
    pub sort_field: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchProcedureExecutionsRequest {
    #[prost(message, optional, tag = "1")]
    pub query: ::core::option::Option<ProcedureExecutionSearchQuery>,
    #[prost(message, optional, tag = "2")]
    pub sort_options: ::core::option::Option<ProcedureExecutionSortOptions>,
    #[prost(int32, optional, tag = "3")]
    pub page_size: ::core::option::Option<i32>,
    #[prost(string, optional, tag = "4")]
    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchProcedureExecutionsResponse {
    #[prost(message, repeated, tag = "1")]
    pub procedure_executions: ::prost::alloc::vec::Vec<ProcedureExecutionMetadata>,
    #[prost(string, optional, tag = "2")]
    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchGetProcedureExecutionMetadataRequest {
    #[prost(string, repeated, tag = "1")]
    pub procedure_execution_rids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchGetProcedureExecutionMetadataResponse {
    #[prost(message, repeated, tag = "1")]
    pub procedure_executions: ::prost::alloc::vec::Vec<ProcedureExecutionMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchArchiveProcedureExecutionsRequest {
    #[prost(string, repeated, tag = "1")]
    pub procedure_execution_rids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchArchiveProcedureExecutionsResponse {
    #[prost(string, repeated, tag = "1")]
    pub procedure_execution_rids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchUnarchiveProcedureExecutionsRequest {
    #[prost(string, repeated, tag = "1")]
    pub procedure_execution_rids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchUnarchiveProcedureExecutionsResponse {
    #[prost(string, repeated, tag = "1")]
    pub procedure_execution_rids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum WebhookFailureReason {
    Unspecified = 0,
    ClientError = 1,
    ServerErrorMaxRetriesExceeded = 2,
    TimeoutMaxRetriesExceeded = 3,
    OverallTimeoutExceeded = 4,
    NetworkErrorMaxRetriesExceeded = 5,
    PayloadError = 6,
    RedirectLoop = 7,
    IntegrationConfigError = 8,
}
impl WebhookFailureReason {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "WEBHOOK_FAILURE_REASON_UNSPECIFIED",
            Self::ClientError => "WEBHOOK_FAILURE_REASON_CLIENT_ERROR",
            Self::ServerErrorMaxRetriesExceeded => {
                "WEBHOOK_FAILURE_REASON_SERVER_ERROR_MAX_RETRIES_EXCEEDED"
            }
            Self::TimeoutMaxRetriesExceeded => {
                "WEBHOOK_FAILURE_REASON_TIMEOUT_MAX_RETRIES_EXCEEDED"
            }
            Self::OverallTimeoutExceeded => {
                "WEBHOOK_FAILURE_REASON_OVERALL_TIMEOUT_EXCEEDED"
            }
            Self::NetworkErrorMaxRetriesExceeded => {
                "WEBHOOK_FAILURE_REASON_NETWORK_ERROR_MAX_RETRIES_EXCEEDED"
            }
            Self::PayloadError => "WEBHOOK_FAILURE_REASON_PAYLOAD_ERROR",
            Self::RedirectLoop => "WEBHOOK_FAILURE_REASON_REDIRECT_LOOP",
            Self::IntegrationConfigError => {
                "WEBHOOK_FAILURE_REASON_INTEGRATION_CONFIG_ERROR"
            }
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "WEBHOOK_FAILURE_REASON_UNSPECIFIED" => Some(Self::Unspecified),
            "WEBHOOK_FAILURE_REASON_CLIENT_ERROR" => Some(Self::ClientError),
            "WEBHOOK_FAILURE_REASON_SERVER_ERROR_MAX_RETRIES_EXCEEDED" => {
                Some(Self::ServerErrorMaxRetriesExceeded)
            }
            "WEBHOOK_FAILURE_REASON_TIMEOUT_MAX_RETRIES_EXCEEDED" => {
                Some(Self::TimeoutMaxRetriesExceeded)
            }
            "WEBHOOK_FAILURE_REASON_OVERALL_TIMEOUT_EXCEEDED" => {
                Some(Self::OverallTimeoutExceeded)
            }
            "WEBHOOK_FAILURE_REASON_NETWORK_ERROR_MAX_RETRIES_EXCEEDED" => {
                Some(Self::NetworkErrorMaxRetriesExceeded)
            }
            "WEBHOOK_FAILURE_REASON_PAYLOAD_ERROR" => Some(Self::PayloadError),
            "WEBHOOK_FAILURE_REASON_REDIRECT_LOOP" => Some(Self::RedirectLoop),
            "WEBHOOK_FAILURE_REASON_INTEGRATION_CONFIG_ERROR" => {
                Some(Self::IntegrationConfigError)
            }
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ChannelCaptureFailureReason {
    Unspecified = 0,
    DataSourceNotFound = 1,
    ChannelNotFound = 2,
    UnsupportedChannelType = 3,
    TimeoutNoData = 4,
    InternalError = 5,
}
impl ChannelCaptureFailureReason {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "CHANNEL_CAPTURE_FAILURE_REASON_UNSPECIFIED",
            Self::DataSourceNotFound => {
                "CHANNEL_CAPTURE_FAILURE_REASON_DATA_SOURCE_NOT_FOUND"
            }
            Self::ChannelNotFound => "CHANNEL_CAPTURE_FAILURE_REASON_CHANNEL_NOT_FOUND",
            Self::UnsupportedChannelType => {
                "CHANNEL_CAPTURE_FAILURE_REASON_UNSUPPORTED_CHANNEL_TYPE"
            }
            Self::TimeoutNoData => "CHANNEL_CAPTURE_FAILURE_REASON_TIMEOUT_NO_DATA",
            Self::InternalError => "CHANNEL_CAPTURE_FAILURE_REASON_INTERNAL_ERROR",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CHANNEL_CAPTURE_FAILURE_REASON_UNSPECIFIED" => Some(Self::Unspecified),
            "CHANNEL_CAPTURE_FAILURE_REASON_DATA_SOURCE_NOT_FOUND" => {
                Some(Self::DataSourceNotFound)
            }
            "CHANNEL_CAPTURE_FAILURE_REASON_CHANNEL_NOT_FOUND" => {
                Some(Self::ChannelNotFound)
            }
            "CHANNEL_CAPTURE_FAILURE_REASON_UNSUPPORTED_CHANNEL_TYPE" => {
                Some(Self::UnsupportedChannelType)
            }
            "CHANNEL_CAPTURE_FAILURE_REASON_TIMEOUT_NO_DATA" => Some(Self::TimeoutNoData),
            "CHANNEL_CAPTURE_FAILURE_REASON_INTERNAL_ERROR" => Some(Self::InternalError),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ChannelCaptureSkipReason {
    Unspecified = 0,
    RunScopedUnsupported = 1,
}
impl ChannelCaptureSkipReason {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "CHANNEL_CAPTURE_SKIP_REASON_UNSPECIFIED",
            Self::RunScopedUnsupported => {
                "CHANNEL_CAPTURE_SKIP_REASON_RUN_SCOPED_UNSUPPORTED"
            }
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CHANNEL_CAPTURE_SKIP_REASON_UNSPECIFIED" => Some(Self::Unspecified),
            "CHANNEL_CAPTURE_SKIP_REASON_RUN_SCOPED_UNSUPPORTED" => {
                Some(Self::RunScopedUnsupported)
            }
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RepeatStepBehavior {
    Unspecified = 0,
    Isolated = 1,
}
impl RepeatStepBehavior {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "REPEAT_STEP_BEHAVIOR_UNSPECIFIED",
            Self::Isolated => "REPEAT_STEP_BEHAVIOR_ISOLATED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "REPEAT_STEP_BEHAVIOR_UNSPECIFIED" => Some(Self::Unspecified),
            "REPEAT_STEP_BEHAVIOR_ISOLATED" => Some(Self::Isolated),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SearchProcedureExecutionsSortField {
    Unspecified = 0,
    CreatedAt = 1,
    StartedAt = 2,
    FinishedAt = 3,
    UpdatedAt = 4,
}
impl SearchProcedureExecutionsSortField {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_UNSPECIFIED",
            Self::CreatedAt => "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_CREATED_AT",
            Self::StartedAt => "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_STARTED_AT",
            Self::FinishedAt => "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_FINISHED_AT",
            Self::UpdatedAt => "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_UPDATED_AT",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_UNSPECIFIED" => {
                Some(Self::Unspecified)
            }
            "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
            "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_STARTED_AT" => Some(Self::StartedAt),
            "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_FINISHED_AT" => {
                Some(Self::FinishedAt)
            }
            "SEARCH_PROCEDURE_EXECUTIONS_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ProcedureExecutionProgressStatus {
    Unspecified = 0,
    NotStarted = 1,
    InProgress = 2,
    Finished = 3,
    Aborted = 4,
}
impl ProcedureExecutionProgressStatus {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "PROCEDURE_EXECUTION_PROGRESS_STATUS_UNSPECIFIED",
            Self::NotStarted => "PROCEDURE_EXECUTION_PROGRESS_STATUS_NOT_STARTED",
            Self::InProgress => "PROCEDURE_EXECUTION_PROGRESS_STATUS_IN_PROGRESS",
            Self::Finished => "PROCEDURE_EXECUTION_PROGRESS_STATUS_FINISHED",
            Self::Aborted => "PROCEDURE_EXECUTION_PROGRESS_STATUS_ABORTED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PROCEDURE_EXECUTION_PROGRESS_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
            "PROCEDURE_EXECUTION_PROGRESS_STATUS_NOT_STARTED" => Some(Self::NotStarted),
            "PROCEDURE_EXECUTION_PROGRESS_STATUS_IN_PROGRESS" => Some(Self::InProgress),
            "PROCEDURE_EXECUTION_PROGRESS_STATUS_FINISHED" => Some(Self::Finished),
            "PROCEDURE_EXECUTION_PROGRESS_STATUS_ABORTED" => Some(Self::Aborted),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ProcedureExecutionsServiceError {
    Unspecified = 0,
    NotFound = 1,
    ProcNotFound = 2,
    NodeNotFound = 3,
    InvalidNode = 4,
    InvalidGraph = 5,
    InvalidStepTransition = 6,
    InvalidSearchToken = 7,
    InvalidStepUpdate = 8,
}
impl ProcedureExecutionsServiceError {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_UNSPECIFIED",
            Self::NotFound => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_NOT_FOUND",
            Self::ProcNotFound => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_PROC_NOT_FOUND",
            Self::NodeNotFound => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_NODE_NOT_FOUND",
            Self::InvalidNode => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_NODE",
            Self::InvalidGraph => "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_GRAPH",
            Self::InvalidStepTransition => {
                "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_STEP_TRANSITION"
            }
            Self::InvalidSearchToken => {
                "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_SEARCH_TOKEN"
            }
            Self::InvalidStepUpdate => {
                "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_STEP_UPDATE"
            }
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_NOT_FOUND" => Some(Self::NotFound),
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_PROC_NOT_FOUND" => {
                Some(Self::ProcNotFound)
            }
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_NODE_NOT_FOUND" => {
                Some(Self::NodeNotFound)
            }
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_NODE" => Some(Self::InvalidNode),
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_GRAPH" => {
                Some(Self::InvalidGraph)
            }
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_STEP_TRANSITION" => {
                Some(Self::InvalidStepTransition)
            }
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_SEARCH_TOKEN" => {
                Some(Self::InvalidSearchToken)
            }
            "PROCEDURE_EXECUTIONS_SERVICE_ERROR_INVALID_STEP_UPDATE" => {
                Some(Self::InvalidStepUpdate)
            }
            _ => None,
        }
    }
}
/// Generated client implementations.
pub mod procedure_executions_service_client {
    #![allow(
        unused_variables,
        dead_code,
        missing_docs,
        clippy::wildcard_imports,
        clippy::let_unit_value,
    )]
    use tonic::codegen::*;
    use tonic::codegen::http::Uri;
    #[derive(Debug, Clone)]
    pub struct ProcedureExecutionsServiceClient<T> {
        inner: tonic::client::Grpc<T>,
    }
    impl ProcedureExecutionsServiceClient<tonic::transport::Channel> {
        /// Attempt to create a new client by connecting to a given endpoint.
        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
        where
            D: TryInto<tonic::transport::Endpoint>,
            D::Error: Into<StdError>,
        {
            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
            Ok(Self::new(conn))
        }
    }
    impl<T> ProcedureExecutionsServiceClient<T>
    where
        T: tonic::client::GrpcService<tonic::body::Body>,
        T::Error: Into<StdError>,
        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
    {
        pub fn new(inner: T) -> Self {
            let inner = tonic::client::Grpc::new(inner);
            Self { inner }
        }
        pub fn with_origin(inner: T, origin: Uri) -> Self {
            let inner = tonic::client::Grpc::with_origin(inner, origin);
            Self { inner }
        }
        pub fn with_interceptor<F>(
            inner: T,
            interceptor: F,
        ) -> ProcedureExecutionsServiceClient<InterceptedService<T, F>>
        where
            F: tonic::service::Interceptor,
            T::ResponseBody: Default,
            T: tonic::codegen::Service<
                http::Request<tonic::body::Body>,
                Response = http::Response<
                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
                >,
            >,
            <T as tonic::codegen::Service<
                http::Request<tonic::body::Body>,
            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
        {
            ProcedureExecutionsServiceClient::new(
                InterceptedService::new(inner, interceptor),
            )
        }
        /// Compress requests with the given encoding.
        ///
        /// This requires the server to support it otherwise it might respond with an
        /// error.
        #[must_use]
        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
            self.inner = self.inner.send_compressed(encoding);
            self
        }
        /// Enable decompressing responses.
        #[must_use]
        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
            self.inner = self.inner.accept_compressed(encoding);
            self
        }
        /// Limits the maximum size of a decoded message.
        ///
        /// Default: `4MB`
        #[must_use]
        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
            self.inner = self.inner.max_decoding_message_size(limit);
            self
        }
        /// Limits the maximum size of an encoded message.
        ///
        /// Default: `usize::MAX`
        #[must_use]
        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
            self.inner = self.inner.max_encoding_message_size(limit);
            self
        }
        pub async fn create_procedure_execution(
            &mut self,
            request: impl tonic::IntoRequest<super::CreateProcedureExecutionRequest>,
        ) -> std::result::Result<
            tonic::Response<super::CreateProcedureExecutionResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/CreateProcedureExecution",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "CreateProcedureExecution",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn get_procedure_execution(
            &mut self,
            request: impl tonic::IntoRequest<super::GetProcedureExecutionRequest>,
        ) -> std::result::Result<
            tonic::Response<super::GetProcedureExecutionResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/GetProcedureExecution",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "GetProcedureExecution",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn batch_archive_procedure_executions(
            &mut self,
            request: impl tonic::IntoRequest<
                super::BatchArchiveProcedureExecutionsRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::BatchArchiveProcedureExecutionsResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/BatchArchiveProcedureExecutions",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "BatchArchiveProcedureExecutions",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn batch_unarchive_procedure_executions(
            &mut self,
            request: impl tonic::IntoRequest<
                super::BatchUnarchiveProcedureExecutionsRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::BatchUnarchiveProcedureExecutionsResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/BatchUnarchiveProcedureExecutions",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "BatchUnarchiveProcedureExecutions",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_procedure_execution_metadata(
            &mut self,
            request: impl tonic::IntoRequest<
                super::UpdateProcedureExecutionMetadataRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::UpdateProcedureExecutionMetadataResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateProcedureExecutionMetadata",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateProcedureExecutionMetadata",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_procedure_execution(
            &mut self,
            request: impl tonic::IntoRequest<super::UpdateProcedureExecutionRequest>,
        ) -> std::result::Result<
            tonic::Response<super::UpdateProcedureExecutionResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateProcedureExecution",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateProcedureExecution",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_step(
            &mut self,
            request: impl tonic::IntoRequest<super::UpdateStepRequest>,
        ) -> std::result::Result<
            tonic::Response<super::UpdateStepResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateStep",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateStep",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_step_success_condition_status(
            &mut self,
            request: impl tonic::IntoRequest<
                super::UpdateStepSuccessConditionStatusRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::UpdateStepSuccessConditionStatusResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateStepSuccessConditionStatus",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateStepSuccessConditionStatus",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_step_completion_action_status(
            &mut self,
            request: impl tonic::IntoRequest<
                super::UpdateStepCompletionActionStatusRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::UpdateStepCompletionActionStatusResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateStepCompletionActionStatus",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateStepCompletionActionStatus",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn update_step_channel_capture_status(
            &mut self,
            request: impl tonic::IntoRequest<
                super::UpdateStepChannelCaptureStatusRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::UpdateStepChannelCaptureStatusResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/UpdateStepChannelCaptureStatus",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "UpdateStepChannelCaptureStatus",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn repeat_step(
            &mut self,
            request: impl tonic::IntoRequest<super::RepeatStepRequest>,
        ) -> std::result::Result<
            tonic::Response<super::RepeatStepResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/RepeatStep",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "RepeatStep",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn search_procedure_executions(
            &mut self,
            request: impl tonic::IntoRequest<super::SearchProcedureExecutionsRequest>,
        ) -> std::result::Result<
            tonic::Response<super::SearchProcedureExecutionsResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/SearchProcedureExecutions",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "SearchProcedureExecutions",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
        pub async fn batch_get_procedure_execution_metadata(
            &mut self,
            request: impl tonic::IntoRequest<
                super::BatchGetProcedureExecutionMetadataRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<super::BatchGetProcedureExecutionMetadataResponse>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/nominal.procedures.executions.v1.ProcedureExecutionsService/BatchGetProcedureExecutionMetadata",
            );
            let mut req = request.into_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "nominal.procedures.executions.v1.ProcedureExecutionsService",
                        "BatchGetProcedureExecutionMetadata",
                    ),
                );
            self.inner.unary(req, path, codec).await
        }
    }
}
