#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MessagePublishedData {
#[prost(message, optional, tag = "1")]
pub message: ::core::option::Option<PubsubMessage>,
#[prost(string, tag = "2")]
pub subscription: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub delivery_attempt: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PubsubMessage {
#[prost(bytes = "vec", tag = "1")]
pub data: ::prost::alloc::vec::Vec<u8>,
#[prost(map = "string, string", tag = "2")]
pub attributes: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(string, tag = "3")]
pub message_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub publish_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(string, tag = "5")]
pub ordering_key: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MessagePublishedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MessagePublishedData>,
}