// This file is @generated by prost-build.
/// Specifies client's intent to wait for Update results.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WaitPolicy {
    /// Indicates the Update lifecycle stage that the Update must reach before
    /// API call is returned.
    /// NOTE: This field works together with API call timeout which is limited by
    /// server timeout (maximum wait time). If server timeout is expired before
    /// user specified timeout, API call returns even if specified stage is not reached.
    #[prost(
        enumeration = "super::super::enums::v1::UpdateWorkflowExecutionLifecycleStage",
        tag = "1"
    )]
    pub lifecycle_stage: i32,
}
/// The data needed by a client to refer to a previously invoked Workflow Update.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateRef {
    #[prost(message, optional, tag = "1")]
    pub workflow_execution: ::core::option::Option<
        super::super::common::v1::WorkflowExecution,
    >,
    #[prost(string, tag = "2")]
    pub update_id: ::prost::alloc::string::String,
}
/// The outcome of a Workflow Update: success or failure.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Outcome {
    #[prost(oneof = "outcome::Value", tags = "1, 2")]
    pub value: ::core::option::Option<outcome::Value>,
}
/// Nested message and enum types in `Outcome`.
pub mod outcome {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Value {
        #[prost(message, tag = "1")]
        Success(super::super::super::common::v1::Payloads),
        #[prost(message, tag = "2")]
        Failure(super::super::super::failure::v1::Failure),
    }
}
/// Metadata about a Workflow Update.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Meta {
    /// An ID with workflow-scoped uniqueness for this Update.
    #[prost(string, tag = "1")]
    pub update_id: ::prost::alloc::string::String,
    /// A string identifying the agent that requested this Update.
    #[prost(string, tag = "2")]
    pub identity: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Input {
    /// Headers that are passed with the Update from the requesting entity.
    /// These can include things like auth or tracing tokens.
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::common::v1::Header>,
    /// The name of the Update handler to invoke on the target Workflow.
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    /// The arguments to pass to the named Update handler.
    #[prost(message, optional, tag = "3")]
    pub args: ::core::option::Option<super::super::common::v1::Payloads>,
}
/// The client request that triggers a Workflow Update.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Request {
    #[prost(message, optional, tag = "1")]
    pub meta: ::core::option::Option<Meta>,
    #[prost(message, optional, tag = "2")]
    pub input: ::core::option::Option<Input>,
}
/// An Update protocol message indicating that a Workflow Update has been rejected.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Rejection {
    #[prost(string, tag = "1")]
    pub rejected_request_message_id: ::prost::alloc::string::String,
    #[prost(int64, tag = "2")]
    pub rejected_request_sequencing_event_id: i64,
    #[prost(message, optional, tag = "3")]
    pub rejected_request: ::core::option::Option<Request>,
    #[prost(message, optional, tag = "4")]
    pub failure: ::core::option::Option<super::super::failure::v1::Failure>,
}
/// An Update protocol message indicating that a Workflow Update has
/// been accepted (i.e. passed the worker-side validation phase).
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Acceptance {
    #[prost(string, tag = "1")]
    pub accepted_request_message_id: ::prost::alloc::string::String,
    #[prost(int64, tag = "2")]
    pub accepted_request_sequencing_event_id: i64,
    #[prost(message, optional, tag = "3")]
    pub accepted_request: ::core::option::Option<Request>,
}
/// An Update protocol message indicating that a Workflow Update has
/// completed with the contained outcome.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Response {
    #[prost(message, optional, tag = "1")]
    pub meta: ::core::option::Option<Meta>,
    #[prost(message, optional, tag = "2")]
    pub outcome: ::core::option::Option<Outcome>,
}
