// This file is @generated by prost-build.
/// (-- api-linter: core::0146::any=disabled
///      aip.dev/not-precedent: We want runtime extensibility for the body field --)
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Message {
    /// An ID for this specific message.
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    /// Identifies the specific instance of a protocol to which this message
    /// belongs.
    #[prost(string, tag = "2")]
    pub protocol_instance_id: ::prost::alloc::string::String,
    /// The opaque data carried by this message. The protocol type can be
    /// extracted from the package name of the message carried inside the Any.
    #[prost(message, optional, tag = "5")]
    pub body: ::core::option::Option<::prost_types::Any>,
    /// The event ID or command ID after which this message can be delivered. The
    /// effects of history up to and including this event ID should be visible to
    /// the code that handles this message. Omit to opt out of sequencing.
    #[prost(oneof = "message::SequencingId", tags = "3, 4")]
    pub sequencing_id: ::core::option::Option<message::SequencingId>,
}
/// Nested message and enum types in `Message`.
pub mod message {
    /// The event ID or command ID after which this message can be delivered. The
    /// effects of history up to and including this event ID should be visible to
    /// the code that handles this message. Omit to opt out of sequencing.
    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    pub enum SequencingId {
        #[prost(int64, tag = "3")]
        EventId(i64),
        #[prost(int64, tag = "4")]
        CommandIndex(i64),
    }
}
