// This file is @generated by prost-build.
/// Log message for Rollout events.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RolloutLog {
    /// Unique identifier of the root rollout.
    #[prost(string, tag = "1")]
    pub root_rollout_id: ::prost::alloc::string::String,
    /// Specified rollout type associated with this rollout.
    #[prost(string, tag = "2")]
    pub rollout_kind: ::prost::alloc::string::String,
    /// Strategy used for executing this rollout.
    #[prost(string, tag = "3")]
    pub rollout_orchestration_strategy: ::prost::alloc::string::String,
    /// The previous state of the rollout, e.g. RUNNING.
    #[prost(enumeration = "RolloutState", tag = "4")]
    pub prev_state: i32,
    /// The current running state of the rollout, e.g. PAUSED.
    #[prost(enumeration = "RolloutState", tag = "5")]
    pub current_state: i32,
    /// Brief description for the rollout event, e.g. “Waiting to start rollout.”
    #[prost(string, tag = "6")]
    pub reason: ::prost::alloc::string::String,
    /// A human readable string that specifies relevant information about the
    /// rollout’s last transition,
    /// e.g. “Soaking for 2 hours.”
    #[prost(string, tag = "7")]
    pub message: ::prost::alloc::string::String,
    /// Associated status corresponding to the event this log describes,
    /// corresponds to the status of the actionable error message.
    #[prost(message, optional, tag = "8")]
    pub error: ::core::option::Option<super::super::super::super::super::rpc::Status>,
}
/// The state of the rollout.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RolloutState {
    /// Unspecified state.
    Unspecified = 0,
    /// Rollout is in progress.
    Running = 1,
    /// Rollout has been paused.
    Paused = 2,
    /// Rollout is being paused.
    Pausing = 3,
    /// Rollout is being resumed.
    Resuming = 4,
    /// Rollout has been cancelled.
    Cancelled = 5,
    /// Rollout has failed.
    Failed = 6,
    /// Rollout is waiting for some condition to be met before starting.
    Waiting = 7,
    /// Rollout completed successfully.
    Succeeded = 8,
    /// Rollout is being canceled.
    Cancelling = 9,
}
impl RolloutState {
    /// 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 => "ROLLOUT_STATE_UNSPECIFIED",
            Self::Running => "RUNNING",
            Self::Paused => "PAUSED",
            Self::Pausing => "PAUSING",
            Self::Resuming => "RESUMING",
            Self::Cancelled => "CANCELLED",
            Self::Failed => "FAILED",
            Self::Waiting => "WAITING",
            Self::Succeeded => "SUCCEEDED",
            Self::Cancelling => "CANCELLING",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ROLLOUT_STATE_UNSPECIFIED" => Some(Self::Unspecified),
            "RUNNING" => Some(Self::Running),
            "PAUSED" => Some(Self::Paused),
            "PAUSING" => Some(Self::Pausing),
            "RESUMING" => Some(Self::Resuming),
            "CANCELLED" => Some(Self::Cancelled),
            "FAILED" => Some(Self::Failed),
            "WAITING" => Some(Self::Waiting),
            "SUCCEEDED" => Some(Self::Succeeded),
            "CANCELLING" => Some(Self::Cancelling),
            _ => None,
        }
    }
}
/// Log message for Unit Operation events.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnitOperationLog {
    /// Unique identifier for the unit operation and the trace id for correlating
    /// with engine logs.
    #[prost(string, tag = "1")]
    pub unit_operation_id: ::prost::alloc::string::String,
    /// Human-readable message indicating details about the last transition.
    /// e.g. ‘Invalid resource state for Cloud Build: Cloud Build returned a
    /// failure status’
    #[prost(string, tag = "2")]
    pub message: ::prost::alloc::string::String,
    /// Short description for the unit operation's last transition or error.
    #[prost(string, tag = "3")]
    pub reason: ::prost::alloc::string::String,
    /// Error following actionable error message specified in
    /// <https://google.aip.dev/193>
    #[prost(message, optional, tag = "4")]
    pub error: ::core::option::Option<super::super::super::super::super::rpc::Status>,
    /// Output only. The unit state at the time of emitting the log. The last log
    /// entry for an operation should end in a terminal state.
    #[prost(enumeration = "super::super::v1beta1::unit::UnitState", tag = "5")]
    pub unit_state: i32,
    /// Output only. The previous unit state. It will be the same as unit_state if
    /// there is no state change.
    #[prost(enumeration = "super::super::v1beta1::unit::UnitState", tag = "6")]
    pub prev_unit_state: i32,
    /// Output only. The unit operation state at the time of emitting the log.
    #[prost(
        enumeration = "super::super::v1beta1::unit_operation::UnitOperationState",
        tag = "7"
    )]
    pub unit_operation_state: i32,
    /// The type of unit operation (e.g., "PROVISION", "UPGRADE").
    #[prost(string, tag = "8")]
    pub unit_operation_type: ::prost::alloc::string::String,
}
