#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Room {
#[prost(string, tag = "1")]
pub sid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(uint32, tag = "3")]
pub empty_timeout: u32,
#[prost(uint32, tag = "4")]
pub max_participants: u32,
#[prost(int64, tag = "5")]
pub creation_time: i64,
#[prost(string, tag = "6")]
pub turn_password: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "7")]
pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
#[prost(string, tag = "8")]
pub metadata: ::prost::alloc::string::String,
#[prost(uint32, tag = "9")]
pub num_participants: u32,
#[prost(uint32, tag = "11")]
pub num_publishers: u32,
#[prost(bool, tag = "10")]
pub active_recording: bool,
#[prost(message, optional, tag = "12")]
pub playout_delay: ::core::option::Option<PlayoutDelay>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Codec {
#[prost(string, tag = "1")]
pub mime: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub fmtp_line: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayoutDelay {
#[prost(bool, tag = "1")]
pub enabled: bool,
#[prost(uint32, tag = "2")]
pub min: u32,
#[prost(uint32, tag = "3")]
pub max: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantPermission {
#[prost(bool, tag = "1")]
pub can_subscribe: bool,
#[prost(bool, tag = "2")]
pub can_publish: bool,
#[prost(bool, tag = "3")]
pub can_publish_data: bool,
#[prost(enumeration = "TrackSource", repeated, tag = "9")]
pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
#[prost(bool, tag = "7")]
pub hidden: bool,
#[prost(bool, tag = "8")]
pub recorder: bool,
#[prost(bool, tag = "10")]
pub can_update_metadata: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantInfo {
#[prost(string, tag = "1")]
pub sid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(enumeration = "participant_info::State", tag = "3")]
pub state: i32,
#[prost(message, repeated, tag = "4")]
pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
#[prost(string, tag = "5")]
pub metadata: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub joined_at: i64,
#[prost(string, tag = "9")]
pub name: ::prost::alloc::string::String,
#[prost(uint32, tag = "10")]
pub version: u32,
#[prost(message, optional, tag = "11")]
pub permission: ::core::option::Option<ParticipantPermission>,
#[prost(string, tag = "12")]
pub region: ::prost::alloc::string::String,
#[prost(bool, tag = "13")]
pub is_publisher: bool,
}
pub mod participant_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum State {
Joining = 0,
Joined = 1,
Active = 2,
Disconnected = 3,
}
impl State {
pub fn as_str_name(&self) -> &'static str {
match self {
State::Joining => "JOINING",
State::Joined => "JOINED",
State::Active => "ACTIVE",
State::Disconnected => "DISCONNECTED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"JOINING" => Some(Self::Joining),
"JOINED" => Some(Self::Joined),
"ACTIVE" => Some(Self::Active),
"DISCONNECTED" => Some(Self::Disconnected),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Encryption {}
pub mod encryption {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
None = 0,
Gcm = 1,
Custom = 2,
}
impl Type {
pub fn as_str_name(&self) -> &'static str {
match self {
Type::None => "NONE",
Type::Gcm => "GCM",
Type::Custom => "CUSTOM",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NONE" => Some(Self::None),
"GCM" => Some(Self::Gcm),
"CUSTOM" => Some(Self::Custom),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulcastCodecInfo {
#[prost(string, tag = "1")]
pub mime_type: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub mid: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub cid: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "4")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackInfo {
#[prost(string, tag = "1")]
pub sid: ::prost::alloc::string::String,
#[prost(enumeration = "TrackType", tag = "2")]
pub r#type: i32,
#[prost(string, tag = "3")]
pub name: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub muted: bool,
#[prost(uint32, tag = "5")]
pub width: u32,
#[prost(uint32, tag = "6")]
pub height: u32,
#[prost(bool, tag = "7")]
pub simulcast: bool,
#[prost(bool, tag = "8")]
pub disable_dtx: bool,
#[prost(enumeration = "TrackSource", tag = "9")]
pub source: i32,
#[prost(message, repeated, tag = "10")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
#[prost(string, tag = "11")]
pub mime_type: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub mid: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "13")]
pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
#[prost(bool, tag = "14")]
pub stereo: bool,
#[prost(bool, tag = "15")]
pub disable_red: bool,
#[prost(enumeration = "encryption::Type", tag = "16")]
pub encryption: i32,
#[prost(string, tag = "17")]
pub stream: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoLayer {
#[prost(enumeration = "VideoQuality", tag = "1")]
pub quality: i32,
#[prost(uint32, tag = "2")]
pub width: u32,
#[prost(uint32, tag = "3")]
pub height: u32,
#[prost(uint32, tag = "4")]
pub bitrate: u32,
#[prost(uint32, tag = "5")]
pub ssrc: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPacket {
#[prost(enumeration = "data_packet::Kind", tag = "1")]
pub kind: i32,
#[prost(oneof = "data_packet::Value", tags = "2, 3")]
pub value: ::core::option::Option<data_packet::Value>,
}
pub mod data_packet {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Kind {
Reliable = 0,
Lossy = 1,
}
impl Kind {
pub fn as_str_name(&self) -> &'static str {
match self {
Kind::Reliable => "RELIABLE",
Kind::Lossy => "LOSSY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RELIABLE" => Some(Self::Reliable),
"LOSSY" => Some(Self::Lossy),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(message, tag = "2")]
User(super::UserPacket),
#[prost(message, tag = "3")]
Speaker(super::ActiveSpeakerUpdate),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActiveSpeakerUpdate {
#[prost(message, repeated, tag = "1")]
pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpeakerInfo {
#[prost(string, tag = "1")]
pub sid: ::prost::alloc::string::String,
#[prost(float, tag = "2")]
pub level: f32,
#[prost(bool, tag = "3")]
pub active: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserPacket {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "2")]
pub payload: ::prost::alloc::vec::Vec<u8>,
#[prost(string, repeated, tag = "3")]
pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub topic: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantTracks {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "2")]
pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServerInfo {
#[prost(enumeration = "server_info::Edition", tag = "1")]
pub edition: i32,
#[prost(string, tag = "2")]
pub version: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub protocol: i32,
#[prost(string, tag = "4")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub node_id: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub debug_info: ::prost::alloc::string::String,
}
pub mod server_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Edition {
Standard = 0,
Cloud = 1,
}
impl Edition {
pub fn as_str_name(&self) -> &'static str {
match self {
Edition::Standard => "Standard",
Edition::Cloud => "Cloud",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Standard" => Some(Self::Standard),
"Cloud" => Some(Self::Cloud),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientInfo {
#[prost(enumeration = "client_info::Sdk", tag = "1")]
pub sdk: i32,
#[prost(string, tag = "2")]
pub version: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub protocol: i32,
#[prost(string, tag = "4")]
pub os: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub os_version: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub device_model: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub browser: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub browser_version: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub address: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub network: ::prost::alloc::string::String,
}
pub mod client_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Sdk {
Unknown = 0,
Js = 1,
Swift = 2,
Android = 3,
Flutter = 4,
Go = 5,
Unity = 6,
ReactNative = 7,
Rust = 8,
}
impl Sdk {
pub fn as_str_name(&self) -> &'static str {
match self {
Sdk::Unknown => "UNKNOWN",
Sdk::Js => "JS",
Sdk::Swift => "SWIFT",
Sdk::Android => "ANDROID",
Sdk::Flutter => "FLUTTER",
Sdk::Go => "GO",
Sdk::Unity => "UNITY",
Sdk::ReactNative => "REACT_NATIVE",
Sdk::Rust => "RUST",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN" => Some(Self::Unknown),
"JS" => Some(Self::Js),
"SWIFT" => Some(Self::Swift),
"ANDROID" => Some(Self::Android),
"FLUTTER" => Some(Self::Flutter),
"GO" => Some(Self::Go),
"UNITY" => Some(Self::Unity),
"REACT_NATIVE" => Some(Self::ReactNative),
"RUST" => Some(Self::Rust),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientConfiguration {
#[prost(message, optional, tag = "1")]
pub video: ::core::option::Option<VideoConfiguration>,
#[prost(message, optional, tag = "2")]
pub screen: ::core::option::Option<VideoConfiguration>,
#[prost(enumeration = "ClientConfigSetting", tag = "3")]
pub resume_connection: i32,
#[prost(message, optional, tag = "4")]
pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
#[prost(enumeration = "ClientConfigSetting", tag = "5")]
pub force_relay: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoConfiguration {
#[prost(enumeration = "ClientConfigSetting", tag = "1")]
pub hardware_encoder: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DisabledCodecs {
#[prost(message, repeated, tag = "1")]
pub codecs: ::prost::alloc::vec::Vec<Codec>,
#[prost(message, repeated, tag = "2")]
pub publish: ::prost::alloc::vec::Vec<Codec>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RtpStats {
#[prost(message, optional, tag = "1")]
pub start_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "2")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(double, tag = "3")]
pub duration: f64,
#[prost(uint32, tag = "4")]
pub packets: u32,
#[prost(double, tag = "5")]
pub packet_rate: f64,
#[prost(uint64, tag = "6")]
pub bytes: u64,
#[prost(uint64, tag = "39")]
pub header_bytes: u64,
#[prost(double, tag = "7")]
pub bitrate: f64,
#[prost(uint32, tag = "8")]
pub packets_lost: u32,
#[prost(double, tag = "9")]
pub packet_loss_rate: f64,
#[prost(float, tag = "10")]
pub packet_loss_percentage: f32,
#[prost(uint32, tag = "11")]
pub packets_duplicate: u32,
#[prost(double, tag = "12")]
pub packet_duplicate_rate: f64,
#[prost(uint64, tag = "13")]
pub bytes_duplicate: u64,
#[prost(uint64, tag = "40")]
pub header_bytes_duplicate: u64,
#[prost(double, tag = "14")]
pub bitrate_duplicate: f64,
#[prost(uint32, tag = "15")]
pub packets_padding: u32,
#[prost(double, tag = "16")]
pub packet_padding_rate: f64,
#[prost(uint64, tag = "17")]
pub bytes_padding: u64,
#[prost(uint64, tag = "41")]
pub header_bytes_padding: u64,
#[prost(double, tag = "18")]
pub bitrate_padding: f64,
#[prost(uint32, tag = "19")]
pub packets_out_of_order: u32,
#[prost(uint32, tag = "20")]
pub frames: u32,
#[prost(double, tag = "21")]
pub frame_rate: f64,
#[prost(double, tag = "22")]
pub jitter_current: f64,
#[prost(double, tag = "23")]
pub jitter_max: f64,
#[prost(map = "int32, uint32", tag = "24")]
pub gap_histogram: ::std::collections::HashMap<i32, u32>,
#[prost(uint32, tag = "25")]
pub nacks: u32,
#[prost(uint32, tag = "37")]
pub nack_acks: u32,
#[prost(uint32, tag = "26")]
pub nack_misses: u32,
#[prost(uint32, tag = "38")]
pub nack_repeated: u32,
#[prost(uint32, tag = "27")]
pub plis: u32,
#[prost(message, optional, tag = "28")]
pub last_pli: ::core::option::Option<::prost_types::Timestamp>,
#[prost(uint32, tag = "29")]
pub firs: u32,
#[prost(message, optional, tag = "30")]
pub last_fir: ::core::option::Option<::prost_types::Timestamp>,
#[prost(uint32, tag = "31")]
pub rtt_current: u32,
#[prost(uint32, tag = "32")]
pub rtt_max: u32,
#[prost(uint32, tag = "33")]
pub key_frames: u32,
#[prost(message, optional, tag = "34")]
pub last_key_frame: ::core::option::Option<::prost_types::Timestamp>,
#[prost(uint32, tag = "35")]
pub layer_lock_plis: u32,
#[prost(message, optional, tag = "36")]
pub last_layer_lock_pli: ::core::option::Option<::prost_types::Timestamp>,
#[prost(double, tag = "42")]
pub sample_rate: f64,
#[prost(double, tag = "43")]
pub drift_ms: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimedVersion {
#[prost(int64, tag = "1")]
pub unix_micro: i64,
#[prost(int32, tag = "2")]
pub ticks: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AudioCodec {
DefaultAc = 0,
Opus = 1,
Aac = 2,
}
impl AudioCodec {
pub fn as_str_name(&self) -> &'static str {
match self {
AudioCodec::DefaultAc => "DEFAULT_AC",
AudioCodec::Opus => "OPUS",
AudioCodec::Aac => "AAC",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_AC" => Some(Self::DefaultAc),
"OPUS" => Some(Self::Opus),
"AAC" => Some(Self::Aac),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum VideoCodec {
DefaultVc = 0,
H264Baseline = 1,
H264Main = 2,
H264High = 3,
Vp8 = 4,
}
impl VideoCodec {
pub fn as_str_name(&self) -> &'static str {
match self {
VideoCodec::DefaultVc => "DEFAULT_VC",
VideoCodec::H264Baseline => "H264_BASELINE",
VideoCodec::H264Main => "H264_MAIN",
VideoCodec::H264High => "H264_HIGH",
VideoCodec::Vp8 => "VP8",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_VC" => Some(Self::DefaultVc),
"H264_BASELINE" => Some(Self::H264Baseline),
"H264_MAIN" => Some(Self::H264Main),
"H264_HIGH" => Some(Self::H264High),
"VP8" => Some(Self::Vp8),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrackType {
Audio = 0,
Video = 1,
Data = 2,
}
impl TrackType {
pub fn as_str_name(&self) -> &'static str {
match self {
TrackType::Audio => "AUDIO",
TrackType::Video => "VIDEO",
TrackType::Data => "DATA",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AUDIO" => Some(Self::Audio),
"VIDEO" => Some(Self::Video),
"DATA" => Some(Self::Data),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrackSource {
Unknown = 0,
Camera = 1,
Microphone = 2,
ScreenShare = 3,
ScreenShareAudio = 4,
}
impl TrackSource {
pub fn as_str_name(&self) -> &'static str {
match self {
TrackSource::Unknown => "UNKNOWN",
TrackSource::Camera => "CAMERA",
TrackSource::Microphone => "MICROPHONE",
TrackSource::ScreenShare => "SCREEN_SHARE",
TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN" => Some(Self::Unknown),
"CAMERA" => Some(Self::Camera),
"MICROPHONE" => Some(Self::Microphone),
"SCREEN_SHARE" => Some(Self::ScreenShare),
"SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum VideoQuality {
Low = 0,
Medium = 1,
High = 2,
Off = 3,
}
impl VideoQuality {
pub fn as_str_name(&self) -> &'static str {
match self {
VideoQuality::Low => "LOW",
VideoQuality::Medium => "MEDIUM",
VideoQuality::High => "HIGH",
VideoQuality::Off => "OFF",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LOW" => Some(Self::Low),
"MEDIUM" => Some(Self::Medium),
"HIGH" => Some(Self::High),
"OFF" => Some(Self::Off),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ConnectionQuality {
Poor = 0,
Good = 1,
Excellent = 2,
}
impl ConnectionQuality {
pub fn as_str_name(&self) -> &'static str {
match self {
ConnectionQuality::Poor => "POOR",
ConnectionQuality::Good => "GOOD",
ConnectionQuality::Excellent => "EXCELLENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"POOR" => Some(Self::Poor),
"GOOD" => Some(Self::Good),
"EXCELLENT" => Some(Self::Excellent),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ClientConfigSetting {
Unset = 0,
Disabled = 1,
Enabled = 2,
}
impl ClientConfigSetting {
pub fn as_str_name(&self) -> &'static str {
match self {
ClientConfigSetting::Unset => "UNSET",
ClientConfigSetting::Disabled => "DISABLED",
ClientConfigSetting::Enabled => "ENABLED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNSET" => Some(Self::Unset),
"DISABLED" => Some(Self::Disabled),
"ENABLED" => Some(Self::Enabled),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DisconnectReason {
UnknownReason = 0,
ClientInitiated = 1,
DuplicateIdentity = 2,
ServerShutdown = 3,
ParticipantRemoved = 4,
RoomDeleted = 5,
StateMismatch = 6,
JoinFailure = 7,
}
impl DisconnectReason {
pub fn as_str_name(&self) -> &'static str {
match self {
DisconnectReason::UnknownReason => "UNKNOWN_REASON",
DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
DisconnectReason::RoomDeleted => "ROOM_DELETED",
DisconnectReason::StateMismatch => "STATE_MISMATCH",
DisconnectReason::JoinFailure => "JOIN_FAILURE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_REASON" => Some(Self::UnknownReason),
"CLIENT_INITIATED" => Some(Self::ClientInitiated),
"DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
"SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
"PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
"ROOM_DELETED" => Some(Self::RoomDeleted),
"STATE_MISMATCH" => Some(Self::StateMismatch),
"JOIN_FAILURE" => Some(Self::JoinFailure),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ReconnectReason {
RrUnknown = 0,
RrSignalDisconnected = 1,
RrPublisherFailed = 2,
RrSubscriberFailed = 3,
RrSwitchCandidate = 4,
}
impl ReconnectReason {
pub fn as_str_name(&self) -> &'static str {
match self {
ReconnectReason::RrUnknown => "RR_UNKNOWN",
ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RR_UNKNOWN" => Some(Self::RrUnknown),
"RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
"RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
"RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
"RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SubscriptionError {
SeUnknown = 0,
SeCodecUnsupported = 1,
SeTrackNotfound = 2,
}
impl SubscriptionError {
pub fn as_str_name(&self) -> &'static str {
match self {
SubscriptionError::SeUnknown => "SE_UNKNOWN",
SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SE_UNKNOWN" => Some(Self::SeUnknown),
"SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
"SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomCompositeEgressRequest {
#[prost(string, tag = "1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub layout: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub audio_only: bool,
#[prost(bool, tag = "4")]
pub video_only: bool,
#[prost(string, tag = "5")]
pub custom_base_url: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "11")]
pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
#[prost(message, repeated, tag = "12")]
pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
#[prost(message, repeated, tag = "13")]
pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
#[prost(oneof = "room_composite_egress_request::Output", tags = "6, 7, 10")]
pub output: ::core::option::Option<room_composite_egress_request::Output>,
#[prost(oneof = "room_composite_egress_request::Options", tags = "8, 9")]
pub options: ::core::option::Option<room_composite_egress_request::Options>,
}
pub mod room_composite_egress_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "6")]
File(super::EncodedFileOutput),
#[prost(message, tag = "7")]
Stream(super::StreamOutput),
#[prost(message, tag = "10")]
Segments(super::SegmentedFileOutput),
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Options {
#[prost(enumeration = "super::EncodingOptionsPreset", tag = "8")]
Preset(i32),
#[prost(message, tag = "9")]
Advanced(super::EncodingOptions),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebEgressRequest {
#[prost(string, tag = "1")]
pub url: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub audio_only: bool,
#[prost(bool, tag = "3")]
pub video_only: bool,
#[prost(bool, tag = "12")]
pub await_start_signal: bool,
#[prost(message, repeated, tag = "9")]
pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
#[prost(message, repeated, tag = "10")]
pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
#[prost(message, repeated, tag = "11")]
pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
#[prost(oneof = "web_egress_request::Output", tags = "4, 5, 6")]
pub output: ::core::option::Option<web_egress_request::Output>,
#[prost(oneof = "web_egress_request::Options", tags = "7, 8")]
pub options: ::core::option::Option<web_egress_request::Options>,
}
pub mod web_egress_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "4")]
File(super::EncodedFileOutput),
#[prost(message, tag = "5")]
Stream(super::StreamOutput),
#[prost(message, tag = "6")]
Segments(super::SegmentedFileOutput),
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Options {
#[prost(enumeration = "super::EncodingOptionsPreset", tag = "7")]
Preset(i32),
#[prost(message, tag = "8")]
Advanced(super::EncodingOptions),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackCompositeEgressRequest {
#[prost(string, tag = "1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub audio_track_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub video_track_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "11")]
pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
#[prost(message, repeated, tag = "12")]
pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
#[prost(message, repeated, tag = "13")]
pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
#[prost(oneof = "track_composite_egress_request::Output", tags = "4, 5, 8")]
pub output: ::core::option::Option<track_composite_egress_request::Output>,
#[prost(oneof = "track_composite_egress_request::Options", tags = "6, 7")]
pub options: ::core::option::Option<track_composite_egress_request::Options>,
}
pub mod track_composite_egress_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "4")]
File(super::EncodedFileOutput),
#[prost(message, tag = "5")]
Stream(super::StreamOutput),
#[prost(message, tag = "8")]
Segments(super::SegmentedFileOutput),
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Options {
#[prost(enumeration = "super::EncodingOptionsPreset", tag = "6")]
Preset(i32),
#[prost(message, tag = "7")]
Advanced(super::EncodingOptions),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackEgressRequest {
#[prost(string, tag = "1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub track_id: ::prost::alloc::string::String,
#[prost(oneof = "track_egress_request::Output", tags = "3, 4")]
pub output: ::core::option::Option<track_egress_request::Output>,
}
pub mod track_egress_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "3")]
File(super::DirectFileOutput),
#[prost(string, tag = "4")]
WebsocketUrl(::prost::alloc::string::String),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncodedFileOutput {
#[prost(enumeration = "EncodedFileType", tag = "1")]
pub file_type: i32,
#[prost(string, tag = "2")]
pub filepath: ::prost::alloc::string::String,
#[prost(bool, tag = "6")]
pub disable_manifest: bool,
#[prost(oneof = "encoded_file_output::Output", tags = "3, 4, 5, 7")]
pub output: ::core::option::Option<encoded_file_output::Output>,
}
pub mod encoded_file_output {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "3")]
S3(super::S3Upload),
#[prost(message, tag = "4")]
Gcp(super::GcpUpload),
#[prost(message, tag = "5")]
Azure(super::AzureBlobUpload),
#[prost(message, tag = "7")]
AliOss(super::AliOssUpload),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SegmentedFileOutput {
#[prost(enumeration = "SegmentedFileProtocol", tag = "1")]
pub protocol: i32,
#[prost(string, tag = "2")]
pub filename_prefix: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub playlist_name: ::prost::alloc::string::String,
#[prost(uint32, tag = "4")]
pub segment_duration: u32,
#[prost(enumeration = "SegmentedFileSuffix", tag = "10")]
pub filename_suffix: i32,
#[prost(bool, tag = "8")]
pub disable_manifest: bool,
#[prost(oneof = "segmented_file_output::Output", tags = "5, 6, 7, 9")]
pub output: ::core::option::Option<segmented_file_output::Output>,
}
pub mod segmented_file_output {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "5")]
S3(super::S3Upload),
#[prost(message, tag = "6")]
Gcp(super::GcpUpload),
#[prost(message, tag = "7")]
Azure(super::AzureBlobUpload),
#[prost(message, tag = "9")]
AliOss(super::AliOssUpload),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DirectFileOutput {
#[prost(string, tag = "1")]
pub filepath: ::prost::alloc::string::String,
#[prost(bool, tag = "5")]
pub disable_manifest: bool,
#[prost(oneof = "direct_file_output::Output", tags = "2, 3, 4, 6")]
pub output: ::core::option::Option<direct_file_output::Output>,
}
pub mod direct_file_output {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "2")]
S3(super::S3Upload),
#[prost(message, tag = "3")]
Gcp(super::GcpUpload),
#[prost(message, tag = "4")]
Azure(super::AzureBlobUpload),
#[prost(message, tag = "6")]
AliOss(super::AliOssUpload),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct S3Upload {
#[prost(string, tag = "1")]
pub access_key: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub secret: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub endpoint: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub bucket: ::prost::alloc::string::String,
#[prost(bool, tag = "6")]
pub force_path_style: bool,
#[prost(map = "string, string", tag = "7")]
pub metadata:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag = "8")]
pub tagging: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcpUpload {
#[prost(string, tag = "1")]
pub credentials: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub bucket: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AzureBlobUpload {
#[prost(string, tag = "1")]
pub account_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub account_key: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub container_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AliOssUpload {
#[prost(string, tag = "1")]
pub access_key: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub secret: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub endpoint: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub bucket: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamOutput {
#[prost(enumeration = "StreamProtocol", tag = "1")]
pub protocol: i32,
#[prost(string, repeated, tag = "2")]
pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncodingOptions {
#[prost(int32, tag = "1")]
pub width: i32,
#[prost(int32, tag = "2")]
pub height: i32,
#[prost(int32, tag = "3")]
pub depth: i32,
#[prost(int32, tag = "4")]
pub framerate: i32,
#[prost(enumeration = "AudioCodec", tag = "5")]
pub audio_codec: i32,
#[prost(int32, tag = "6")]
pub audio_bitrate: i32,
#[prost(int32, tag = "7")]
pub audio_frequency: i32,
#[prost(enumeration = "VideoCodec", tag = "8")]
pub video_codec: i32,
#[prost(int32, tag = "9")]
pub video_bitrate: i32,
#[prost(double, tag = "10")]
pub key_frame_interval: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateLayoutRequest {
#[prost(string, tag = "1")]
pub egress_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub layout: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateStreamRequest {
#[prost(string, tag = "1")]
pub egress_id: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "2")]
pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "3")]
pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEgressRequest {
#[prost(string, tag = "1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub egress_id: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub active: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEgressResponse {
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<EgressInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopEgressRequest {
#[prost(string, tag = "1")]
pub egress_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EgressInfo {
#[prost(string, tag = "1")]
pub egress_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub room_id: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub room_name: ::prost::alloc::string::String,
#[prost(enumeration = "EgressStatus", tag = "3")]
pub status: i32,
#[prost(int64, tag = "10")]
pub started_at: i64,
#[prost(int64, tag = "11")]
pub ended_at: i64,
#[prost(int64, tag = "18")]
pub updated_at: i64,
#[prost(string, tag = "9")]
pub error: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "15")]
pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
#[prost(message, repeated, tag = "16")]
pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
#[prost(message, repeated, tag = "17")]
pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
#[prost(oneof = "egress_info::Request", tags = "4, 5, 6, 14")]
pub request: ::core::option::Option<egress_info::Request>,
#[prost(oneof = "egress_info::Result", tags = "7, 8, 12")]
pub result: ::core::option::Option<egress_info::Result>,
}
pub mod egress_info {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Request {
#[prost(message, tag = "4")]
RoomComposite(super::RoomCompositeEgressRequest),
#[prost(message, tag = "5")]
TrackComposite(super::TrackCompositeEgressRequest),
#[prost(message, tag = "6")]
Track(super::TrackEgressRequest),
#[prost(message, tag = "14")]
Web(super::WebEgressRequest),
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Result {
#[prost(message, tag = "7")]
Stream(super::StreamInfoList),
#[prost(message, tag = "8")]
File(super::FileInfo),
#[prost(message, tag = "12")]
Segments(super::SegmentsInfo),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamInfoList {
#[prost(message, repeated, tag = "1")]
pub info: ::prost::alloc::vec::Vec<StreamInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamInfo {
#[prost(string, tag = "1")]
pub url: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub started_at: i64,
#[prost(int64, tag = "3")]
pub ended_at: i64,
#[prost(int64, tag = "4")]
pub duration: i64,
#[prost(enumeration = "stream_info::Status", tag = "5")]
pub status: i32,
#[prost(string, tag = "6")]
pub error: ::prost::alloc::string::String,
}
pub mod stream_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Status {
Active = 0,
Finished = 1,
Failed = 2,
}
impl Status {
pub fn as_str_name(&self) -> &'static str {
match self {
Status::Active => "ACTIVE",
Status::Finished => "FINISHED",
Status::Failed => "FAILED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ACTIVE" => Some(Self::Active),
"FINISHED" => Some(Self::Finished),
"FAILED" => Some(Self::Failed),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileInfo {
#[prost(string, tag = "1")]
pub filename: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub started_at: i64,
#[prost(int64, tag = "3")]
pub ended_at: i64,
#[prost(int64, tag = "6")]
pub duration: i64,
#[prost(int64, tag = "4")]
pub size: i64,
#[prost(string, tag = "5")]
pub location: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SegmentsInfo {
#[prost(string, tag = "1")]
pub playlist_name: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub duration: i64,
#[prost(int64, tag = "3")]
pub size: i64,
#[prost(string, tag = "4")]
pub playlist_location: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub segment_count: i64,
#[prost(int64, tag = "6")]
pub started_at: i64,
#[prost(int64, tag = "7")]
pub ended_at: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoTrackEgress {
#[prost(string, tag = "1")]
pub filepath: ::prost::alloc::string::String,
#[prost(bool, tag = "5")]
pub disable_manifest: bool,
#[prost(oneof = "auto_track_egress::Output", tags = "2, 3, 4")]
pub output: ::core::option::Option<auto_track_egress::Output>,
}
pub mod auto_track_egress {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag = "2")]
S3(super::S3Upload),
#[prost(message, tag = "3")]
Gcp(super::GcpUpload),
#[prost(message, tag = "4")]
Azure(super::AzureBlobUpload),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EncodedFileType {
DefaultFiletype = 0,
Mp4 = 1,
Ogg = 2,
}
impl EncodedFileType {
pub fn as_str_name(&self) -> &'static str {
match self {
EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
EncodedFileType::Mp4 => "MP4",
EncodedFileType::Ogg => "OGG",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
"MP4" => Some(Self::Mp4),
"OGG" => Some(Self::Ogg),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SegmentedFileProtocol {
DefaultSegmentedFileProtocol = 0,
HlsProtocol = 1,
}
impl SegmentedFileProtocol {
pub fn as_str_name(&self) -> &'static str {
match self {
SegmentedFileProtocol::DefaultSegmentedFileProtocol => {
"DEFAULT_SEGMENTED_FILE_PROTOCOL"
}
SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
"HLS_PROTOCOL" => Some(Self::HlsProtocol),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SegmentedFileSuffix {
Index = 0,
Timestamp = 1,
}
impl SegmentedFileSuffix {
pub fn as_str_name(&self) -> &'static str {
match self {
SegmentedFileSuffix::Index => "INDEX",
SegmentedFileSuffix::Timestamp => "TIMESTAMP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"INDEX" => Some(Self::Index),
"TIMESTAMP" => Some(Self::Timestamp),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StreamProtocol {
DefaultProtocol = 0,
Rtmp = 1,
}
impl StreamProtocol {
pub fn as_str_name(&self) -> &'static str {
match self {
StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
StreamProtocol::Rtmp => "RTMP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
"RTMP" => Some(Self::Rtmp),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EncodingOptionsPreset {
H264720p30 = 0,
H264720p60 = 1,
H2641080p30 = 2,
H2641080p60 = 3,
PortraitH264720p30 = 4,
PortraitH264720p60 = 5,
PortraitH2641080p30 = 6,
PortraitH2641080p60 = 7,
}
impl EncodingOptionsPreset {
pub fn as_str_name(&self) -> &'static str {
match self {
EncodingOptionsPreset::H264720p30 => "H264_720P_30",
EncodingOptionsPreset::H264720p60 => "H264_720P_60",
EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"H264_720P_30" => Some(Self::H264720p30),
"H264_720P_60" => Some(Self::H264720p60),
"H264_1080P_30" => Some(Self::H2641080p30),
"H264_1080P_60" => Some(Self::H2641080p60),
"PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
"PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
"PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
"PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EgressStatus {
EgressStarting = 0,
EgressActive = 1,
EgressEnding = 2,
EgressComplete = 3,
EgressFailed = 4,
EgressAborted = 5,
EgressLimitReached = 6,
}
impl EgressStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
EgressStatus::EgressStarting => "EGRESS_STARTING",
EgressStatus::EgressActive => "EGRESS_ACTIVE",
EgressStatus::EgressEnding => "EGRESS_ENDING",
EgressStatus::EgressComplete => "EGRESS_COMPLETE",
EgressStatus::EgressFailed => "EGRESS_FAILED",
EgressStatus::EgressAborted => "EGRESS_ABORTED",
EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EGRESS_STARTING" => Some(Self::EgressStarting),
"EGRESS_ACTIVE" => Some(Self::EgressActive),
"EGRESS_ENDING" => Some(Self::EgressEnding),
"EGRESS_COMPLETE" => Some(Self::EgressComplete),
"EGRESS_FAILED" => Some(Self::EgressFailed),
"EGRESS_ABORTED" => Some(Self::EgressAborted),
"EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignalRequest {
#[prost(
oneof = "signal_request::Message",
tags = "1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16"
)]
pub message: ::core::option::Option<signal_request::Message>,
}
pub mod signal_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Message {
#[prost(message, tag = "1")]
Offer(super::SessionDescription),
#[prost(message, tag = "2")]
Answer(super::SessionDescription),
#[prost(message, tag = "3")]
Trickle(super::TrickleRequest),
#[prost(message, tag = "4")]
AddTrack(super::AddTrackRequest),
#[prost(message, tag = "5")]
Mute(super::MuteTrackRequest),
#[prost(message, tag = "6")]
Subscription(super::UpdateSubscription),
#[prost(message, tag = "7")]
TrackSetting(super::UpdateTrackSettings),
#[prost(message, tag = "8")]
Leave(super::LeaveRequest),
#[prost(message, tag = "10")]
UpdateLayers(super::UpdateVideoLayers),
#[prost(message, tag = "11")]
SubscriptionPermission(super::SubscriptionPermission),
#[prost(message, tag = "12")]
SyncState(super::SyncState),
#[prost(message, tag = "13")]
Simulate(super::SimulateScenario),
#[prost(int64, tag = "14")]
Ping(i64),
#[prost(message, tag = "15")]
UpdateMetadata(super::UpdateParticipantMetadata),
#[prost(message, tag = "16")]
PingReq(super::Ping),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignalResponse {
#[prost(
oneof = "signal_response::Message",
tags = "1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21"
)]
pub message: ::core::option::Option<signal_response::Message>,
}
pub mod signal_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Message {
#[prost(message, tag = "1")]
Join(super::JoinResponse),
#[prost(message, tag = "2")]
Answer(super::SessionDescription),
#[prost(message, tag = "3")]
Offer(super::SessionDescription),
#[prost(message, tag = "4")]
Trickle(super::TrickleRequest),
#[prost(message, tag = "5")]
Update(super::ParticipantUpdate),
#[prost(message, tag = "6")]
TrackPublished(super::TrackPublishedResponse),
#[prost(message, tag = "8")]
Leave(super::LeaveRequest),
#[prost(message, tag = "9")]
Mute(super::MuteTrackRequest),
#[prost(message, tag = "10")]
SpeakersChanged(super::SpeakersChanged),
#[prost(message, tag = "11")]
RoomUpdate(super::RoomUpdate),
#[prost(message, tag = "12")]
ConnectionQuality(super::ConnectionQualityUpdate),
#[prost(message, tag = "13")]
StreamStateUpdate(super::StreamStateUpdate),
#[prost(message, tag = "14")]
SubscribedQualityUpdate(super::SubscribedQualityUpdate),
#[prost(message, tag = "15")]
SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
#[prost(string, tag = "16")]
RefreshToken(::prost::alloc::string::String),
#[prost(message, tag = "17")]
TrackUnpublished(super::TrackUnpublishedResponse),
#[prost(int64, tag = "18")]
Pong(i64),
#[prost(message, tag = "19")]
Reconnect(super::ReconnectResponse),
#[prost(message, tag = "20")]
PongResp(super::Pong),
#[prost(message, tag = "21")]
SubscriptionResponse(super::SubscriptionResponse),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulcastCodec {
#[prost(string, tag = "1")]
pub codec: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub cid: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub enable_simulcast_layers: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddTrackRequest {
#[prost(string, tag = "1")]
pub cid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "TrackType", tag = "3")]
pub r#type: i32,
#[prost(uint32, tag = "4")]
pub width: u32,
#[prost(uint32, tag = "5")]
pub height: u32,
#[prost(bool, tag = "6")]
pub muted: bool,
#[prost(bool, tag = "7")]
pub disable_dtx: bool,
#[prost(enumeration = "TrackSource", tag = "8")]
pub source: i32,
#[prost(message, repeated, tag = "9")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
#[prost(message, repeated, tag = "10")]
pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
#[prost(string, tag = "11")]
pub sid: ::prost::alloc::string::String,
#[prost(bool, tag = "12")]
pub stereo: bool,
#[prost(bool, tag = "13")]
pub disable_red: bool,
#[prost(enumeration = "encryption::Type", tag = "14")]
pub encryption: i32,
#[prost(string, tag = "15")]
pub stream: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrickleRequest {
#[prost(string, tag = "1")]
pub candidate_init: ::prost::alloc::string::String,
#[prost(enumeration = "SignalTarget", tag = "2")]
pub target: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MuteTrackRequest {
#[prost(string, tag = "1")]
pub sid: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub muted: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoinResponse {
#[prost(message, optional, tag = "1")]
pub room: ::core::option::Option<Room>,
#[prost(message, optional, tag = "2")]
pub participant: ::core::option::Option<ParticipantInfo>,
#[prost(message, repeated, tag = "3")]
pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
#[prost(string, tag = "4")]
pub server_version: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "5")]
pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
#[prost(bool, tag = "6")]
pub subscriber_primary: bool,
#[prost(string, tag = "7")]
pub alternative_url: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub client_configuration: ::core::option::Option<ClientConfiguration>,
#[prost(string, tag = "9")]
pub server_region: ::prost::alloc::string::String,
#[prost(int32, tag = "10")]
pub ping_timeout: i32,
#[prost(int32, tag = "11")]
pub ping_interval: i32,
#[prost(message, optional, tag = "12")]
pub server_info: ::core::option::Option<ServerInfo>,
#[prost(bytes = "vec", tag = "13")]
pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReconnectResponse {
#[prost(message, repeated, tag = "1")]
pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
#[prost(message, optional, tag = "2")]
pub client_configuration: ::core::option::Option<ClientConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackPublishedResponse {
#[prost(string, tag = "1")]
pub cid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub track: ::core::option::Option<TrackInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackUnpublishedResponse {
#[prost(string, tag = "1")]
pub track_sid: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SessionDescription {
#[prost(string, tag = "1")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub sdp: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantUpdate {
#[prost(message, repeated, tag = "1")]
pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSubscription {
#[prost(string, repeated, tag = "1")]
pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "2")]
pub subscribe: bool,
#[prost(message, repeated, tag = "3")]
pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTrackSettings {
#[prost(string, repeated, tag = "1")]
pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "3")]
pub disabled: bool,
#[prost(enumeration = "VideoQuality", tag = "4")]
pub quality: i32,
#[prost(uint32, tag = "5")]
pub width: u32,
#[prost(uint32, tag = "6")]
pub height: u32,
#[prost(uint32, tag = "7")]
pub fps: u32,
#[prost(uint32, tag = "8")]
pub priority: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LeaveRequest {
#[prost(bool, tag = "1")]
pub can_reconnect: bool,
#[prost(enumeration = "DisconnectReason", tag = "2")]
pub reason: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateVideoLayers {
#[prost(string, tag = "1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateParticipantMetadata {
#[prost(string, tag = "1")]
pub metadata: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IceServer {
#[prost(string, repeated, tag = "1")]
pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "2")]
pub username: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub credential: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpeakersChanged {
#[prost(message, repeated, tag = "1")]
pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomUpdate {
#[prost(message, optional, tag = "1")]
pub room: ::core::option::Option<Room>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectionQualityInfo {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(enumeration = "ConnectionQuality", tag = "2")]
pub quality: i32,
#[prost(float, tag = "3")]
pub score: f32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectionQualityUpdate {
#[prost(message, repeated, tag = "1")]
pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamStateInfo {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub track_sid: ::prost::alloc::string::String,
#[prost(enumeration = "StreamState", tag = "3")]
pub state: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamStateUpdate {
#[prost(message, repeated, tag = "1")]
pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribedQuality {
#[prost(enumeration = "VideoQuality", tag = "1")]
pub quality: i32,
#[prost(bool, tag = "2")]
pub enabled: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribedCodec {
#[prost(string, tag = "1")]
pub codec: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribedQualityUpdate {
#[prost(string, tag = "1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
#[prost(message, repeated, tag = "3")]
pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackPermission {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub all_tracks: bool,
#[prost(string, repeated, tag = "3")]
pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "4")]
pub participant_identity: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscriptionPermission {
#[prost(bool, tag = "1")]
pub all_participants: bool,
#[prost(message, repeated, tag = "2")]
pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscriptionPermissionUpdate {
#[prost(string, tag = "1")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub track_sid: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub allowed: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SyncState {
#[prost(message, optional, tag = "1")]
pub answer: ::core::option::Option<SessionDescription>,
#[prost(message, optional, tag = "2")]
pub subscription: ::core::option::Option<UpdateSubscription>,
#[prost(message, repeated, tag = "3")]
pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
#[prost(message, repeated, tag = "4")]
pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
#[prost(message, optional, tag = "5")]
pub offer: ::core::option::Option<SessionDescription>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataChannelInfo {
#[prost(string, tag = "1")]
pub label: ::prost::alloc::string::String,
#[prost(uint32, tag = "2")]
pub id: u32,
#[prost(enumeration = "SignalTarget", tag = "3")]
pub target: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulateScenario {
#[prost(oneof = "simulate_scenario::Scenario", tags = "1, 2, 3, 4, 5, 6")]
pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
}
pub mod simulate_scenario {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Scenario {
#[prost(int32, tag = "1")]
SpeakerUpdate(i32),
#[prost(bool, tag = "2")]
NodeFailure(bool),
#[prost(bool, tag = "3")]
Migration(bool),
#[prost(bool, tag = "4")]
ServerLeave(bool),
#[prost(enumeration = "super::CandidateProtocol", tag = "5")]
SwitchCandidateProtocol(i32),
#[prost(int64, tag = "6")]
SubscriberBandwidth(i64),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ping {
#[prost(int64, tag = "1")]
pub timestamp: i64,
#[prost(int64, tag = "2")]
pub rtt: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Pong {
#[prost(int64, tag = "1")]
pub last_ping_timestamp: i64,
#[prost(int64, tag = "2")]
pub timestamp: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionSettings {
#[prost(message, repeated, tag = "1")]
pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionInfo {
#[prost(string, tag = "1")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub url: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub distance: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscriptionResponse {
#[prost(string, tag = "1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(enumeration = "SubscriptionError", tag = "2")]
pub err: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SignalTarget {
Publisher = 0,
Subscriber = 1,
}
impl SignalTarget {
pub fn as_str_name(&self) -> &'static str {
match self {
SignalTarget::Publisher => "PUBLISHER",
SignalTarget::Subscriber => "SUBSCRIBER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PUBLISHER" => Some(Self::Publisher),
"SUBSCRIBER" => Some(Self::Subscriber),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StreamState {
Active = 0,
Paused = 1,
}
impl StreamState {
pub fn as_str_name(&self) -> &'static str {
match self {
StreamState::Active => "ACTIVE",
StreamState::Paused => "PAUSED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ACTIVE" => Some(Self::Active),
"PAUSED" => Some(Self::Paused),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CandidateProtocol {
Udp = 0,
Tcp = 1,
Tls = 2,
}
impl CandidateProtocol {
pub fn as_str_name(&self) -> &'static str {
match self {
CandidateProtocol::Udp => "UDP",
CandidateProtocol::Tcp => "TCP",
CandidateProtocol::Tls => "TLS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UDP" => Some(Self::Udp),
"TCP" => Some(Self::Tcp),
"TLS" => Some(Self::Tls),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateRoomRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(uint32, tag = "2")]
pub empty_timeout: u32,
#[prost(uint32, tag = "3")]
pub max_participants: u32,
#[prost(string, tag = "4")]
pub node_id: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub metadata: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub egress: ::core::option::Option<RoomEgress>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomEgress {
#[prost(message, optional, tag = "1")]
pub room: ::core::option::Option<RoomCompositeEgressRequest>,
#[prost(message, optional, tag = "2")]
pub tracks: ::core::option::Option<AutoTrackEgress>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListRoomsRequest {
#[prost(string, repeated, tag = "1")]
pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListRoomsResponse {
#[prost(message, repeated, tag = "1")]
pub rooms: ::prost::alloc::vec::Vec<Room>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRoomRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRoomResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListParticipantsRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListParticipantsResponse {
#[prost(message, repeated, tag = "1")]
pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomParticipantIdentity {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveParticipantResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MuteRoomTrackRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub track_sid: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub muted: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MuteRoomTrackResponse {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<TrackInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateParticipantRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub metadata: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub permission: ::core::option::Option<ParticipantPermission>,
#[prost(string, tag = "5")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSubscriptionsRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "3")]
pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "4")]
pub subscribe: bool,
#[prost(message, repeated, tag = "5")]
pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSubscriptionsResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SendDataRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "2")]
pub data: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "data_packet::Kind", tag = "3")]
pub kind: i32,
#[prost(string, repeated, tag = "4")]
pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub topic: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SendDataResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateRoomMetadataRequest {
#[prost(string, tag = "1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub metadata: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateIngressRequest {
#[prost(enumeration = "IngressInput", tag = "1")]
pub input_type: i32,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub participant_name: ::prost::alloc::string::String,
#[prost(bool, tag = "8")]
pub bypass_transcoding: bool,
#[prost(message, optional, tag = "6")]
pub audio: ::core::option::Option<IngressAudioOptions>,
#[prost(message, optional, tag = "7")]
pub video: ::core::option::Option<IngressVideoOptions>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressAudioOptions {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "TrackSource", tag = "2")]
pub source: i32,
#[prost(oneof = "ingress_audio_options::EncodingOptions", tags = "3, 4")]
pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
}
pub mod ingress_audio_options {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum EncodingOptions {
#[prost(enumeration = "super::IngressAudioEncodingPreset", tag = "3")]
Preset(i32),
#[prost(message, tag = "4")]
Options(super::IngressAudioEncodingOptions),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressVideoOptions {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "TrackSource", tag = "2")]
pub source: i32,
#[prost(oneof = "ingress_video_options::EncodingOptions", tags = "3, 4")]
pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
}
pub mod ingress_video_options {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum EncodingOptions {
#[prost(enumeration = "super::IngressVideoEncodingPreset", tag = "3")]
Preset(i32),
#[prost(message, tag = "4")]
Options(super::IngressVideoEncodingOptions),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressAudioEncodingOptions {
#[prost(enumeration = "AudioCodec", tag = "1")]
pub audio_codec: i32,
#[prost(uint32, tag = "2")]
pub bitrate: u32,
#[prost(bool, tag = "3")]
pub disable_dtx: bool,
#[prost(uint32, tag = "4")]
pub channels: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressVideoEncodingOptions {
#[prost(enumeration = "VideoCodec", tag = "1")]
pub video_codec: i32,
#[prost(double, tag = "2")]
pub frame_rate: f64,
#[prost(message, repeated, tag = "3")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressInfo {
#[prost(string, tag = "1")]
pub ingress_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub stream_key: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub url: ::prost::alloc::string::String,
#[prost(enumeration = "IngressInput", tag = "5")]
pub input_type: i32,
#[prost(bool, tag = "13")]
pub bypass_transcoding: bool,
#[prost(message, optional, tag = "6")]
pub audio: ::core::option::Option<IngressAudioOptions>,
#[prost(message, optional, tag = "7")]
pub video: ::core::option::Option<IngressVideoOptions>,
#[prost(string, tag = "8")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub participant_name: ::prost::alloc::string::String,
#[prost(bool, tag = "11")]
pub reusable: bool,
#[prost(message, optional, tag = "12")]
pub state: ::core::option::Option<IngressState>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngressState {
#[prost(enumeration = "ingress_state::Status", tag = "1")]
pub status: i32,
#[prost(string, tag = "2")]
pub error: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub video: ::core::option::Option<InputVideoState>,
#[prost(message, optional, tag = "4")]
pub audio: ::core::option::Option<InputAudioState>,
#[prost(string, tag = "5")]
pub room_id: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub started_at: i64,
#[prost(int64, tag = "8")]
pub ended_at: i64,
#[prost(string, tag = "9")]
pub resource_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "6")]
pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
}
pub mod ingress_state {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Status {
EndpointInactive = 0,
EndpointBuffering = 1,
EndpointPublishing = 2,
EndpointError = 3,
}
impl Status {
pub fn as_str_name(&self) -> &'static str {
match self {
Status::EndpointInactive => "ENDPOINT_INACTIVE",
Status::EndpointBuffering => "ENDPOINT_BUFFERING",
Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
Status::EndpointError => "ENDPOINT_ERROR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
"ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
"ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
"ENDPOINT_ERROR" => Some(Self::EndpointError),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputVideoState {
#[prost(string, tag = "1")]
pub mime_type: ::prost::alloc::string::String,
#[prost(uint32, tag = "3")]
pub width: u32,
#[prost(uint32, tag = "4")]
pub height: u32,
#[prost(double, tag = "5")]
pub framerate: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputAudioState {
#[prost(string, tag = "1")]
pub mime_type: ::prost::alloc::string::String,
#[prost(uint32, tag = "3")]
pub channels: u32,
#[prost(uint32, tag = "4")]
pub sample_rate: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateIngressRequest {
#[prost(string, tag = "1")]
pub ingress_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub participant_name: ::prost::alloc::string::String,
#[prost(bool, optional, tag = "8")]
pub bypass_transcoding: ::core::option::Option<bool>,
#[prost(message, optional, tag = "6")]
pub audio: ::core::option::Option<IngressAudioOptions>,
#[prost(message, optional, tag = "7")]
pub video: ::core::option::Option<IngressVideoOptions>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListIngressRequest {
#[prost(string, tag = "1")]
pub room_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListIngressResponse {
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<IngressInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteIngressRequest {
#[prost(string, tag = "1")]
pub ingress_id: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IngressInput {
RtmpInput = 0,
WhipInput = 1,
}
impl IngressInput {
pub fn as_str_name(&self) -> &'static str {
match self {
IngressInput::RtmpInput => "RTMP_INPUT",
IngressInput::WhipInput => "WHIP_INPUT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RTMP_INPUT" => Some(Self::RtmpInput),
"WHIP_INPUT" => Some(Self::WhipInput),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IngressAudioEncodingPreset {
OpusStereo96kbps = 0,
OpusMono64kbs = 1,
}
impl IngressAudioEncodingPreset {
pub fn as_str_name(&self) -> &'static str {
match self {
IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
"OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IngressVideoEncodingPreset {
H264720p30fps3Layers = 0,
H2641080p30fps3Layers = 1,
H264540p25fps2Layers = 2,
H264720p30fps1Layer = 3,
H2641080p30fps1Layer = 4,
}
impl IngressVideoEncodingPreset {
pub fn as_str_name(&self) -> &'static str {
match self {
IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
"H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
"H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
"H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
"H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookEvent {
#[prost(string, tag = "1")]
pub event: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub room: ::core::option::Option<Room>,
#[prost(message, optional, tag = "3")]
pub participant: ::core::option::Option<ParticipantInfo>,
#[prost(message, optional, tag = "9")]
pub egress_info: ::core::option::Option<EgressInfo>,
#[prost(message, optional, tag = "10")]
pub ingress_info: ::core::option::Option<IngressInfo>,
#[prost(message, optional, tag = "8")]
pub track: ::core::option::Option<TrackInfo>,
#[prost(string, tag = "6")]
pub id: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub created_at: i64,
#[prost(int32, tag = "11")]
pub num_dropped: i32,
}