#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ControlParams {
#[prost(int64, tag = "1")]
pub interval: i64,
#[prost(int64, tag = "2")]
pub attr: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPullMessagesReq {
#[prost(string, tag = "1")]
pub room_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub pos: ::core::option::Option<Position>,
#[prost(message, optional, tag = "3")]
pub control: ::core::option::Option<ControlParams>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPullMessagesResponse {
#[prost(message, repeated, tag = "1")]
pub messages: ::prost::alloc::vec::Vec<Message>,
#[prost(message, optional, tag = "2")]
pub next: ::core::option::Option<Position>,
#[prost(message, optional, tag = "3")]
pub control: ::core::option::Option<ControlParams>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Message {
#[prost(string, tag = "1")]
pub target_path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub message: ::core::option::Option<::prost_types::Any>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Position {
#[prost(int64, tag = "1")]
pub timestamp: i64,
#[prost(int64, tag = "2")]
pub room_idx: i64,
#[prost(int64, tag = "3")]
pub user_idx: i64,
}