#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricsBatch {
#[prost(int64, tag="1")]
pub timestamp_ms: i64,
#[prost(message, optional, tag="2")]
pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(string, repeated, tag="3")]
pub str_data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag="4")]
pub time_series: ::prost::alloc::vec::Vec<TimeSeriesMetric>,
#[prost(message, repeated, tag="5")]
pub events: ::prost::alloc::vec::Vec<EventMetric>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeSeriesMetric {
#[prost(uint32, tag="1")]
pub label: u32,
#[prost(uint32, tag="2")]
pub participant_identity: u32,
#[prost(uint32, tag="3")]
pub track_sid: u32,
#[prost(message, repeated, tag="4")]
pub samples: ::prost::alloc::vec::Vec<MetricSample>,
#[prost(uint32, tag="5")]
pub rid: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricSample {
#[prost(int64, tag="1")]
pub timestamp_ms: i64,
#[prost(message, optional, tag="2")]
pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(float, tag="3")]
pub value: f32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventMetric {
#[prost(uint32, tag="1")]
pub label: u32,
#[prost(uint32, tag="2")]
pub participant_identity: u32,
#[prost(uint32, tag="3")]
pub track_sid: u32,
#[prost(int64, tag="4")]
pub start_timestamp_ms: i64,
#[prost(int64, optional, tag="5")]
pub end_timestamp_ms: ::core::option::Option<i64>,
#[prost(message, optional, tag="6")]
pub normalized_start_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="7")]
pub normalized_end_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(string, tag="8")]
pub metadata: ::prost::alloc::string::String,
#[prost(uint32, tag="9")]
pub rid: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricsRecordingHeader {
#[prost(string, tag="1")]
pub room_id: ::prost::alloc::string::String,
#[prost(uint64, tag="3")]
pub duration: u64,
#[prost(message, optional, tag="4")]
pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(map="string, string", tag="5")]
pub room_tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MetricLabel {
AgentsLlmTtft = 0,
AgentsSttTtft = 1,
AgentsTtsTtfb = 2,
ClientVideoSubscriberFreezeCount = 3,
ClientVideoSubscriberTotalFreezeDuration = 4,
ClientVideoSubscriberPauseCount = 5,
ClientVideoSubscriberTotalPausesDuration = 6,
ClientAudioSubscriberConcealedSamples = 7,
ClientAudioSubscriberSilentConcealedSamples = 8,
ClientAudioSubscriberConcealmentEvents = 9,
ClientAudioSubscriberInterruptionCount = 10,
ClientAudioSubscriberTotalInterruptionDuration = 11,
ClientSubscriberJitterBufferDelay = 12,
ClientSubscriberJitterBufferEmittedCount = 13,
ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
ClientVideoPublisherQualityLimitationDurationCpu = 15,
ClientVideoPublisherQualityLimitationDurationOther = 16,
PublisherRtt = 17,
ServerMeshRtt = 18,
SubscriberRtt = 19,
PredefinedMaxValue = 4096,
}
impl MetricLabel {
pub fn as_str_name(&self) -> &'static str {
match self {
MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
MetricLabel::PublisherRtt => "PUBLISHER_RTT",
MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
"AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
"AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
"CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
"CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
"CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
"CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
"CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
"CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
"CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
"CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
"CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
"CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
"CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
"CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
"CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
"CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
"PUBLISHER_RTT" => Some(Self::PublisherRtt),
"SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
"SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
"METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Pagination {
#[prost(string, tag="1")]
pub after_id: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub limit: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TokenPagination {
#[prost(string, tag="1")]
pub token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListUpdate {
#[prost(string, repeated, tag="1")]
pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="3")]
pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag="4")]
pub clear: bool,
}
#[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="14")]
pub departure_timeout: u32,
#[prost(uint32, tag="4")]
pub max_participants: u32,
#[prost(int64, tag="5")]
pub creation_time: i64,
#[prost(int64, tag="15")]
pub creation_time_ms: 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="13")]
pub version: ::core::option::Option<TimedVersion>,
}
#[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,
#[deprecated]
#[prost(bool, tag="8")]
pub recorder: bool,
#[prost(bool, tag="10")]
pub can_update_metadata: bool,
#[deprecated]
#[prost(bool, tag="11")]
pub agent: bool,
#[prost(bool, tag="12")]
pub can_subscribe_metrics: bool,
#[prost(bool, tag="13")]
pub can_manage_agent_session: 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(int64, tag="17")]
pub joined_at_ms: 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,
#[prost(enumeration="participant_info::Kind", tag="14")]
pub kind: i32,
#[prost(map="string, string", tag="15")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(enumeration="DisconnectReason", tag="16")]
pub disconnect_reason: i32,
#[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
pub kind_details: ::prost::alloc::vec::Vec<i32>,
#[prost(message, repeated, tag="19")]
pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
#[prost(int32, tag="20")]
pub client_protocol: i32,
}
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,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Kind {
Standard = 0,
Ingress = 1,
Egress = 2,
Sip = 3,
Agent = 4,
Connector = 7,
Bridge = 8,
}
impl Kind {
pub fn as_str_name(&self) -> &'static str {
match self {
Kind::Standard => "STANDARD",
Kind::Ingress => "INGRESS",
Kind::Egress => "EGRESS",
Kind::Sip => "SIP",
Kind::Agent => "AGENT",
Kind::Connector => "CONNECTOR",
Kind::Bridge => "BRIDGE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STANDARD" => Some(Self::Standard),
"INGRESS" => Some(Self::Ingress),
"EGRESS" => Some(Self::Egress),
"SIP" => Some(Self::Sip),
"AGENT" => Some(Self::Agent),
"CONNECTOR" => Some(Self::Connector),
"BRIDGE" => Some(Self::Bridge),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum KindDetail {
CloudAgent = 0,
Forwarded = 1,
ConnectorWhatsapp = 2,
ConnectorTwilio = 3,
BridgeRtsp = 4,
}
impl KindDetail {
pub fn as_str_name(&self) -> &'static str {
match self {
KindDetail::CloudAgent => "CLOUD_AGENT",
KindDetail::Forwarded => "FORWARDED",
KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
KindDetail::BridgeRtsp => "BRIDGE_RTSP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CLOUD_AGENT" => Some(Self::CloudAgent),
"FORWARDED" => Some(Self::Forwarded),
"CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
"CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
"BRIDGE_RTSP" => Some(Self::BridgeRtsp),
_ => 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>,
#[prost(enumeration="video_layer::Mode", tag="5")]
pub video_layer_mode: i32,
#[prost(string, tag="6")]
pub sdp_cid: ::prost::alloc::string::String,
}
#[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,
#[deprecated]
#[prost(bool, tag="7")]
pub simulcast: bool,
#[deprecated]
#[prost(bool, tag="8")]
pub disable_dtx: bool,
#[prost(enumeration="TrackSource", tag="9")]
pub source: i32,
#[deprecated]
#[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>,
#[deprecated]
#[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,
#[prost(message, optional, tag="18")]
pub version: ::core::option::Option<TimedVersion>,
#[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
pub audio_features: ::prost::alloc::vec::Vec<i32>,
#[prost(enumeration="BackupCodecPolicy", tag="20")]
pub backup_codec_policy: i32,
#[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataTrackInfo {
#[prost(uint32, tag="1")]
pub pub_handle: u32,
#[prost(string, tag="2")]
pub sid: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration="encryption::Type", tag="4")]
pub encryption: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataTrackExtensionParticipantSid {
#[prost(enumeration="DataTrackExtensionId", tag="1")]
pub id: i32,
#[prost(string, tag="2")]
pub participant_sid: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataTrackSubscriptionOptions {
#[prost(uint32, optional, tag="1")]
pub target_fps: ::core::option::Option<u32>,
}
#[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,
#[prost(int32, tag="6")]
pub spatial_layer: i32,
#[prost(string, tag="7")]
pub rid: ::prost::alloc::string::String,
#[prost(uint32, tag="8")]
pub repair_ssrc: u32,
}
pub mod video_layer {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Mode {
Unused = 0,
OneSpatialLayerPerStream = 1,
MultipleSpatialLayersPerStream = 2,
OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
}
impl Mode {
pub fn as_str_name(&self) -> &'static str {
match self {
Mode::Unused => "MODE_UNUSED",
Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODE_UNUSED" => Some(Self::Unused),
"ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
"MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
"ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPacket {
#[deprecated]
#[prost(enumeration="data_packet::Kind", tag="1")]
pub kind: i32,
#[prost(string, tag="4")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, repeated, tag="5")]
pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(uint32, tag="16")]
pub sequence: u32,
#[prost(string, tag="17")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
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),
#[prost(message, tag="6")]
SipDtmf(super::SipDtmf),
#[prost(message, tag="7")]
Transcription(super::Transcription),
#[prost(message, tag="8")]
Metrics(super::MetricsBatch),
#[prost(message, tag="9")]
ChatMessage(super::ChatMessage),
#[prost(message, tag="10")]
RpcRequest(super::RpcRequest),
#[prost(message, tag="11")]
RpcAck(super::RpcAck),
#[prost(message, tag="12")]
RpcResponse(super::RpcResponse),
#[prost(message, tag="13")]
StreamHeader(super::data_stream::Header),
#[prost(message, tag="14")]
StreamChunk(super::data_stream::Chunk),
#[prost(message, tag="15")]
StreamTrailer(super::data_stream::Trailer),
#[prost(message, tag="18")]
EncryptedPacket(super::EncryptedPacket),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptedPacket {
#[prost(enumeration="encryption::Type", tag="1")]
pub encryption_type: i32,
#[prost(bytes="vec", tag="2")]
pub iv: ::prost::alloc::vec::Vec<u8>,
#[prost(uint32, tag="3")]
pub key_index: u32,
#[prost(bytes="vec", tag="4")]
pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptedPacketPayload {
#[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
pub value: ::core::option::Option<encrypted_packet_payload::Value>,
}
pub mod encrypted_packet_payload {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(message, tag="1")]
User(super::UserPacket),
#[prost(message, tag="3")]
ChatMessage(super::ChatMessage),
#[prost(message, tag="4")]
RpcRequest(super::RpcRequest),
#[prost(message, tag="5")]
RpcAck(super::RpcAck),
#[prost(message, tag="6")]
RpcResponse(super::RpcResponse),
#[prost(message, tag="7")]
StreamHeader(super::data_stream::Header),
#[prost(message, tag="8")]
StreamChunk(super::data_stream::Chunk),
#[prost(message, tag="9")]
StreamTrailer(super::data_stream::Trailer),
}
}
#[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 {
#[deprecated]
#[prost(string, tag="1")]
pub participant_sid: ::prost::alloc::string::String,
#[deprecated]
#[prost(string, tag="5")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(bytes="vec", tag="2")]
pub payload: ::prost::alloc::vec::Vec<u8>,
#[deprecated]
#[prost(string, repeated, tag="3")]
pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[deprecated]
#[prost(string, repeated, tag="6")]
pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag="4")]
pub topic: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="8")]
pub id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(uint64, optional, tag="9")]
pub start_time: ::core::option::Option<u64>,
#[prost(uint64, optional, tag="10")]
pub end_time: ::core::option::Option<u64>,
#[prost(bytes="vec", tag="11")]
pub nonce: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDtmf {
#[prost(uint32, tag="3")]
pub code: u32,
#[prost(string, tag="4")]
pub digit: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Transcription {
#[prost(string, tag="2")]
pub transcribed_participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub track_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag="4")]
pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranscriptionSegment {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub text: ::prost::alloc::string::String,
#[prost(uint64, tag="3")]
pub start_time: u64,
#[prost(uint64, tag="4")]
pub end_time: u64,
#[prost(bool, tag="5")]
pub r#final: bool,
#[prost(string, tag="6")]
pub language: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChatMessage {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub timestamp: i64,
#[prost(int64, optional, tag="3")]
pub edit_timestamp: ::core::option::Option<i64>,
#[prost(string, tag="4")]
pub message: ::prost::alloc::string::String,
#[prost(bool, tag="5")]
pub deleted: bool,
#[prost(bool, tag="6")]
pub generated: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RpcRequest {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub method: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub payload: ::prost::alloc::string::String,
#[prost(uint32, tag="4")]
pub response_timeout_ms: u32,
#[prost(uint32, tag="5")]
pub version: u32,
#[prost(bytes="vec", tag="6")]
pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RpcAck {
#[prost(string, tag="1")]
pub request_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RpcResponse {
#[prost(string, tag="1")]
pub request_id: ::prost::alloc::string::String,
#[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
pub value: ::core::option::Option<rpc_response::Value>,
}
pub mod rpc_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(string, tag="2")]
Payload(::prost::alloc::string::String),
#[prost(message, tag="3")]
Error(super::RpcError),
#[prost(bytes, tag="4")]
CompressedPayload(::prost::alloc::vec::Vec<u8>),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RpcError {
#[prost(uint32, tag="1")]
pub code: u32,
#[prost(string, tag="2")]
pub message: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub data: ::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,
#[prost(int32, tag="7")]
pub agent_protocol: i32,
}
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,
#[prost(string, tag="11")]
pub other_sdks: ::prost::alloc::string::String,
#[prost(int32, tag="12")]
pub client_protocol: i32,
}
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,
Python = 9,
Cpp = 10,
UnityWeb = 11,
Node = 12,
Unreal = 13,
Esp32 = 14,
}
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",
Sdk::Python => "PYTHON",
Sdk::Cpp => "CPP",
Sdk::UnityWeb => "UNITY_WEB",
Sdk::Node => "NODE",
Sdk::Unreal => "UNREAL",
Sdk::Esp32 => "ESP32",
}
}
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),
"PYTHON" => Some(Self::Python),
"CPP" => Some(Self::Cpp),
"UNITY_WEB" => Some(Self::UnityWeb),
"NODE" => Some(Self::Node),
"UNREAL" => Some(Self::Unreal),
"ESP32" => Some(Self::Esp32),
_ => 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 RtpDrift {
#[prost(message, optional, tag="1")]
pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="2")]
pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(double, tag="3")]
pub duration: f64,
#[prost(uint64, tag="4")]
pub start_timestamp: u64,
#[prost(uint64, tag="5")]
pub end_timestamp: u64,
#[prost(uint64, tag="6")]
pub rtp_clock_ticks: u64,
#[prost(int64, tag="7")]
pub drift_samples: i64,
#[prost(double, tag="8")]
pub drift_ms: f64,
#[prost(double, tag="9")]
pub clock_rate: f64,
}
#[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<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="2")]
pub end_time: ::core::option::Option<::pbjson_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<::pbjson_types::Timestamp>,
#[prost(uint32, tag="29")]
pub firs: u32,
#[prost(message, optional, tag="30")]
pub last_fir: ::core::option::Option<::pbjson_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<::pbjson_types::Timestamp>,
#[prost(uint32, tag="35")]
pub layer_lock_plis: u32,
#[prost(message, optional, tag="36")]
pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="44")]
pub packet_drift: ::core::option::Option<RtpDrift>,
#[prost(message, optional, tag="45")]
pub ntp_report_drift: ::core::option::Option<RtpDrift>,
#[prost(message, optional, tag="46")]
pub rebased_report_drift: ::core::option::Option<RtpDrift>,
#[prost(message, optional, tag="47")]
pub received_report_drift: ::core::option::Option<RtpDrift>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RtcpSenderReportState {
#[prost(uint32, tag="1")]
pub rtp_timestamp: u32,
#[prost(uint64, tag="2")]
pub rtp_timestamp_ext: u64,
#[prost(uint64, tag="3")]
pub ntp_timestamp: u64,
#[prost(int64, tag="4")]
pub at: i64,
#[prost(int64, tag="5")]
pub at_adjusted: i64,
#[prost(uint32, tag="6")]
pub packets: u32,
#[prost(uint64, tag="7")]
pub octets: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RtpForwarderState {
#[prost(bool, tag="1")]
pub started: bool,
#[prost(int32, tag="2")]
pub reference_layer_spatial: i32,
#[prost(int64, tag="3")]
pub pre_start_time: i64,
#[prost(uint64, tag="4")]
pub ext_first_timestamp: u64,
#[prost(uint64, tag="5")]
pub dummy_start_timestamp_offset: u64,
#[prost(message, optional, tag="6")]
pub rtp_munger: ::core::option::Option<RtpMungerState>,
#[prost(message, repeated, tag="8")]
pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
#[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
}
pub mod rtp_forwarder_state {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum CodecMunger {
#[prost(message, tag="7")]
Vp8Munger(super::Vp8MungerState),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RtpMungerState {
#[prost(uint64, tag="1")]
pub ext_last_sequence_number: u64,
#[prost(uint64, tag="2")]
pub ext_second_last_sequence_number: u64,
#[prost(uint64, tag="3")]
pub ext_last_timestamp: u64,
#[prost(uint64, tag="4")]
pub ext_second_last_timestamp: u64,
#[prost(bool, tag="5")]
pub last_marker: bool,
#[prost(bool, tag="6")]
pub second_last_marker: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Vp8MungerState {
#[prost(int32, tag="1")]
pub ext_last_picture_id: i32,
#[prost(bool, tag="2")]
pub picture_id_used: bool,
#[prost(uint32, tag="3")]
pub last_tl0_pic_idx: u32,
#[prost(bool, tag="4")]
pub tl0_pic_idx_used: bool,
#[prost(bool, tag="5")]
pub tid_used: bool,
#[prost(uint32, tag="6")]
pub last_key_idx: u32,
#[prost(bool, tag="7")]
pub key_idx_used: bool,
}
#[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,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataStream {
}
pub mod data_stream {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextHeader {
#[prost(enumeration="OperationType", tag="1")]
pub operation_type: i32,
#[prost(int32, tag="2")]
pub version: i32,
#[prost(string, tag="3")]
pub reply_to_stream_id: ::prost::alloc::string::String,
#[prost(string, repeated, tag="4")]
pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag="5")]
pub generated: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ByteHeader {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Header {
#[prost(string, tag="1")]
pub stream_id: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub timestamp: i64,
#[prost(string, tag="3")]
pub topic: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub mime_type: ::prost::alloc::string::String,
#[prost(uint64, optional, tag="5")]
pub total_length: ::core::option::Option<u64>,
#[deprecated]
#[prost(enumeration="super::encryption::Type", tag="7")]
pub encryption_type: i32,
#[prost(map="string, string", tag="8")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(oneof="header::ContentHeader", tags="9, 10")]
pub content_header: ::core::option::Option<header::ContentHeader>,
}
pub mod header {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ContentHeader {
#[prost(message, tag="9")]
TextHeader(super::TextHeader),
#[prost(message, tag="10")]
ByteHeader(super::ByteHeader),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Chunk {
#[prost(string, tag="1")]
pub stream_id: ::prost::alloc::string::String,
#[prost(uint64, tag="2")]
pub chunk_index: u64,
#[prost(bytes="vec", tag="3")]
pub content: ::prost::alloc::vec::Vec<u8>,
#[prost(int32, tag="4")]
pub version: i32,
#[deprecated]
#[prost(bytes="vec", optional, tag="5")]
pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trailer {
#[prost(string, tag="1")]
pub stream_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub reason: ::prost::alloc::string::String,
#[prost(map="string, string", tag="3")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OperationType {
Create = 0,
Update = 1,
Delete = 2,
Reaction = 3,
}
impl OperationType {
pub fn as_str_name(&self) -> &'static str {
match self {
OperationType::Create => "CREATE",
OperationType::Update => "UPDATE",
OperationType::Delete => "DELETE",
OperationType::Reaction => "REACTION",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CREATE" => Some(Self::Create),
"UPDATE" => Some(Self::Update),
"DELETE" => Some(Self::Delete),
"REACTION" => Some(Self::Reaction),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterParams {
#[prost(string, repeated, tag="1")]
pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookConfig {
#[prost(string, tag="1")]
pub url: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub signing_key: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub filter_params: ::core::option::Option<FilterParams>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribedAudioCodec {
#[prost(string, tag="1")]
pub codec: ::prost::alloc::string::String,
#[prost(bool, tag="2")]
pub enabled: bool,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AudioCodec {
DefaultAc = 0,
Opus = 1,
Aac = 2,
AcMp3 = 3,
}
impl AudioCodec {
pub fn as_str_name(&self) -> &'static str {
match self {
AudioCodec::DefaultAc => "DEFAULT_AC",
AudioCodec::Opus => "OPUS",
AudioCodec::Aac => "AAC",
AudioCodec::AcMp3 => "AC_MP3",
}
}
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),
"AC_MP3" => Some(Self::AcMp3),
_ => 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 ImageCodec {
IcDefault = 0,
IcJpeg = 1,
}
impl ImageCodec {
pub fn as_str_name(&self) -> &'static str {
match self {
ImageCodec::IcDefault => "IC_DEFAULT",
ImageCodec::IcJpeg => "IC_JPEG",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"IC_DEFAULT" => Some(Self::IcDefault),
"IC_JPEG" => Some(Self::IcJpeg),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum BackupCodecPolicy {
PreferRegression = 0,
Simulcast = 1,
Regression = 2,
}
impl BackupCodecPolicy {
pub fn as_str_name(&self) -> &'static str {
match self {
BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
BackupCodecPolicy::Simulcast => "SIMULCAST",
BackupCodecPolicy::Regression => "REGRESSION",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PREFER_REGRESSION" => Some(Self::PreferRegression),
"SIMULCAST" => Some(Self::Simulcast),
"REGRESSION" => Some(Self::Regression),
_ => 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 DataTrackExtensionId {
DteiInvalid = 0,
DteiParticipantSid = 1,
}
impl DataTrackExtensionId {
pub fn as_str_name(&self) -> &'static str {
match self {
DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DTEI_INVALID" => Some(Self::DteiInvalid),
"DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
_ => 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,
Lost = 3,
}
impl ConnectionQuality {
pub fn as_str_name(&self) -> &'static str {
match self {
ConnectionQuality::Poor => "POOR",
ConnectionQuality::Good => "GOOD",
ConnectionQuality::Excellent => "EXCELLENT",
ConnectionQuality::Lost => "LOST",
}
}
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),
"LOST" => Some(Self::Lost),
_ => 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,
Migration = 8,
SignalClose = 9,
RoomClosed = 10,
UserUnavailable = 11,
UserRejected = 12,
SipTrunkFailure = 13,
ConnectionTimeout = 14,
MediaFailure = 15,
AgentError = 16,
}
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",
DisconnectReason::Migration => "MIGRATION",
DisconnectReason::SignalClose => "SIGNAL_CLOSE",
DisconnectReason::RoomClosed => "ROOM_CLOSED",
DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
DisconnectReason::UserRejected => "USER_REJECTED",
DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
DisconnectReason::MediaFailure => "MEDIA_FAILURE",
DisconnectReason::AgentError => "AGENT_ERROR",
}
}
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),
"MIGRATION" => Some(Self::Migration),
"SIGNAL_CLOSE" => Some(Self::SignalClose),
"ROOM_CLOSED" => Some(Self::RoomClosed),
"USER_UNAVAILABLE" => Some(Self::UserUnavailable),
"USER_REJECTED" => Some(Self::UserRejected),
"SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
"CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
"MEDIA_FAILURE" => Some(Self::MediaFailure),
"AGENT_ERROR" => Some(Self::AgentError),
_ => 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,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AudioTrackFeature {
TfStereo = 0,
TfNoDtx = 1,
TfAutoGainControl = 2,
TfEchoCancellation = 3,
TfNoiseSuppression = 4,
TfEnhancedNoiseCancellation = 5,
TfPreconnectBuffer = 6,
}
impl AudioTrackFeature {
pub fn as_str_name(&self) -> &'static str {
match self {
AudioTrackFeature::TfStereo => "TF_STEREO",
AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TF_STEREO" => Some(Self::TfStereo),
"TF_NO_DTX" => Some(Self::TfNoDtx),
"TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
"TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
"TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
"TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
"TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PacketTrailerFeature {
PtfUserTimestamp = 0,
PtfFrameId = 1,
}
impl PacketTrailerFeature {
pub fn as_str_name(&self) -> &'static str {
match self {
PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
"PTF_FRAME_ID" => Some(Self::PtfFrameId),
_ => 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(enumeration="AudioMixing", tag="15")]
pub audio_mixing: i32,
#[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(message, repeated, tag="14")]
pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
#[prost(message, repeated, tag="16")]
pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
#[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(message, repeated, tag="13")]
pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
#[prost(message, repeated, tag="14")]
pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
#[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 ParticipantEgressRequest {
#[prost(string, tag="1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub identity: ::prost::alloc::string::String,
#[prost(bool, tag="3")]
pub screen_share: bool,
#[prost(message, repeated, tag="6")]
pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
#[prost(message, repeated, tag="7")]
pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
#[prost(message, repeated, tag="8")]
pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
#[prost(message, repeated, tag="9")]
pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
#[prost(message, repeated, tag="10")]
pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
#[prost(oneof="participant_egress_request::Options", tags="4, 5")]
pub options: ::core::option::Option<participant_egress_request::Options>,
}
pub mod participant_egress_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Options {
#[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
Preset(i32),
#[prost(message, tag="5")]
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(message, repeated, tag="14")]
pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
#[prost(message, repeated, tag="15")]
pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
#[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(message, repeated, tag="5")]
pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
#[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(string, tag="11")]
pub live_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 ImageOutput {
#[prost(uint32, tag="1")]
pub capture_interval: u32,
#[prost(int32, tag="2")]
pub width: i32,
#[prost(int32, tag="3")]
pub height: i32,
#[prost(string, tag="4")]
pub filename_prefix: ::prost::alloc::string::String,
#[prost(enumeration="ImageFileSuffix", tag="5")]
pub filename_suffix: i32,
#[prost(enumeration="ImageCodec", tag="6")]
pub image_codec: i32,
#[prost(bool, tag="7")]
pub disable_manifest: bool,
#[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
pub output: ::core::option::Option<image_output::Output>,
}
pub mod image_output {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Output {
#[prost(message, tag="8")]
S3(super::S3Upload),
#[prost(message, tag="9")]
Gcp(super::GcpUpload),
#[prost(message, tag="10")]
Azure(super::AzureBlobUpload),
#[prost(message, tag="11")]
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="11")]
pub session_token: ::prost::alloc::string::String,
#[prost(string, tag="12")]
pub assume_role_arn: ::prost::alloc::string::String,
#[prost(string, tag="13")]
pub assume_role_external_id: ::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,
#[prost(string, tag="9")]
pub content_disposition: ::prost::alloc::string::String,
#[prost(message, optional, tag="10")]
pub proxy: ::core::option::Option<ProxyConfig>,
}
#[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,
#[prost(message, optional, tag="3")]
pub proxy: ::core::option::Option<ProxyConfig>,
}
#[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 ProxyConfig {
#[prost(string, tag="1")]
pub url: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub username: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub password: ::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="11")]
pub audio_quality: 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(int32, tag="12")]
pub video_quality: 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="EgressSourceType", tag="26")]
pub source_type: i32,
#[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="21")]
pub details: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub error: ::prost::alloc::string::String,
#[prost(int32, tag="22")]
pub error_code: i32,
#[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(message, repeated, tag="20")]
pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
#[prost(string, tag="23")]
pub manifest_location: ::prost::alloc::string::String,
#[prost(bool, tag="25")]
pub backup_storage_used: bool,
#[prost(int32, tag="27")]
pub retry_count: i32,
#[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
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="14")]
Web(super::WebEgressRequest),
#[prost(message, tag="19")]
Participant(super::ParticipantEgressRequest),
#[prost(message, tag="5")]
TrackComposite(super::TrackCompositeEgressRequest),
#[prost(message, tag="6")]
Track(super::TrackEgressRequest),
}
#[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,
#[prost(int64, tag="7")]
pub last_retry_at: i64,
#[prost(uint32, tag="8")]
pub retries: u32,
}
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(string, tag="8")]
pub live_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(string, tag="9")]
pub live_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 ImagesInfo {
#[prost(string, tag="4")]
pub filename_prefix: ::prost::alloc::string::String,
#[prost(int64, tag="1")]
pub image_count: i64,
#[prost(int64, tag="2")]
pub started_at: i64,
#[prost(int64, tag="3")]
pub ended_at: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoParticipantEgress {
#[prost(message, repeated, tag="3")]
pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
#[prost(message, repeated, tag="4")]
pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
#[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
pub options: ::core::option::Option<auto_participant_egress::Options>,
}
pub mod auto_participant_egress {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Options {
#[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
Preset(i32),
#[prost(message, tag="2")]
Advanced(super::EncodingOptions),
}
}
#[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, 6")]
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),
#[prost(message, tag="6")]
AliOss(super::AliOssUpload),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EncodedFileType {
DefaultFiletype = 0,
Mp4 = 1,
Ogg = 2,
Mp3 = 3,
}
impl EncodedFileType {
pub fn as_str_name(&self) -> &'static str {
match self {
EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
EncodedFileType::Mp4 => "MP4",
EncodedFileType::Ogg => "OGG",
EncodedFileType::Mp3 => "MP3",
}
}
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),
"MP3" => Some(Self::Mp3),
_ => 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 ImageFileSuffix {
ImageSuffixIndex = 0,
ImageSuffixTimestamp = 1,
ImageSuffixNoneOverwrite = 2,
}
impl ImageFileSuffix {
pub fn as_str_name(&self) -> &'static str {
match self {
ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
"IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
"IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StreamProtocol {
DefaultProtocol = 0,
Rtmp = 1,
Srt = 2,
}
impl StreamProtocol {
pub fn as_str_name(&self) -> &'static str {
match self {
StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
StreamProtocol::Rtmp => "RTMP",
StreamProtocol::Srt => "SRT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
"RTMP" => Some(Self::Rtmp),
"SRT" => Some(Self::Srt),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AudioMixing {
DefaultMixing = 0,
DualChannelAgent = 1,
DualChannelAlternate = 2,
}
impl AudioMixing {
pub fn as_str_name(&self) -> &'static str {
match self {
AudioMixing::DefaultMixing => "DEFAULT_MIXING",
AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEFAULT_MIXING" => Some(Self::DefaultMixing),
"DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
"DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
_ => 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,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EgressSourceType {
Web = 0,
Sdk = 1,
}
impl EgressSourceType {
pub fn as_str_name(&self) -> &'static str {
match self {
EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
"EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
_ => 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, 17, 18, 19, 20, 21")]
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),
#[prost(message, tag="17")]
UpdateAudioTrack(super::UpdateLocalAudioTrack),
#[prost(message, tag="18")]
UpdateVideoTrack(super::UpdateLocalVideoTrack),
#[prost(message, tag="19")]
PublishDataTrackRequest(super::PublishDataTrackRequest),
#[prost(message, tag="20")]
UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
#[prost(message, tag="21")]
UpdateDataSubscription(super::UpdateDataSubscription),
}
}
#[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, 22, 23, 24, 25, 26, 27, 28, 29")]
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),
#[prost(message, tag="22")]
RequestResponse(super::RequestResponse),
#[prost(message, tag="23")]
TrackSubscribed(super::TrackSubscribed),
#[prost(message, tag="24")]
RoomMoved(super::RoomMovedResponse),
#[prost(message, tag="25")]
MediaSectionsRequirement(super::MediaSectionsRequirement),
#[prost(message, tag="26")]
SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
#[prost(message, tag="27")]
PublishDataTrackResponse(super::PublishDataTrackResponse),
#[prost(message, tag="28")]
UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
#[prost(message, tag="29")]
DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
}
}
#[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(message, repeated, tag="4")]
pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
#[prost(enumeration="video_layer::Mode", tag="5")]
pub video_layer_mode: i32,
}
#[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,
#[deprecated]
#[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,
#[deprecated]
#[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,
#[prost(enumeration="BackupCodecPolicy", tag="16")]
pub backup_codec_policy: i32,
#[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
pub audio_features: ::prost::alloc::vec::Vec<i32>,
#[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PublishDataTrackRequest {
#[prost(uint32, tag="1")]
pub pub_handle: u32,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration="encryption::Type", tag="3")]
pub encryption: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PublishDataTrackResponse {
#[prost(message, optional, tag="1")]
pub info: ::core::option::Option<DataTrackInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnpublishDataTrackRequest {
#[prost(uint32, tag="1")]
pub pub_handle: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnpublishDataTrackResponse {
#[prost(message, optional, tag="1")]
pub info: ::core::option::Option<DataTrackInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataTrackSubscriberHandles {
#[prost(map="uint32, message", tag="1")]
pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
}
pub mod data_track_subscriber_handles {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PublishedDataTrack {
#[prost(string, tag="1")]
pub publisher_identity: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub publisher_sid: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub track_sid: ::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,
#[prost(bool, tag="3")]
pub r#final: bool,
}
#[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>,
#[prost(message, repeated, tag="14")]
pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
#[prost(bool, tag="15")]
pub fast_publish: bool,
}
#[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>,
#[prost(message, optional, tag="3")]
pub server_info: ::core::option::Option<ServerInfo>,
#[prost(uint32, tag="4")]
pub last_message_seq: u32,
}
#[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,
#[prost(uint32, tag="3")]
pub id: u32,
#[prost(map="string, string", tag="4")]
pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::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 UpdateDataSubscription {
#[prost(message, repeated, tag="1")]
pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
}
pub mod update_data_subscription {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Update {
#[prost(string, tag="1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(bool, tag="2")]
pub subscribe: bool,
#[prost(message, optional, tag="3")]
pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
}
}
#[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 UpdateLocalAudioTrack {
#[prost(string, tag="1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
pub features: ::prost::alloc::vec::Vec<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateLocalVideoTrack {
#[prost(string, tag="1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(uint32, tag="2")]
pub width: u32,
#[prost(uint32, tag="3")]
pub height: 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,
#[prost(enumeration="leave_request::Action", tag="3")]
pub action: i32,
#[prost(message, optional, tag="4")]
pub regions: ::core::option::Option<RegionSettings>,
}
pub mod leave_request {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Action {
Disconnect = 0,
Resume = 1,
Reconnect = 2,
}
impl Action {
pub fn as_str_name(&self) -> &'static str {
match self {
Action::Disconnect => "DISCONNECT",
Action::Resume => "RESUME",
Action::Reconnect => "RECONNECT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DISCONNECT" => Some(Self::Disconnect),
"RESUME" => Some(Self::Resume),
"RECONNECT" => Some(Self::Reconnect),
_ => None,
}
}
}
}
#[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,
#[prost(map="string, string", tag="3")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(uint32, tag="4")]
pub request_id: u32,
}
#[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,
#[deprecated]
#[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 SubscribedAudioCodecUpdate {
#[prost(string, tag="1")]
pub track_sid: ::prost::alloc::string::String,
#[prost(message, repeated, tag="2")]
pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
}
#[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 RoomMovedResponse {
#[prost(message, optional, tag="1")]
pub room: ::core::option::Option<Room>,
#[prost(string, tag="2")]
pub token: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub participant: ::core::option::Option<ParticipantInfo>,
#[prost(message, repeated, tag="4")]
pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
}
#[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>,
#[prost(string, repeated, tag="6")]
pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag="7")]
pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
#[prost(message, repeated, tag="8")]
pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataChannelReceiveState {
#[prost(string, tag="1")]
pub publisher_sid: ::prost::alloc::string::String,
#[prost(uint32, tag="2")]
pub last_seq: u32,
}
#[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, 7, 8, 9")]
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),
#[prost(bool, tag="7")]
DisconnectSignalOnResume(bool),
#[prost(bool, tag="8")]
DisconnectSignalOnResumeNoMessages(bool),
#[prost(bool, tag="9")]
LeaveRequestFullReconnect(bool),
}
}
#[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,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RequestResponse {
#[prost(uint32, tag="1")]
pub request_id: u32,
#[prost(enumeration="request_response::Reason", tag="2")]
pub reason: i32,
#[prost(string, tag="3")]
pub message: ::prost::alloc::string::String,
#[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
pub request: ::core::option::Option<request_response::Request>,
}
pub mod request_response {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Reason {
Ok = 0,
NotFound = 1,
NotAllowed = 2,
LimitExceeded = 3,
Queued = 4,
UnsupportedType = 5,
UnclassifiedError = 6,
InvalidHandle = 7,
InvalidName = 8,
DuplicateHandle = 9,
DuplicateName = 10,
}
impl Reason {
pub fn as_str_name(&self) -> &'static str {
match self {
Reason::Ok => "OK",
Reason::NotFound => "NOT_FOUND",
Reason::NotAllowed => "NOT_ALLOWED",
Reason::LimitExceeded => "LIMIT_EXCEEDED",
Reason::Queued => "QUEUED",
Reason::UnsupportedType => "UNSUPPORTED_TYPE",
Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
Reason::InvalidHandle => "INVALID_HANDLE",
Reason::InvalidName => "INVALID_NAME",
Reason::DuplicateHandle => "DUPLICATE_HANDLE",
Reason::DuplicateName => "DUPLICATE_NAME",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OK" => Some(Self::Ok),
"NOT_FOUND" => Some(Self::NotFound),
"NOT_ALLOWED" => Some(Self::NotAllowed),
"LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
"QUEUED" => Some(Self::Queued),
"UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
"UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
"INVALID_HANDLE" => Some(Self::InvalidHandle),
"INVALID_NAME" => Some(Self::InvalidName),
"DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
"DUPLICATE_NAME" => Some(Self::DuplicateName),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Request {
#[prost(message, tag="4")]
Trickle(super::TrickleRequest),
#[prost(message, tag="5")]
AddTrack(super::AddTrackRequest),
#[prost(message, tag="6")]
Mute(super::MuteTrackRequest),
#[prost(message, tag="7")]
UpdateMetadata(super::UpdateParticipantMetadata),
#[prost(message, tag="8")]
UpdateAudioTrack(super::UpdateLocalAudioTrack),
#[prost(message, tag="9")]
UpdateVideoTrack(super::UpdateLocalVideoTrack),
#[prost(message, tag="10")]
PublishDataTrack(super::PublishDataTrackRequest),
#[prost(message, tag="11")]
UnpublishDataTrack(super::UnpublishDataTrackRequest),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackSubscribed {
#[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 ConnectionSettings {
#[prost(bool, tag="1")]
pub auto_subscribe: bool,
#[prost(bool, tag="2")]
pub adaptive_stream: bool,
#[prost(bool, optional, tag="3")]
pub subscriber_allow_pause: ::core::option::Option<bool>,
#[prost(bool, tag="4")]
pub disable_ice_lite: bool,
#[prost(bool, optional, tag="5")]
pub auto_subscribe_data_track: ::core::option::Option<bool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoinRequest {
#[prost(message, optional, tag="1")]
pub client_info: ::core::option::Option<ClientInfo>,
#[prost(message, optional, tag="2")]
pub connection_settings: ::core::option::Option<ConnectionSettings>,
#[prost(string, tag="3")]
pub metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="4")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(message, repeated, tag="5")]
pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
#[prost(message, optional, tag="6")]
pub publisher_offer: ::core::option::Option<SessionDescription>,
#[prost(bool, tag="7")]
pub reconnect: bool,
#[prost(enumeration="ReconnectReason", tag="8")]
pub reconnect_reason: i32,
#[prost(string, tag="9")]
pub participant_sid: ::prost::alloc::string::String,
#[prost(message, optional, tag="10")]
pub sync_state: ::core::option::Option<SyncState>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WrappedJoinRequest {
#[prost(enumeration="wrapped_join_request::Compression", tag="1")]
pub compression: i32,
#[prost(bytes="vec", tag="2")]
pub join_request: ::prost::alloc::vec::Vec<u8>,
}
pub mod wrapped_join_request {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Compression {
None = 0,
Gzip = 1,
}
impl Compression {
pub fn as_str_name(&self) -> &'static str {
match self {
Compression::None => "NONE",
Compression::Gzip => "GZIP",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NONE" => Some(Self::None),
"GZIP" => Some(Self::Gzip),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MediaSectionsRequirement {
#[prost(uint32, tag="1")]
pub num_audios: u32,
#[prost(uint32, tag="2")]
pub num_videos: u32,
}
#[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 Job {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub dispatch_id: ::prost::alloc::string::String,
#[prost(enumeration="JobType", tag="2")]
pub r#type: i32,
#[prost(message, optional, tag="3")]
pub room: ::core::option::Option<Room>,
#[prost(message, optional, tag="4")]
pub participant: ::core::option::Option<ParticipantInfo>,
#[deprecated]
#[prost(string, tag="5")]
pub namespace: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub metadata: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub agent_name: ::prost::alloc::string::String,
#[prost(message, optional, tag="8")]
pub state: ::core::option::Option<JobState>,
#[prost(bool, tag="10")]
pub enable_recording: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JobState {
#[prost(enumeration="JobStatus", tag="1")]
pub status: i32,
#[prost(string, tag="2")]
pub error: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub started_at: i64,
#[prost(int64, tag="4")]
pub ended_at: i64,
#[prost(int64, tag="5")]
pub updated_at: i64,
#[prost(string, tag="6")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub worker_id: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub agent_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorkerMessage {
#[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
pub message: ::core::option::Option<worker_message::Message>,
}
pub mod worker_message {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Message {
#[prost(message, tag="1")]
Register(super::RegisterWorkerRequest),
#[prost(message, tag="2")]
Availability(super::AvailabilityResponse),
#[prost(message, tag="3")]
UpdateWorker(super::UpdateWorkerStatus),
#[prost(message, tag="4")]
UpdateJob(super::UpdateJobStatus),
#[prost(message, tag="5")]
Ping(super::WorkerPing),
#[prost(message, tag="6")]
SimulateJob(super::SimulateJobRequest),
#[prost(message, tag="7")]
MigrateJob(super::MigrateJobRequest),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServerMessage {
#[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
pub message: ::core::option::Option<server_message::Message>,
}
pub mod server_message {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Message {
#[prost(message, tag="1")]
Register(super::RegisterWorkerResponse),
#[prost(message, tag="2")]
Availability(super::AvailabilityRequest),
#[prost(message, tag="3")]
Assignment(super::JobAssignment),
#[prost(message, tag="5")]
Termination(super::JobTermination),
#[prost(message, tag="4")]
Pong(super::WorkerPong),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimulateJobRequest {
#[prost(enumeration="JobType", tag="1")]
pub r#type: i32,
#[prost(message, optional, tag="2")]
pub room: ::core::option::Option<Room>,
#[prost(message, optional, tag="3")]
pub participant: ::core::option::Option<ParticipantInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorkerPing {
#[prost(int64, tag="1")]
pub timestamp: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorkerPong {
#[prost(int64, tag="1")]
pub last_timestamp: i64,
#[prost(int64, tag="2")]
pub timestamp: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegisterWorkerRequest {
#[prost(enumeration="JobType", tag="1")]
pub r#type: i32,
#[prost(string, tag="8")]
pub agent_name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub version: ::prost::alloc::string::String,
#[prost(uint32, tag="5")]
pub ping_interval: u32,
#[prost(string, optional, tag="6")]
pub namespace: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="7")]
pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegisterWorkerResponse {
#[prost(string, tag="1")]
pub worker_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub server_info: ::core::option::Option<ServerInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MigrateJobRequest {
#[prost(string, repeated, tag="2")]
pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvailabilityRequest {
#[prost(message, optional, tag="1")]
pub job: ::core::option::Option<Job>,
#[prost(bool, tag="2")]
pub resuming: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvailabilityResponse {
#[prost(string, tag="1")]
pub job_id: ::prost::alloc::string::String,
#[prost(bool, tag="2")]
pub available: bool,
#[prost(bool, tag="3")]
pub supports_resume: bool,
#[prost(bool, tag="8")]
pub terminate: bool,
#[prost(string, tag="4")]
pub participant_name: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="7")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateJobStatus {
#[prost(string, tag="1")]
pub job_id: ::prost::alloc::string::String,
#[prost(enumeration="JobStatus", tag="2")]
pub status: i32,
#[prost(string, tag="3")]
pub error: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateWorkerStatus {
#[prost(enumeration="WorkerStatus", optional, tag="1")]
pub status: ::core::option::Option<i32>,
#[prost(float, tag="3")]
pub load: f32,
#[prost(uint32, tag="4")]
pub job_count: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JobAssignment {
#[prost(message, optional, tag="1")]
pub job: ::core::option::Option<Job>,
#[prost(string, optional, tag="2")]
pub url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, tag="3")]
pub token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JobTermination {
#[prost(string, tag="1")]
pub job_id: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum JobType {
JtRoom = 0,
JtPublisher = 1,
JtParticipant = 2,
}
impl JobType {
pub fn as_str_name(&self) -> &'static str {
match self {
JobType::JtRoom => "JT_ROOM",
JobType::JtPublisher => "JT_PUBLISHER",
JobType::JtParticipant => "JT_PARTICIPANT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"JT_ROOM" => Some(Self::JtRoom),
"JT_PUBLISHER" => Some(Self::JtPublisher),
"JT_PARTICIPANT" => Some(Self::JtParticipant),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum WorkerStatus {
WsAvailable = 0,
WsFull = 1,
}
impl WorkerStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
WorkerStatus::WsAvailable => "WS_AVAILABLE",
WorkerStatus::WsFull => "WS_FULL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"WS_AVAILABLE" => Some(Self::WsAvailable),
"WS_FULL" => Some(Self::WsFull),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum JobStatus {
JsPending = 0,
JsRunning = 1,
JsSuccess = 2,
JsFailed = 3,
}
impl JobStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
JobStatus::JsPending => "JS_PENDING",
JobStatus::JsRunning => "JS_RUNNING",
JobStatus::JsSuccess => "JS_SUCCESS",
JobStatus::JsFailed => "JS_FAILED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"JS_PENDING" => Some(Self::JsPending),
"JS_RUNNING" => Some(Self::JsRunning),
"JS_SUCCESS" => Some(Self::JsSuccess),
"JS_FAILED" => Some(Self::JsFailed),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateAgentDispatchRequest {
#[prost(string, tag="1")]
pub agent_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub metadata: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomAgentDispatch {
#[prost(string, tag="1")]
pub agent_name: ::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 DeleteAgentDispatchRequest {
#[prost(string, tag="1")]
pub dispatch_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListAgentDispatchRequest {
#[prost(string, tag="1")]
pub dispatch_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListAgentDispatchResponse {
#[prost(message, repeated, tag="1")]
pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AgentDispatch {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub agent_name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub metadata: ::prost::alloc::string::String,
#[prost(message, optional, tag="5")]
pub state: ::core::option::Option<AgentDispatchState>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AgentDispatchState {
#[prost(message, repeated, tag="1")]
pub jobs: ::prost::alloc::vec::Vec<Job>,
#[prost(int64, tag="2")]
pub created_at: i64,
#[prost(int64, tag="3")]
pub deleted_at: i64,
}
#[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(string, tag="12")]
pub room_preset: ::prost::alloc::string::String,
#[prost(uint32, tag="2")]
pub empty_timeout: u32,
#[prost(uint32, tag="10")]
pub departure_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>,
#[prost(uint32, tag="7")]
pub min_playout_delay: u32,
#[prost(uint32, tag="8")]
pub max_playout_delay: u32,
#[prost(bool, tag="9")]
pub sync_streams: bool,
#[prost(bool, tag="13")]
pub replay_enabled: bool,
#[prost(message, repeated, tag="14")]
pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
}
#[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="3")]
pub participant: ::core::option::Option<AutoParticipantEgress>,
#[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 RoomAgent {
#[prost(message, repeated, tag="1")]
pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
}
#[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,
#[prost(map="string, string", tag="6")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::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,
#[deprecated]
#[prost(string, repeated, tag="4")]
pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="6")]
pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag="5")]
pub topic: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bytes="vec", tag="7")]
pub nonce: ::prost::alloc::vec::Vec<u8>,
}
#[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 RoomConfiguration {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(uint32, tag="2")]
pub empty_timeout: u32,
#[prost(uint32, tag="3")]
pub departure_timeout: u32,
#[prost(uint32, tag="4")]
pub max_participants: u32,
#[prost(string, tag="11")]
pub metadata: ::prost::alloc::string::String,
#[prost(message, optional, tag="5")]
pub egress: ::core::option::Option<RoomEgress>,
#[prost(uint32, tag="7")]
pub min_playout_delay: u32,
#[prost(uint32, tag="8")]
pub max_playout_delay: u32,
#[prost(bool, tag="9")]
pub sync_streams: bool,
#[prost(message, repeated, tag="10")]
pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ForwardParticipantRequest {
#[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 destination_room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ForwardParticipantResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MoveParticipantRequest {
#[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 destination_room: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MoveParticipantResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PerformRpcRequest {
#[prost(string, tag="1")]
pub room: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub destination_identity: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub method: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub payload: ::prost::alloc::string::String,
#[prost(uint32, tag="5")]
pub response_timeout_ms: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PerformRpcResponse {
#[prost(string, tag="1")]
pub payload: ::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="9")]
pub url: ::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(string, tag="10")]
pub participant_metadata: ::prost::alloc::string::String,
#[deprecated]
#[prost(bool, tag="8")]
pub bypass_transcoding: bool,
#[prost(bool, optional, tag="11")]
pub enable_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>,
#[prost(bool, optional, tag="12")]
pub enabled: ::core::option::Option<bool>,
}
#[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,
#[deprecated]
#[prost(bool, tag="13")]
pub bypass_transcoding: bool,
#[prost(bool, optional, tag="15")]
pub enable_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>,
#[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(string, tag="14")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(bool, tag="11")]
pub reusable: bool,
#[prost(message, optional, tag="12")]
pub state: ::core::option::Option<IngressState>,
#[prost(bool, optional, tag="16")]
pub enabled: ::core::option::Option<bool>,
}
#[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(int64, tag="10")]
pub updated_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,
EndpointComplete = 4,
}
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",
Status::EndpointComplete => "ENDPOINT_COMPLETE",
}
}
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),
"ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
_ => 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="2")]
pub average_bitrate: u32,
#[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="2")]
pub average_bitrate: u32,
#[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(string, tag="9")]
pub participant_metadata: ::prost::alloc::string::String,
#[deprecated]
#[prost(bool, optional, tag="8")]
pub bypass_transcoding: ::core::option::Option<bool>,
#[prost(bool, optional, tag="10")]
pub enable_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>,
#[prost(bool, optional, tag="11")]
pub enabled: ::core::option::Option<bool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListIngressRequest {
#[prost(message, optional, tag="3")]
pub page_token: ::core::option::Option<TokenPagination>,
#[prost(string, tag="1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub ingress_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListIngressResponse {
#[prost(message, optional, tag="2")]
pub next_page_token: ::core::option::Option<TokenPagination>,
#[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,
UrlInput = 2,
}
impl IngressInput {
pub fn as_str_name(&self) -> &'static str {
match self {
IngressInput::RtmpInput => "RTMP_INPUT",
IngressInput::WhipInput => "WHIP_INPUT",
IngressInput::UrlInput => "URL_INPUT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RTMP_INPUT" => Some(Self::RtmpInput),
"WHIP_INPUT" => Some(Self::WhipInput),
"URL_INPUT" => Some(Self::UrlInput),
_ => 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,
H264720p30fps3LayersHighMotion = 5,
H2641080p30fps3LayersHighMotion = 6,
H264540p25fps2LayersHighMotion = 7,
H264720p30fps1LayerHighMotion = 8,
H2641080p30fps1LayerHighMotion = 9,
}
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",
IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
}
}
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),
"H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
"H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
"H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
"H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
"H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
_ => 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,
#[deprecated]
#[prost(int32, tag="11")]
pub num_dropped: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipStatus {
#[prost(enumeration="SipStatusCode", tag="1")]
pub code: i32,
#[prost(string, tag="2")]
pub status: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSipTrunkRequest {
#[prost(string, repeated, tag="1")]
pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="2")]
pub outbound_address: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub outbound_number: ::prost::alloc::string::String,
#[deprecated]
#[prost(string, repeated, tag="4")]
pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="9")]
pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="5")]
pub inbound_username: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub inbound_password: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub outbound_username: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub outbound_password: ::prost::alloc::string::String,
#[prost(string, tag="10")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="11")]
pub metadata: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProviderInfo {
#[prost(string, tag="1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration="ProviderType", tag="3")]
pub r#type: i32,
#[prost(bool, tag="4")]
pub prevent_transfer: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipTrunkInfo {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
pub kind: i32,
#[prost(string, repeated, tag="2")]
pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="3")]
pub outbound_address: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub outbound_number: ::prost::alloc::string::String,
#[prost(enumeration="SipTransport", tag="13")]
pub transport: i32,
#[deprecated]
#[prost(string, repeated, tag="5")]
pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="10")]
pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="6")]
pub inbound_username: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub inbound_password: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub outbound_username: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub outbound_password: ::prost::alloc::string::String,
#[prost(string, tag="11")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="12")]
pub metadata: ::prost::alloc::string::String,
}
pub mod sip_trunk_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrunkKind {
TrunkLegacy = 0,
TrunkInbound = 1,
TrunkOutbound = 2,
}
impl TrunkKind {
pub fn as_str_name(&self) -> &'static str {
match self {
TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
TrunkKind::TrunkInbound => "TRUNK_INBOUND",
TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRUNK_LEGACY" => Some(Self::TrunkLegacy),
"TRUNK_INBOUND" => Some(Self::TrunkInbound),
"TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSipInboundTrunkRequest {
#[prost(message, optional, tag="1")]
pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSipInboundTrunkRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
}
pub mod update_sip_inbound_trunk_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Action {
#[prost(message, tag="2")]
Replace(super::SipInboundTrunkInfo),
#[prost(message, tag="3")]
Update(super::SipInboundTrunkUpdate),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipInboundTrunkInfo {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub metadata: ::prost::alloc::string::String,
#[prost(string, repeated, tag="4")]
pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="5")]
pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="6")]
pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="7")]
pub auth_username: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub auth_password: ::prost::alloc::string::String,
#[prost(map="string, string", tag="9")]
pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="10")]
pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="14")]
pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(enumeration="SipHeaderOptions", tag="15")]
pub include_headers: i32,
#[prost(message, optional, tag="11")]
pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
#[prost(message, optional, tag="12")]
pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
#[prost(bool, tag="13")]
pub krisp_enabled: bool,
#[prost(enumeration="SipMediaEncryption", tag="16")]
pub media_encryption: i32,
#[prost(message, optional, tag="17")]
pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="18")]
pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipInboundTrunkUpdate {
#[prost(message, optional, tag="1")]
pub numbers: ::core::option::Option<ListUpdate>,
#[prost(message, optional, tag="2")]
pub allowed_addresses: ::core::option::Option<ListUpdate>,
#[prost(message, optional, tag="3")]
pub allowed_numbers: ::core::option::Option<ListUpdate>,
#[prost(string, optional, tag="4")]
pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="5")]
pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="6")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="7")]
pub metadata: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration="SipMediaEncryption", optional, tag="8")]
pub media_encryption: ::core::option::Option<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSipOutboundTrunkRequest {
#[prost(message, optional, tag="1")]
pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSipOutboundTrunkRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
}
pub mod update_sip_outbound_trunk_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Action {
#[prost(message, tag="2")]
Replace(super::SipOutboundTrunkInfo),
#[prost(message, tag="3")]
Update(super::SipOutboundTrunkUpdate),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipOutboundTrunkInfo {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub metadata: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub address: ::prost::alloc::string::String,
#[prost(string, tag="14")]
pub destination_country: ::prost::alloc::string::String,
#[prost(enumeration="SipTransport", tag="5")]
pub transport: i32,
#[prost(string, repeated, tag="6")]
pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="7")]
pub auth_username: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub auth_password: ::prost::alloc::string::String,
#[prost(map="string, string", tag="9")]
pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="10")]
pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="11")]
pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(enumeration="SipHeaderOptions", tag="12")]
pub include_headers: i32,
#[prost(enumeration="SipMediaEncryption", tag="13")]
pub media_encryption: i32,
#[prost(string, tag="15")]
pub from_host: ::prost::alloc::string::String,
#[prost(message, optional, tag="16")]
pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="17")]
pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipOutboundTrunkUpdate {
#[prost(string, optional, tag="1")]
pub address: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration="SipTransport", optional, tag="2")]
pub transport: ::core::option::Option<i32>,
#[prost(string, optional, tag="9")]
pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="3")]
pub numbers: ::core::option::Option<ListUpdate>,
#[prost(string, optional, tag="4")]
pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="5")]
pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="6")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="7")]
pub metadata: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration="SipMediaEncryption", optional, tag="8")]
pub media_encryption: ::core::option::Option<i32>,
#[prost(string, optional, tag="10")]
pub from_host: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSipInboundTrunkRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSipInboundTrunkResponse {
#[prost(message, optional, tag="1")]
pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSipOutboundTrunkRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSipOutboundTrunkResponse {
#[prost(message, optional, tag="1")]
pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipTrunkRequest {
#[prost(message, optional, tag="1")]
pub page: ::core::option::Option<Pagination>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipTrunkResponse {
#[prost(message, repeated, tag="1")]
pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipInboundTrunkRequest {
#[prost(message, optional, tag="3")]
pub page: ::core::option::Option<Pagination>,
#[prost(string, repeated, tag="1")]
pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipInboundTrunkResponse {
#[prost(message, repeated, tag="1")]
pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipOutboundTrunkRequest {
#[prost(message, optional, tag="3")]
pub page: ::core::option::Option<Pagination>,
#[prost(string, repeated, tag="1")]
pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipOutboundTrunkResponse {
#[prost(message, repeated, tag="1")]
pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteSipTrunkRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRuleDirect {
#[prost(string, tag="1")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub pin: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRuleIndividual {
#[prost(string, tag="1")]
pub room_prefix: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub pin: ::prost::alloc::string::String,
#[prost(bool, tag="3")]
pub no_randomness: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRuleCallee {
#[prost(string, tag="1")]
pub room_prefix: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub pin: ::prost::alloc::string::String,
#[prost(bool, tag="3")]
pub randomize: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRule {
#[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
}
pub mod sip_dispatch_rule {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Rule {
#[prost(message, tag="1")]
DispatchRuleDirect(super::SipDispatchRuleDirect),
#[prost(message, tag="2")]
DispatchRuleIndividual(super::SipDispatchRuleIndividual),
#[prost(message, tag="3")]
DispatchRuleCallee(super::SipDispatchRuleCallee),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSipDispatchRuleRequest {
#[prost(message, optional, tag="10")]
pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
#[deprecated]
#[prost(message, optional, tag="1")]
pub rule: ::core::option::Option<SipDispatchRule>,
#[deprecated]
#[prost(string, repeated, tag="2")]
pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[deprecated]
#[prost(bool, tag="3")]
pub hide_phone_number: bool,
#[deprecated]
#[prost(string, repeated, tag="6")]
pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[deprecated]
#[prost(string, tag="4")]
pub name: ::prost::alloc::string::String,
#[deprecated]
#[prost(string, tag="5")]
pub metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="7")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[deprecated]
#[prost(string, tag="8")]
pub room_preset: ::prost::alloc::string::String,
#[deprecated]
#[prost(message, optional, tag="9")]
pub room_config: ::core::option::Option<RoomConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateSipDispatchRuleRequest {
#[prost(string, tag="1")]
pub sip_dispatch_rule_id: ::prost::alloc::string::String,
#[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
}
pub mod update_sip_dispatch_rule_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Action {
#[prost(message, tag="2")]
Replace(super::SipDispatchRuleInfo),
#[prost(message, tag="3")]
Update(super::SipDispatchRuleUpdate),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRuleInfo {
#[prost(string, tag="1")]
pub sip_dispatch_rule_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub rule: ::core::option::Option<SipDispatchRule>,
#[prost(string, repeated, tag="3")]
pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag="4")]
pub hide_phone_number: bool,
#[prost(string, repeated, tag="7")]
pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="13")]
pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="5")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="8")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="9")]
pub room_preset: ::prost::alloc::string::String,
#[prost(message, optional, tag="10")]
pub room_config: ::core::option::Option<RoomConfiguration>,
#[prost(bool, tag="11")]
pub krisp_enabled: bool,
#[prost(enumeration="SipMediaEncryption", tag="12")]
pub media_encryption: i32,
#[prost(message, optional, tag="14")]
pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag="15")]
pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipDispatchRuleUpdate {
#[prost(message, optional, tag="1")]
pub trunk_ids: ::core::option::Option<ListUpdate>,
#[prost(message, optional, tag="2")]
pub rule: ::core::option::Option<SipDispatchRule>,
#[prost(string, optional, tag="3")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="4")]
pub metadata: ::core::option::Option<::prost::alloc::string::String>,
#[prost(map="string, string", tag="5")]
pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(enumeration="SipMediaEncryption", optional, tag="6")]
pub media_encryption: ::core::option::Option<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipDispatchRuleRequest {
#[prost(message, optional, tag="3")]
pub page: ::core::option::Option<Pagination>,
#[prost(string, repeated, tag="1")]
pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSipDispatchRuleResponse {
#[prost(message, repeated, tag="1")]
pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteSipDispatchRuleRequest {
#[prost(string, tag="1")]
pub sip_dispatch_rule_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipOutboundConfig {
#[prost(string, tag="1")]
pub hostname: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub destination_country: ::prost::alloc::string::String,
#[prost(enumeration="SipTransport", tag="2")]
pub transport: i32,
#[prost(string, tag="3")]
pub auth_username: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub auth_password: ::prost::alloc::string::String,
#[prost(map="string, string", tag="5")]
pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="6")]
pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="8")]
pub from_host: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSipParticipantRequest {
#[prost(string, tag="1")]
pub sip_trunk_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="20")]
pub trunk: ::core::option::Option<SipOutboundConfig>,
#[prost(string, tag="2")]
pub sip_call_to: ::prost::alloc::string::String,
#[prost(string, tag="15")]
pub sip_number: ::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="7")]
pub participant_name: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="9")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="5")]
pub dtmf: ::prost::alloc::string::String,
#[deprecated]
#[prost(bool, tag="6")]
pub play_ringtone: bool,
#[prost(bool, tag="13")]
pub play_dialtone: bool,
#[prost(bool, tag="10")]
pub hide_phone_number: bool,
#[prost(map="string, string", tag="16")]
pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(enumeration="SipHeaderOptions", tag="17")]
pub include_headers: i32,
#[prost(message, optional, tag="11")]
pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
#[prost(message, optional, tag="12")]
pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
#[prost(bool, tag="14")]
pub krisp_enabled: bool,
#[prost(enumeration="SipMediaEncryption", tag="18")]
pub media_encryption: i32,
#[prost(bool, tag="19")]
pub wait_until_answered: bool,
#[prost(string, optional, tag="21")]
pub display_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="22")]
pub destination: ::core::option::Option<Destination>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipParticipantInfo {
#[prost(string, tag="1")]
pub participant_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub sip_call_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferSipParticipantRequest {
#[prost(string, tag="1")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub transfer_to: ::prost::alloc::string::String,
#[prost(bool, tag="4")]
pub play_dialtone: bool,
#[prost(map="string, string", tag="5")]
pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(message, optional, tag="6")]
pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipCallInfo {
#[prost(string, tag="1")]
pub call_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub trunk_id: ::prost::alloc::string::String,
#[prost(string, tag="16")]
pub dispatch_rule_id: ::prost::alloc::string::String,
#[prost(string, tag="17")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub room_name: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub room_id: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(map="string, string", tag="18")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(message, optional, tag="6")]
pub from_uri: ::core::option::Option<SipUri>,
#[prost(message, optional, tag="7")]
pub to_uri: ::core::option::Option<SipUri>,
#[deprecated]
#[prost(int64, tag="9")]
pub created_at: i64,
#[deprecated]
#[prost(int64, tag="10")]
pub started_at: i64,
#[deprecated]
#[prost(int64, tag="11")]
pub ended_at: i64,
#[prost(enumeration="SipFeature", repeated, tag="14")]
pub enabled_features: ::prost::alloc::vec::Vec<i32>,
#[prost(enumeration="SipCallDirection", tag="15")]
pub call_direction: i32,
#[prost(enumeration="SipCallStatus", tag="8")]
pub call_status: i32,
#[prost(int64, tag="22")]
pub created_at_ns: i64,
#[prost(int64, tag="23")]
pub started_at_ns: i64,
#[prost(int64, tag="24")]
pub ended_at_ns: i64,
#[prost(enumeration="DisconnectReason", tag="12")]
pub disconnect_reason: i32,
#[prost(string, tag="13")]
pub error: ::prost::alloc::string::String,
#[prost(message, optional, tag="19")]
pub call_status_code: ::core::option::Option<SipStatus>,
#[prost(string, tag="20")]
pub audio_codec: ::prost::alloc::string::String,
#[prost(string, tag="21")]
pub media_encryption: ::prost::alloc::string::String,
#[prost(string, tag="25")]
pub pcap_file_link: ::prost::alloc::string::String,
#[prost(message, repeated, tag="26")]
pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
#[prost(message, optional, tag="27")]
pub provider_info: ::core::option::Option<ProviderInfo>,
#[prost(string, tag="28")]
pub sip_call_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipTransferInfo {
#[prost(string, tag="1")]
pub transfer_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub call_id: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub transfer_to: ::prost::alloc::string::String,
#[prost(int64, tag="4")]
pub transfer_initiated_at_ns: i64,
#[prost(int64, tag="5")]
pub transfer_completed_at_ns: i64,
#[prost(enumeration="SipTransferStatus", tag="6")]
pub transfer_status: i32,
#[prost(string, tag="7")]
pub error: ::prost::alloc::string::String,
#[prost(message, optional, tag="8")]
pub transfer_status_code: ::core::option::Option<SipStatus>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SipUri {
#[prost(string, tag="1")]
pub user: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub host: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub ip: ::prost::alloc::string::String,
#[prost(uint32, tag="4")]
pub port: u32,
#[prost(enumeration="SipTransport", tag="5")]
pub transport: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Destination {
#[prost(string, tag="1")]
pub city: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub country: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub region: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipStatusCode {
SipStatusUnknown = 0,
SipStatusTrying = 100,
SipStatusRinging = 180,
SipStatusCallIsForwarded = 181,
SipStatusQueued = 182,
SipStatusSessionProgress = 183,
SipStatusEarlyDialogTerminated = 199,
SipStatusOk = 200,
SipStatusAccepted = 202,
SipStatusNoNotification = 204,
SipStatusMultipleChoices = 300,
SipStatusMovedPermanently = 301,
SipStatusMovedTemporarily = 302,
SipStatusUseProxy = 305,
SipStatusAlternativeService = 380,
SipStatusBadRequest = 400,
SipStatusUnauthorized = 401,
SipStatusPaymentRequired = 402,
SipStatusForbidden = 403,
SipStatusNotfound = 404,
SipStatusMethodNotAllowed = 405,
SipStatusNotAcceptable = 406,
SipStatusProxyAuthRequired = 407,
SipStatusRequestTimeout = 408,
SipStatusConflict = 409,
SipStatusGone = 410,
SipStatusLengthRequired = 411,
SipStatusConditionalRequestFailed = 412,
SipStatusRequestEntityTooLarge = 413,
SipStatusRequestUriTooLong = 414,
SipStatusUnsupportedMediaType = 415,
SipStatusRequestedRangeNotSatisfiable = 416,
SipStatusUnknownResourcePriority = 417,
SipStatusBadExtension = 420,
SipStatusExtensionRequired = 421,
SipStatusSessionIntervalTooSmall = 422,
SipStatusIntervalTooBrief = 423,
SipStatusBadLocationInformation = 424,
SipStatusBadAlertMessage = 425,
SipStatusUseIdentityHeader = 428,
SipStatusProvideReferrerIdentity = 429,
SipStatusFlowFailed = 430,
SipStatusAnonymityDisallowed = 433,
SipStatusBadIdentityInfo = 436,
SipStatusUnsupportedCertificate = 437,
SipStatusInvalidIdentityHeader = 438,
SipStatusFirstHopLacksOutboundSupport = 439,
SipStatusMaxBreadthExceeded = 440,
SipStatusBadInfoPackage = 469,
SipStatusConsentNeeded = 470,
SipStatusTemporarilyUnavailable = 480,
SipStatusCallTransactionDoesNotExists = 481,
SipStatusLoopDetected = 482,
SipStatusTooManyHops = 483,
SipStatusAddressIncomplete = 484,
SipStatusAmbiguous = 485,
SipStatusBusyHere = 486,
SipStatusRequestTerminated = 487,
SipStatusNotAcceptableHere = 488,
SipStatusBadEvent = 489,
SipStatusRequestPending = 491,
SipStatusUndecipherable = 493,
SipStatusSecurityAgreementRequired = 494,
SipStatusInternalServerError = 500,
SipStatusNotImplemented = 501,
SipStatusBadGateway = 502,
SipStatusServiceUnavailable = 503,
SipStatusGatewayTimeout = 504,
SipStatusVersionNotSupported = 505,
SipStatusMessageTooLarge = 513,
SipStatusGlobalBusyEverywhere = 600,
SipStatusGlobalDecline = 603,
SipStatusGlobalDoesNotExistAnywhere = 604,
SipStatusGlobalNotAcceptable = 606,
SipStatusGlobalUnwanted = 607,
SipStatusGlobalRejected = 608,
}
impl SipStatusCode {
pub fn as_str_name(&self) -> &'static str {
match self {
SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
"SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
"SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
"SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
"SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
"SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
"SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
"SIP_STATUS_OK" => Some(Self::SipStatusOk),
"SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
"SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
"SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
"SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
"SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
"SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
"SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
"SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
"SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
"SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
"SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
"SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
"SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
"SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
"SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
"SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
"SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
"SIP_STATUS_GONE" => Some(Self::SipStatusGone),
"SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
"SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
"SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
"SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
"SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
"SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
"SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
"SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
"SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
"SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
"SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
"SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
"SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
"SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
"SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
"SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
"SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
"SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
"SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
"SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
"SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
"SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
"SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
"SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
"SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
"SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
"SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
"SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
"SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
"SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
"SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
"SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
"SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
"SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
"SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
"SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
"SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
"SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
"SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
"SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
"SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
"SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
"SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
"SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
"SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
"SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
"SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
"SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
"SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
"SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipTransport {
Auto = 0,
Udp = 1,
Tcp = 2,
Tls = 3,
}
impl SipTransport {
pub fn as_str_name(&self) -> &'static str {
match self {
SipTransport::Auto => "SIP_TRANSPORT_AUTO",
SipTransport::Udp => "SIP_TRANSPORT_UDP",
SipTransport::Tcp => "SIP_TRANSPORT_TCP",
SipTransport::Tls => "SIP_TRANSPORT_TLS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SIP_TRANSPORT_AUTO" => Some(Self::Auto),
"SIP_TRANSPORT_UDP" => Some(Self::Udp),
"SIP_TRANSPORT_TCP" => Some(Self::Tcp),
"SIP_TRANSPORT_TLS" => Some(Self::Tls),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipHeaderOptions {
SipNoHeaders = 0,
SipXHeaders = 1,
SipAllHeaders = 2,
}
impl SipHeaderOptions {
pub fn as_str_name(&self) -> &'static str {
match self {
SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
"SIP_X_HEADERS" => Some(Self::SipXHeaders),
"SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipMediaEncryption {
SipMediaEncryptDisable = 0,
SipMediaEncryptAllow = 1,
SipMediaEncryptRequire = 2,
}
impl SipMediaEncryption {
pub fn as_str_name(&self) -> &'static str {
match self {
SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
"SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
"SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ProviderType {
Unknown = 0,
Internal = 1,
External = 2,
}
impl ProviderType {
pub fn as_str_name(&self) -> &'static str {
match self {
ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
"PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
"PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipCallStatus {
ScsCallIncoming = 0,
ScsParticipantJoined = 1,
ScsActive = 2,
ScsDisconnected = 3,
ScsError = 4,
}
impl SipCallStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
SipCallStatus::ScsActive => "SCS_ACTIVE",
SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
SipCallStatus::ScsError => "SCS_ERROR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
"SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
"SCS_ACTIVE" => Some(Self::ScsActive),
"SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
"SCS_ERROR" => Some(Self::ScsError),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipTransferStatus {
StsTransferOngoing = 0,
StsTransferFailed = 1,
StsTransferSuccessful = 2,
}
impl SipTransferStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
"STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
"STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipFeature {
None = 0,
KrispEnabled = 1,
}
impl SipFeature {
pub fn as_str_name(&self) -> &'static str {
match self {
SipFeature::None => "NONE",
SipFeature::KrispEnabled => "KRISP_ENABLED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NONE" => Some(Self::None),
"KRISP_ENABLED" => Some(Self::KrispEnabled),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SipCallDirection {
ScdUnknown = 0,
ScdInbound = 1,
ScdOutbound = 2,
}
impl SipCallDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
SipCallDirection::ScdInbound => "SCD_INBOUND",
SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SCD_UNKNOWN" => Some(Self::ScdUnknown),
"SCD_INBOUND" => Some(Self::ScdInbound),
"SCD_OUTBOUND" => Some(Self::ScdOutbound),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DialWhatsAppCallRequest {
#[prost(string, tag="1")]
pub whatsapp_phone_number_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub whatsapp_to_phone_number: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub whatsapp_api_key: ::prost::alloc::string::String,
#[prost(string, tag="12")]
pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub room_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag="6")]
pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
#[prost(string, tag="7")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub participant_name: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="10")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="11")]
pub destination_country: ::prost::alloc::string::String,
#[prost(message, optional, tag="13")]
pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DialWhatsAppCallResponse {
#[prost(string, tag="1")]
pub whatsapp_call_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub room_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DisconnectWhatsAppCallRequest {
#[prost(string, tag="1")]
pub whatsapp_call_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub whatsapp_api_key: ::prost::alloc::string::String,
#[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
pub disconnect_reason: i32,
}
pub mod disconnect_whats_app_call_request {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DisconnectReason {
BusinessInitiated = 0,
UserInitiated = 1,
}
impl DisconnectReason {
pub fn as_str_name(&self) -> &'static str {
match self {
DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
DisconnectReason::UserInitiated => "USER_INITIATED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
"USER_INITIATED" => Some(Self::UserInitiated),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DisconnectWhatsAppCallResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectWhatsAppCallRequest {
#[prost(string, tag="1")]
pub whatsapp_call_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub sdp: ::core::option::Option<SessionDescription>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectWhatsAppCallResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AcceptWhatsAppCallRequest {
#[prost(string, tag="1")]
pub whatsapp_phone_number_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub whatsapp_api_key: ::prost::alloc::string::String,
#[prost(string, tag="13")]
pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub whatsapp_call_id: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
#[prost(message, optional, tag="5")]
pub sdp: ::core::option::Option<SessionDescription>,
#[prost(string, tag="6")]
pub room_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag="7")]
pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
#[prost(string, tag="8")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub participant_name: ::prost::alloc::string::String,
#[prost(string, tag="10")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="11")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="12")]
pub destination_country: ::prost::alloc::string::String,
#[prost(message, optional, tag="14")]
pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
#[prost(bool, tag="15")]
pub wait_until_answered: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AcceptWhatsAppCallResponse {
#[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 WhatsAppCall {
#[prost(string, tag="1")]
pub whatsapp_call_id: ::prost::alloc::string::String,
#[prost(enumeration="WhatsAppCallDirection", tag="2")]
pub direction: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum WhatsAppCallDirection {
WhatsappCallDirectionInbound = 0,
WhatsappCallDirectionOutbound = 2,
}
impl WhatsAppCallDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
"WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectTwilioCallRequest {
#[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
pub twilio_call_direction: i32,
#[prost(string, tag="2")]
pub room_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag="3")]
pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
#[prost(string, tag="4")]
pub participant_identity: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub participant_name: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub participant_metadata: ::prost::alloc::string::String,
#[prost(map="string, string", tag="7")]
pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, tag="8")]
pub destination_country: ::prost::alloc::string::String,
}
pub mod connect_twilio_call_request {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TwilioCallDirection {
Inbound = 0,
Outbound = 1,
}
impl TwilioCallDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
"TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConnectTwilioCallResponse {
#[prost(string, tag="1")]
pub connect_url: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ConnectorType {
Unspecified = 0,
WhatsApp = 1,
Twilio = 2,
}
impl ConnectorType {
pub fn as_str_name(&self) -> &'static str {
match self {
ConnectorType::Unspecified => "Unspecified",
ConnectorType::WhatsApp => "WhatsApp",
ConnectorType::Twilio => "Twilio",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Unspecified" => Some(Self::Unspecified),
"WhatsApp" => Some(Self::WhatsApp),
"Twilio" => Some(Self::Twilio),
_ => None,
}
}
}
include!("livekit.serde.rs");