1#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct MetricsBatch {
6 #[prost(int64, tag="1")]
8 pub timestamp_ms: i64,
9 #[prost(message, optional, tag="2")]
10 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
11 #[prost(string, repeated, tag="3")]
18 pub str_data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
19 #[prost(message, repeated, tag="4")]
20 pub time_series: ::prost::alloc::vec::Vec<TimeSeriesMetric>,
21 #[prost(message, repeated, tag="5")]
22 pub events: ::prost::alloc::vec::Vec<EventMetric>,
23}
24#[allow(clippy::derive_partial_eq_without_eq)]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct TimeSeriesMetric {
27 #[prost(uint32, tag="1")]
30 pub label: u32,
31 #[prost(uint32, tag="2")]
33 pub participant_identity: u32,
34 #[prost(uint32, tag="3")]
36 pub track_sid: u32,
37 #[prost(message, repeated, tag="4")]
38 pub samples: ::prost::alloc::vec::Vec<MetricSample>,
39 #[prost(uint32, tag="5")]
41 pub rid: u32,
42}
43#[allow(clippy::derive_partial_eq_without_eq)]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct MetricSample {
46 #[prost(int64, tag="1")]
48 pub timestamp_ms: i64,
49 #[prost(message, optional, tag="2")]
50 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
51 #[prost(float, tag="3")]
52 pub value: f32,
53}
54#[allow(clippy::derive_partial_eq_without_eq)]
55#[derive(Clone, PartialEq, ::prost::Message)]
56pub struct EventMetric {
57 #[prost(uint32, tag="1")]
58 pub label: u32,
59 #[prost(uint32, tag="2")]
61 pub participant_identity: u32,
62 #[prost(uint32, tag="3")]
64 pub track_sid: u32,
65 #[prost(int64, tag="4")]
67 pub start_timestamp_ms: i64,
68 #[prost(int64, optional, tag="5")]
70 pub end_timestamp_ms: ::core::option::Option<i64>,
71 #[prost(message, optional, tag="6")]
72 pub normalized_start_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
73 #[prost(message, optional, tag="7")]
74 pub normalized_end_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
75 #[prost(string, tag="8")]
76 pub metadata: ::prost::alloc::string::String,
77 #[prost(uint32, tag="9")]
79 pub rid: u32,
80}
81#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
91#[repr(i32)]
92pub enum MetricLabel {
93 AgentsLlmTtft = 0,
95 AgentsSttTtft = 1,
97 AgentsTtsTtfb = 2,
99 ClientVideoSubscriberFreezeCount = 3,
101 ClientVideoSubscriberTotalFreezeDuration = 4,
103 ClientVideoSubscriberPauseCount = 5,
105 ClientVideoSubscriberTotalPausesDuration = 6,
107 ClientAudioSubscriberConcealedSamples = 7,
109 ClientAudioSubscriberSilentConcealedSamples = 8,
111 ClientAudioSubscriberConcealmentEvents = 9,
113 ClientAudioSubscriberInterruptionCount = 10,
115 ClientAudioSubscriberTotalInterruptionDuration = 11,
117 ClientSubscriberJitterBufferDelay = 12,
119 ClientSubscriberJitterBufferEmittedCount = 13,
121 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
123 ClientVideoPublisherQualityLimitationDurationCpu = 15,
125 ClientVideoPublisherQualityLimitationDurationOther = 16,
127 PublisherRtt = 17,
129 ServerMeshRtt = 18,
131 SubscriberRtt = 19,
133 PredefinedMaxValue = 4096,
134}
135impl MetricLabel {
136 pub fn as_str_name(&self) -> &'static str {
141 match self {
142 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
143 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
144 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
145 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
146 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
147 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
148 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
149 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
150 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
151 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
152 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
153 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
154 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
155 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
156 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
157 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
158 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
159 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
160 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
161 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
162 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
163 }
164 }
165 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
167 match value {
168 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
169 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
170 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
171 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
172 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
173 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
174 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
175 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
176 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
177 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
178 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
179 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
180 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
181 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
182 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
183 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
184 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
185 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
186 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
187 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
188 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
189 _ => None,
190 }
191 }
192}
193#[allow(clippy::derive_partial_eq_without_eq)]
194#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct Pagination {
196 #[prost(string, tag="1")]
198 pub after_id: ::prost::alloc::string::String,
199 #[prost(int32, tag="2")]
200 pub limit: i32,
201}
202#[allow(clippy::derive_partial_eq_without_eq)]
204#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct ListUpdate {
206 #[prost(string, repeated, tag="1")]
208 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
209}
210#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct Room {
213 #[prost(string, tag="1")]
214 pub sid: ::prost::alloc::string::String,
215 #[prost(string, tag="2")]
216 pub name: ::prost::alloc::string::String,
217 #[prost(uint32, tag="3")]
218 pub empty_timeout: u32,
219 #[prost(uint32, tag="14")]
220 pub departure_timeout: u32,
221 #[prost(uint32, tag="4")]
222 pub max_participants: u32,
223 #[prost(int64, tag="5")]
224 pub creation_time: i64,
225 #[prost(int64, tag="15")]
226 pub creation_time_ms: i64,
227 #[prost(string, tag="6")]
228 pub turn_password: ::prost::alloc::string::String,
229 #[prost(message, repeated, tag="7")]
230 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
231 #[prost(string, tag="8")]
232 pub metadata: ::prost::alloc::string::String,
233 #[prost(uint32, tag="9")]
234 pub num_participants: u32,
235 #[prost(uint32, tag="11")]
236 pub num_publishers: u32,
237 #[prost(bool, tag="10")]
238 pub active_recording: bool,
239 #[prost(message, optional, tag="13")]
240 pub version: ::core::option::Option<TimedVersion>,
241}
242#[allow(clippy::derive_partial_eq_without_eq)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct Codec {
245 #[prost(string, tag="1")]
246 pub mime: ::prost::alloc::string::String,
247 #[prost(string, tag="2")]
248 pub fmtp_line: ::prost::alloc::string::String,
249}
250#[allow(clippy::derive_partial_eq_without_eq)]
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct PlayoutDelay {
253 #[prost(bool, tag="1")]
254 pub enabled: bool,
255 #[prost(uint32, tag="2")]
256 pub min: u32,
257 #[prost(uint32, tag="3")]
258 pub max: u32,
259}
260#[allow(clippy::derive_partial_eq_without_eq)]
261#[derive(Clone, PartialEq, ::prost::Message)]
262pub struct ParticipantPermission {
263 #[prost(bool, tag="1")]
265 pub can_subscribe: bool,
266 #[prost(bool, tag="2")]
268 pub can_publish: bool,
269 #[prost(bool, tag="3")]
271 pub can_publish_data: bool,
272 #[prost(enumeration="TrackSource", repeated, tag="9")]
274 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
275 #[prost(bool, tag="7")]
277 pub hidden: bool,
278 #[deprecated]
281 #[prost(bool, tag="8")]
282 pub recorder: bool,
283 #[prost(bool, tag="10")]
285 pub can_update_metadata: bool,
286 #[deprecated]
289 #[prost(bool, tag="11")]
290 pub agent: bool,
291 #[prost(bool, tag="12")]
293 pub can_subscribe_metrics: bool,
294}
295#[allow(clippy::derive_partial_eq_without_eq)]
296#[derive(Clone, PartialEq, ::prost::Message)]
297pub struct ParticipantInfo {
298 #[prost(string, tag="1")]
299 pub sid: ::prost::alloc::string::String,
300 #[prost(string, tag="2")]
301 pub identity: ::prost::alloc::string::String,
302 #[prost(enumeration="participant_info::State", tag="3")]
303 pub state: i32,
304 #[prost(message, repeated, tag="4")]
305 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
306 #[prost(string, tag="5")]
307 pub metadata: ::prost::alloc::string::String,
308 #[prost(int64, tag="6")]
310 pub joined_at: i64,
311 #[prost(int64, tag="17")]
313 pub joined_at_ms: i64,
314 #[prost(string, tag="9")]
315 pub name: ::prost::alloc::string::String,
316 #[prost(uint32, tag="10")]
317 pub version: u32,
318 #[prost(message, optional, tag="11")]
319 pub permission: ::core::option::Option<ParticipantPermission>,
320 #[prost(string, tag="12")]
321 pub region: ::prost::alloc::string::String,
322 #[prost(bool, tag="13")]
325 pub is_publisher: bool,
326 #[prost(enumeration="participant_info::Kind", tag="14")]
327 pub kind: i32,
328 #[prost(map="string, string", tag="15")]
329 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
330 #[prost(enumeration="DisconnectReason", tag="16")]
331 pub disconnect_reason: i32,
332 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
333 pub kind_details: ::prost::alloc::vec::Vec<i32>,
334}
335pub mod participant_info {
337 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
338 #[repr(i32)]
339 pub enum State {
340 Joining = 0,
342 Joined = 1,
344 Active = 2,
346 Disconnected = 3,
348 }
349 impl State {
350 pub fn as_str_name(&self) -> &'static str {
355 match self {
356 State::Joining => "JOINING",
357 State::Joined => "JOINED",
358 State::Active => "ACTIVE",
359 State::Disconnected => "DISCONNECTED",
360 }
361 }
362 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
364 match value {
365 "JOINING" => Some(Self::Joining),
366 "JOINED" => Some(Self::Joined),
367 "ACTIVE" => Some(Self::Active),
368 "DISCONNECTED" => Some(Self::Disconnected),
369 _ => None,
370 }
371 }
372 }
373 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
374 #[repr(i32)]
375 pub enum Kind {
376 Standard = 0,
378 Ingress = 1,
380 Egress = 2,
382 Sip = 3,
384 Agent = 4,
386 }
387 impl Kind {
388 pub fn as_str_name(&self) -> &'static str {
393 match self {
394 Kind::Standard => "STANDARD",
395 Kind::Ingress => "INGRESS",
396 Kind::Egress => "EGRESS",
397 Kind::Sip => "SIP",
398 Kind::Agent => "AGENT",
399 }
400 }
401 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
403 match value {
404 "STANDARD" => Some(Self::Standard),
405 "INGRESS" => Some(Self::Ingress),
406 "EGRESS" => Some(Self::Egress),
407 "SIP" => Some(Self::Sip),
408 "AGENT" => Some(Self::Agent),
409 _ => None,
410 }
411 }
412 }
413 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414 #[repr(i32)]
415 pub enum KindDetail {
416 CloudAgent = 0,
417 Forwarded = 1,
418 }
419 impl KindDetail {
420 pub fn as_str_name(&self) -> &'static str {
425 match self {
426 KindDetail::CloudAgent => "CLOUD_AGENT",
427 KindDetail::Forwarded => "FORWARDED",
428 }
429 }
430 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
432 match value {
433 "CLOUD_AGENT" => Some(Self::CloudAgent),
434 "FORWARDED" => Some(Self::Forwarded),
435 _ => None,
436 }
437 }
438 }
439}
440#[allow(clippy::derive_partial_eq_without_eq)]
441#[derive(Clone, PartialEq, ::prost::Message)]
442pub struct Encryption {
443}
444pub mod encryption {
446 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
447 #[repr(i32)]
448 pub enum Type {
449 None = 0,
450 Gcm = 1,
451 Custom = 2,
452 }
453 impl Type {
454 pub fn as_str_name(&self) -> &'static str {
459 match self {
460 Type::None => "NONE",
461 Type::Gcm => "GCM",
462 Type::Custom => "CUSTOM",
463 }
464 }
465 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
467 match value {
468 "NONE" => Some(Self::None),
469 "GCM" => Some(Self::Gcm),
470 "CUSTOM" => Some(Self::Custom),
471 _ => None,
472 }
473 }
474 }
475}
476#[allow(clippy::derive_partial_eq_without_eq)]
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct SimulcastCodecInfo {
479 #[prost(string, tag="1")]
480 pub mime_type: ::prost::alloc::string::String,
481 #[prost(string, tag="2")]
482 pub mid: ::prost::alloc::string::String,
483 #[prost(string, tag="3")]
484 pub cid: ::prost::alloc::string::String,
485 #[prost(message, repeated, tag="4")]
486 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
487}
488#[allow(clippy::derive_partial_eq_without_eq)]
489#[derive(Clone, PartialEq, ::prost::Message)]
490pub struct TrackInfo {
491 #[prost(string, tag="1")]
492 pub sid: ::prost::alloc::string::String,
493 #[prost(enumeration="TrackType", tag="2")]
494 pub r#type: i32,
495 #[prost(string, tag="3")]
496 pub name: ::prost::alloc::string::String,
497 #[prost(bool, tag="4")]
498 pub muted: bool,
499 #[prost(uint32, tag="5")]
502 pub width: u32,
503 #[prost(uint32, tag="6")]
505 pub height: u32,
506 #[prost(bool, tag="7")]
508 pub simulcast: bool,
509 #[prost(bool, tag="8")]
511 pub disable_dtx: bool,
512 #[prost(enumeration="TrackSource", tag="9")]
514 pub source: i32,
515 #[prost(message, repeated, tag="10")]
516 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
517 #[prost(string, tag="11")]
519 pub mime_type: ::prost::alloc::string::String,
520 #[prost(string, tag="12")]
521 pub mid: ::prost::alloc::string::String,
522 #[prost(message, repeated, tag="13")]
523 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
524 #[prost(bool, tag="14")]
525 pub stereo: bool,
526 #[prost(bool, tag="15")]
528 pub disable_red: bool,
529 #[prost(enumeration="encryption::Type", tag="16")]
530 pub encryption: i32,
531 #[prost(string, tag="17")]
532 pub stream: ::prost::alloc::string::String,
533 #[prost(message, optional, tag="18")]
534 pub version: ::core::option::Option<TimedVersion>,
535 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
536 pub audio_features: ::prost::alloc::vec::Vec<i32>,
537 #[prost(enumeration="BackupCodecPolicy", tag="20")]
538 pub backup_codec_policy: i32,
539}
540#[allow(clippy::derive_partial_eq_without_eq)]
542#[derive(Clone, PartialEq, ::prost::Message)]
543pub struct VideoLayer {
544 #[prost(enumeration="VideoQuality", tag="1")]
546 pub quality: i32,
547 #[prost(uint32, tag="2")]
548 pub width: u32,
549 #[prost(uint32, tag="3")]
550 pub height: u32,
551 #[prost(uint32, tag="4")]
553 pub bitrate: u32,
554 #[prost(uint32, tag="5")]
555 pub ssrc: u32,
556}
557#[allow(clippy::derive_partial_eq_without_eq)]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct DataPacket {
561 #[deprecated]
562 #[prost(enumeration="data_packet::Kind", tag="1")]
563 pub kind: i32,
564 #[prost(string, tag="4")]
566 pub participant_identity: ::prost::alloc::string::String,
567 #[prost(string, repeated, tag="5")]
569 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
570 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15")]
571 pub value: ::core::option::Option<data_packet::Value>,
572}
573pub mod data_packet {
575 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
576 #[repr(i32)]
577 pub enum Kind {
578 Reliable = 0,
579 Lossy = 1,
580 }
581 impl Kind {
582 pub fn as_str_name(&self) -> &'static str {
587 match self {
588 Kind::Reliable => "RELIABLE",
589 Kind::Lossy => "LOSSY",
590 }
591 }
592 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
594 match value {
595 "RELIABLE" => Some(Self::Reliable),
596 "LOSSY" => Some(Self::Lossy),
597 _ => None,
598 }
599 }
600 }
601 #[allow(clippy::derive_partial_eq_without_eq)]
602#[derive(Clone, PartialEq, ::prost::Oneof)]
603 pub enum Value {
604 #[prost(message, tag="2")]
605 User(super::UserPacket),
606 #[prost(message, tag="3")]
607 Speaker(super::ActiveSpeakerUpdate),
608 #[prost(message, tag="6")]
609 SipDtmf(super::SipDtmf),
610 #[prost(message, tag="7")]
611 Transcription(super::Transcription),
612 #[prost(message, tag="8")]
613 Metrics(super::MetricsBatch),
614 #[prost(message, tag="9")]
615 ChatMessage(super::ChatMessage),
616 #[prost(message, tag="10")]
617 RpcRequest(super::RpcRequest),
618 #[prost(message, tag="11")]
619 RpcAck(super::RpcAck),
620 #[prost(message, tag="12")]
621 RpcResponse(super::RpcResponse),
622 #[prost(message, tag="13")]
623 StreamHeader(super::data_stream::Header),
624 #[prost(message, tag="14")]
625 StreamChunk(super::data_stream::Chunk),
626 #[prost(message, tag="15")]
627 StreamTrailer(super::data_stream::Trailer),
628 }
629}
630#[allow(clippy::derive_partial_eq_without_eq)]
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct ActiveSpeakerUpdate {
633 #[prost(message, repeated, tag="1")]
634 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
635}
636#[allow(clippy::derive_partial_eq_without_eq)]
637#[derive(Clone, PartialEq, ::prost::Message)]
638pub struct SpeakerInfo {
639 #[prost(string, tag="1")]
640 pub sid: ::prost::alloc::string::String,
641 #[prost(float, tag="2")]
643 pub level: f32,
644 #[prost(bool, tag="3")]
646 pub active: bool,
647}
648#[allow(clippy::derive_partial_eq_without_eq)]
649#[derive(Clone, PartialEq, ::prost::Message)]
650pub struct UserPacket {
651 #[deprecated]
653 #[prost(string, tag="1")]
654 pub participant_sid: ::prost::alloc::string::String,
655 #[deprecated]
656 #[prost(string, tag="5")]
657 pub participant_identity: ::prost::alloc::string::String,
658 #[prost(bytes="vec", tag="2")]
660 pub payload: ::prost::alloc::vec::Vec<u8>,
661 #[deprecated]
663 #[prost(string, repeated, tag="3")]
664 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
665 #[deprecated]
667 #[prost(string, repeated, tag="6")]
668 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
669 #[prost(string, optional, tag="4")]
671 pub topic: ::core::option::Option<::prost::alloc::string::String>,
672 #[prost(string, optional, tag="8")]
674 pub id: ::core::option::Option<::prost::alloc::string::String>,
675 #[prost(uint64, optional, tag="9")]
677 pub start_time: ::core::option::Option<u64>,
678 #[prost(uint64, optional, tag="10")]
679 pub end_time: ::core::option::Option<u64>,
680 #[prost(bytes="vec", tag="11")]
682 pub nonce: ::prost::alloc::vec::Vec<u8>,
683}
684#[allow(clippy::derive_partial_eq_without_eq)]
685#[derive(Clone, PartialEq, ::prost::Message)]
686pub struct SipDtmf {
687 #[prost(uint32, tag="3")]
688 pub code: u32,
689 #[prost(string, tag="4")]
690 pub digit: ::prost::alloc::string::String,
691}
692#[allow(clippy::derive_partial_eq_without_eq)]
693#[derive(Clone, PartialEq, ::prost::Message)]
694pub struct Transcription {
695 #[prost(string, tag="2")]
697 pub transcribed_participant_identity: ::prost::alloc::string::String,
698 #[prost(string, tag="3")]
699 pub track_id: ::prost::alloc::string::String,
700 #[prost(message, repeated, tag="4")]
701 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
702}
703#[allow(clippy::derive_partial_eq_without_eq)]
704#[derive(Clone, PartialEq, ::prost::Message)]
705pub struct TranscriptionSegment {
706 #[prost(string, tag="1")]
707 pub id: ::prost::alloc::string::String,
708 #[prost(string, tag="2")]
709 pub text: ::prost::alloc::string::String,
710 #[prost(uint64, tag="3")]
711 pub start_time: u64,
712 #[prost(uint64, tag="4")]
713 pub end_time: u64,
714 #[prost(bool, tag="5")]
715 pub r#final: bool,
716 #[prost(string, tag="6")]
717 pub language: ::prost::alloc::string::String,
718}
719#[allow(clippy::derive_partial_eq_without_eq)]
720#[derive(Clone, PartialEq, ::prost::Message)]
721pub struct ChatMessage {
722 #[prost(string, tag="1")]
724 pub id: ::prost::alloc::string::String,
725 #[prost(int64, tag="2")]
726 pub timestamp: i64,
727 #[prost(int64, optional, tag="3")]
729 pub edit_timestamp: ::core::option::Option<i64>,
730 #[prost(string, tag="4")]
731 pub message: ::prost::alloc::string::String,
732 #[prost(bool, tag="5")]
734 pub deleted: bool,
735 #[prost(bool, tag="6")]
737 pub generated: bool,
738}
739#[allow(clippy::derive_partial_eq_without_eq)]
740#[derive(Clone, PartialEq, ::prost::Message)]
741pub struct RpcRequest {
742 #[prost(string, tag="1")]
743 pub id: ::prost::alloc::string::String,
744 #[prost(string, tag="2")]
745 pub method: ::prost::alloc::string::String,
746 #[prost(string, tag="3")]
747 pub payload: ::prost::alloc::string::String,
748 #[prost(uint32, tag="4")]
749 pub response_timeout_ms: u32,
750 #[prost(uint32, tag="5")]
751 pub version: u32,
752}
753#[allow(clippy::derive_partial_eq_without_eq)]
754#[derive(Clone, PartialEq, ::prost::Message)]
755pub struct RpcAck {
756 #[prost(string, tag="1")]
757 pub request_id: ::prost::alloc::string::String,
758}
759#[allow(clippy::derive_partial_eq_without_eq)]
760#[derive(Clone, PartialEq, ::prost::Message)]
761pub struct RpcResponse {
762 #[prost(string, tag="1")]
763 pub request_id: ::prost::alloc::string::String,
764 #[prost(oneof="rpc_response::Value", tags="2, 3")]
765 pub value: ::core::option::Option<rpc_response::Value>,
766}
767pub mod rpc_response {
769 #[allow(clippy::derive_partial_eq_without_eq)]
770#[derive(Clone, PartialEq, ::prost::Oneof)]
771 pub enum Value {
772 #[prost(string, tag="2")]
773 Payload(::prost::alloc::string::String),
774 #[prost(message, tag="3")]
775 Error(super::RpcError),
776 }
777}
778#[allow(clippy::derive_partial_eq_without_eq)]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct RpcError {
781 #[prost(uint32, tag="1")]
782 pub code: u32,
783 #[prost(string, tag="2")]
784 pub message: ::prost::alloc::string::String,
785 #[prost(string, tag="3")]
786 pub data: ::prost::alloc::string::String,
787}
788#[allow(clippy::derive_partial_eq_without_eq)]
789#[derive(Clone, PartialEq, ::prost::Message)]
790pub struct ParticipantTracks {
791 #[prost(string, tag="1")]
793 pub participant_sid: ::prost::alloc::string::String,
794 #[prost(string, repeated, tag="2")]
795 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
796}
797#[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct ServerInfo {
801 #[prost(enumeration="server_info::Edition", tag="1")]
802 pub edition: i32,
803 #[prost(string, tag="2")]
804 pub version: ::prost::alloc::string::String,
805 #[prost(int32, tag="3")]
806 pub protocol: i32,
807 #[prost(string, tag="4")]
808 pub region: ::prost::alloc::string::String,
809 #[prost(string, tag="5")]
810 pub node_id: ::prost::alloc::string::String,
811 #[prost(string, tag="6")]
813 pub debug_info: ::prost::alloc::string::String,
814 #[prost(int32, tag="7")]
815 pub agent_protocol: i32,
816}
817pub mod server_info {
819 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
820 #[repr(i32)]
821 pub enum Edition {
822 Standard = 0,
823 Cloud = 1,
824 }
825 impl Edition {
826 pub fn as_str_name(&self) -> &'static str {
831 match self {
832 Edition::Standard => "Standard",
833 Edition::Cloud => "Cloud",
834 }
835 }
836 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
838 match value {
839 "Standard" => Some(Self::Standard),
840 "Cloud" => Some(Self::Cloud),
841 _ => None,
842 }
843 }
844 }
845}
846#[allow(clippy::derive_partial_eq_without_eq)]
848#[derive(Clone, PartialEq, ::prost::Message)]
849pub struct ClientInfo {
850 #[prost(enumeration="client_info::Sdk", tag="1")]
851 pub sdk: i32,
852 #[prost(string, tag="2")]
853 pub version: ::prost::alloc::string::String,
854 #[prost(int32, tag="3")]
855 pub protocol: i32,
856 #[prost(string, tag="4")]
857 pub os: ::prost::alloc::string::String,
858 #[prost(string, tag="5")]
859 pub os_version: ::prost::alloc::string::String,
860 #[prost(string, tag="6")]
861 pub device_model: ::prost::alloc::string::String,
862 #[prost(string, tag="7")]
863 pub browser: ::prost::alloc::string::String,
864 #[prost(string, tag="8")]
865 pub browser_version: ::prost::alloc::string::String,
866 #[prost(string, tag="9")]
867 pub address: ::prost::alloc::string::String,
868 #[prost(string, tag="10")]
870 pub network: ::prost::alloc::string::String,
871 #[prost(string, tag="11")]
874 pub other_sdks: ::prost::alloc::string::String,
875}
876pub mod client_info {
878 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
879 #[repr(i32)]
880 pub enum Sdk {
881 Unknown = 0,
882 Js = 1,
883 Swift = 2,
884 Android = 3,
885 Flutter = 4,
886 Go = 5,
887 Unity = 6,
888 ReactNative = 7,
889 Rust = 8,
890 Python = 9,
891 Cpp = 10,
892 UnityWeb = 11,
893 Node = 12,
894 Unreal = 13,
895 }
896 impl Sdk {
897 pub fn as_str_name(&self) -> &'static str {
902 match self {
903 Sdk::Unknown => "UNKNOWN",
904 Sdk::Js => "JS",
905 Sdk::Swift => "SWIFT",
906 Sdk::Android => "ANDROID",
907 Sdk::Flutter => "FLUTTER",
908 Sdk::Go => "GO",
909 Sdk::Unity => "UNITY",
910 Sdk::ReactNative => "REACT_NATIVE",
911 Sdk::Rust => "RUST",
912 Sdk::Python => "PYTHON",
913 Sdk::Cpp => "CPP",
914 Sdk::UnityWeb => "UNITY_WEB",
915 Sdk::Node => "NODE",
916 Sdk::Unreal => "UNREAL",
917 }
918 }
919 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
921 match value {
922 "UNKNOWN" => Some(Self::Unknown),
923 "JS" => Some(Self::Js),
924 "SWIFT" => Some(Self::Swift),
925 "ANDROID" => Some(Self::Android),
926 "FLUTTER" => Some(Self::Flutter),
927 "GO" => Some(Self::Go),
928 "UNITY" => Some(Self::Unity),
929 "REACT_NATIVE" => Some(Self::ReactNative),
930 "RUST" => Some(Self::Rust),
931 "PYTHON" => Some(Self::Python),
932 "CPP" => Some(Self::Cpp),
933 "UNITY_WEB" => Some(Self::UnityWeb),
934 "NODE" => Some(Self::Node),
935 "UNREAL" => Some(Self::Unreal),
936 _ => None,
937 }
938 }
939 }
940}
941#[allow(clippy::derive_partial_eq_without_eq)]
943#[derive(Clone, PartialEq, ::prost::Message)]
944pub struct ClientConfiguration {
945 #[prost(message, optional, tag="1")]
946 pub video: ::core::option::Option<VideoConfiguration>,
947 #[prost(message, optional, tag="2")]
948 pub screen: ::core::option::Option<VideoConfiguration>,
949 #[prost(enumeration="ClientConfigSetting", tag="3")]
950 pub resume_connection: i32,
951 #[prost(message, optional, tag="4")]
952 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
953 #[prost(enumeration="ClientConfigSetting", tag="5")]
954 pub force_relay: i32,
955}
956#[allow(clippy::derive_partial_eq_without_eq)]
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct VideoConfiguration {
959 #[prost(enumeration="ClientConfigSetting", tag="1")]
960 pub hardware_encoder: i32,
961}
962#[allow(clippy::derive_partial_eq_without_eq)]
963#[derive(Clone, PartialEq, ::prost::Message)]
964pub struct DisabledCodecs {
965 #[prost(message, repeated, tag="1")]
967 pub codecs: ::prost::alloc::vec::Vec<Codec>,
968 #[prost(message, repeated, tag="2")]
970 pub publish: ::prost::alloc::vec::Vec<Codec>,
971}
972#[allow(clippy::derive_partial_eq_without_eq)]
973#[derive(Clone, PartialEq, ::prost::Message)]
974pub struct RtpDrift {
975 #[prost(message, optional, tag="1")]
976 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
977 #[prost(message, optional, tag="2")]
978 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
979 #[prost(double, tag="3")]
980 pub duration: f64,
981 #[prost(uint64, tag="4")]
982 pub start_timestamp: u64,
983 #[prost(uint64, tag="5")]
984 pub end_timestamp: u64,
985 #[prost(uint64, tag="6")]
986 pub rtp_clock_ticks: u64,
987 #[prost(int64, tag="7")]
988 pub drift_samples: i64,
989 #[prost(double, tag="8")]
990 pub drift_ms: f64,
991 #[prost(double, tag="9")]
992 pub clock_rate: f64,
993}
994#[allow(clippy::derive_partial_eq_without_eq)]
995#[derive(Clone, PartialEq, ::prost::Message)]
996pub struct RtpStats {
997 #[prost(message, optional, tag="1")]
998 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
999 #[prost(message, optional, tag="2")]
1000 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1001 #[prost(double, tag="3")]
1002 pub duration: f64,
1003 #[prost(uint32, tag="4")]
1004 pub packets: u32,
1005 #[prost(double, tag="5")]
1006 pub packet_rate: f64,
1007 #[prost(uint64, tag="6")]
1008 pub bytes: u64,
1009 #[prost(uint64, tag="39")]
1010 pub header_bytes: u64,
1011 #[prost(double, tag="7")]
1012 pub bitrate: f64,
1013 #[prost(uint32, tag="8")]
1014 pub packets_lost: u32,
1015 #[prost(double, tag="9")]
1016 pub packet_loss_rate: f64,
1017 #[prost(float, tag="10")]
1018 pub packet_loss_percentage: f32,
1019 #[prost(uint32, tag="11")]
1020 pub packets_duplicate: u32,
1021 #[prost(double, tag="12")]
1022 pub packet_duplicate_rate: f64,
1023 #[prost(uint64, tag="13")]
1024 pub bytes_duplicate: u64,
1025 #[prost(uint64, tag="40")]
1026 pub header_bytes_duplicate: u64,
1027 #[prost(double, tag="14")]
1028 pub bitrate_duplicate: f64,
1029 #[prost(uint32, tag="15")]
1030 pub packets_padding: u32,
1031 #[prost(double, tag="16")]
1032 pub packet_padding_rate: f64,
1033 #[prost(uint64, tag="17")]
1034 pub bytes_padding: u64,
1035 #[prost(uint64, tag="41")]
1036 pub header_bytes_padding: u64,
1037 #[prost(double, tag="18")]
1038 pub bitrate_padding: f64,
1039 #[prost(uint32, tag="19")]
1040 pub packets_out_of_order: u32,
1041 #[prost(uint32, tag="20")]
1042 pub frames: u32,
1043 #[prost(double, tag="21")]
1044 pub frame_rate: f64,
1045 #[prost(double, tag="22")]
1046 pub jitter_current: f64,
1047 #[prost(double, tag="23")]
1048 pub jitter_max: f64,
1049 #[prost(map="int32, uint32", tag="24")]
1050 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1051 #[prost(uint32, tag="25")]
1052 pub nacks: u32,
1053 #[prost(uint32, tag="37")]
1054 pub nack_acks: u32,
1055 #[prost(uint32, tag="26")]
1056 pub nack_misses: u32,
1057 #[prost(uint32, tag="38")]
1058 pub nack_repeated: u32,
1059 #[prost(uint32, tag="27")]
1060 pub plis: u32,
1061 #[prost(message, optional, tag="28")]
1062 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1063 #[prost(uint32, tag="29")]
1064 pub firs: u32,
1065 #[prost(message, optional, tag="30")]
1066 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1067 #[prost(uint32, tag="31")]
1068 pub rtt_current: u32,
1069 #[prost(uint32, tag="32")]
1070 pub rtt_max: u32,
1071 #[prost(uint32, tag="33")]
1072 pub key_frames: u32,
1073 #[prost(message, optional, tag="34")]
1074 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1075 #[prost(uint32, tag="35")]
1076 pub layer_lock_plis: u32,
1077 #[prost(message, optional, tag="36")]
1078 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1079 #[prost(message, optional, tag="44")]
1080 pub packet_drift: ::core::option::Option<RtpDrift>,
1081 #[prost(message, optional, tag="45")]
1082 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1083 #[prost(message, optional, tag="46")]
1084 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1085 #[prost(message, optional, tag="47")]
1087 pub received_report_drift: ::core::option::Option<RtpDrift>,
1088}
1089#[allow(clippy::derive_partial_eq_without_eq)]
1090#[derive(Clone, PartialEq, ::prost::Message)]
1091pub struct RtcpSenderReportState {
1092 #[prost(uint32, tag="1")]
1093 pub rtp_timestamp: u32,
1094 #[prost(uint64, tag="2")]
1095 pub rtp_timestamp_ext: u64,
1096 #[prost(uint64, tag="3")]
1097 pub ntp_timestamp: u64,
1098 #[prost(int64, tag="4")]
1100 pub at: i64,
1101 #[prost(int64, tag="5")]
1102 pub at_adjusted: i64,
1103 #[prost(uint32, tag="6")]
1104 pub packets: u32,
1105 #[prost(uint64, tag="7")]
1106 pub octets: u64,
1107}
1108#[allow(clippy::derive_partial_eq_without_eq)]
1109#[derive(Clone, PartialEq, ::prost::Message)]
1110pub struct RtpForwarderState {
1111 #[prost(bool, tag="1")]
1112 pub started: bool,
1113 #[prost(int32, tag="2")]
1114 pub reference_layer_spatial: i32,
1115 #[prost(int64, tag="3")]
1116 pub pre_start_time: i64,
1117 #[prost(uint64, tag="4")]
1118 pub ext_first_timestamp: u64,
1119 #[prost(uint64, tag="5")]
1120 pub dummy_start_timestamp_offset: u64,
1121 #[prost(message, optional, tag="6")]
1122 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1123 #[prost(message, repeated, tag="8")]
1124 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1125 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1126 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1127}
1128pub mod rtp_forwarder_state {
1130 #[allow(clippy::derive_partial_eq_without_eq)]
1131#[derive(Clone, PartialEq, ::prost::Oneof)]
1132 pub enum CodecMunger {
1133 #[prost(message, tag="7")]
1134 Vp8Munger(super::Vp8MungerState),
1135 }
1136}
1137#[allow(clippy::derive_partial_eq_without_eq)]
1138#[derive(Clone, PartialEq, ::prost::Message)]
1139pub struct RtpMungerState {
1140 #[prost(uint64, tag="1")]
1141 pub ext_last_sequence_number: u64,
1142 #[prost(uint64, tag="2")]
1143 pub ext_second_last_sequence_number: u64,
1144 #[prost(uint64, tag="3")]
1145 pub ext_last_timestamp: u64,
1146 #[prost(uint64, tag="4")]
1147 pub ext_second_last_timestamp: u64,
1148 #[prost(bool, tag="5")]
1149 pub last_marker: bool,
1150 #[prost(bool, tag="6")]
1151 pub second_last_marker: bool,
1152}
1153#[allow(clippy::derive_partial_eq_without_eq)]
1154#[derive(Clone, PartialEq, ::prost::Message)]
1155pub struct Vp8MungerState {
1156 #[prost(int32, tag="1")]
1157 pub ext_last_picture_id: i32,
1158 #[prost(bool, tag="2")]
1159 pub picture_id_used: bool,
1160 #[prost(uint32, tag="3")]
1161 pub last_tl0_pic_idx: u32,
1162 #[prost(bool, tag="4")]
1163 pub tl0_pic_idx_used: bool,
1164 #[prost(bool, tag="5")]
1165 pub tid_used: bool,
1166 #[prost(uint32, tag="6")]
1167 pub last_key_idx: u32,
1168 #[prost(bool, tag="7")]
1169 pub key_idx_used: bool,
1170}
1171#[allow(clippy::derive_partial_eq_without_eq)]
1172#[derive(Clone, PartialEq, ::prost::Message)]
1173pub struct TimedVersion {
1174 #[prost(int64, tag="1")]
1175 pub unix_micro: i64,
1176 #[prost(int32, tag="2")]
1177 pub ticks: i32,
1178}
1179#[allow(clippy::derive_partial_eq_without_eq)]
1180#[derive(Clone, PartialEq, ::prost::Message)]
1181pub struct DataStream {
1182}
1183pub mod data_stream {
1185 #[allow(clippy::derive_partial_eq_without_eq)]
1187#[derive(Clone, PartialEq, ::prost::Message)]
1188 pub struct TextHeader {
1189 #[prost(enumeration="OperationType", tag="1")]
1190 pub operation_type: i32,
1191 #[prost(int32, tag="2")]
1193 pub version: i32,
1194 #[prost(string, tag="3")]
1196 pub reply_to_stream_id: ::prost::alloc::string::String,
1197 #[prost(string, repeated, tag="4")]
1199 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1200 #[prost(bool, tag="5")]
1202 pub generated: bool,
1203 }
1204 #[allow(clippy::derive_partial_eq_without_eq)]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207 pub struct ByteHeader {
1208 #[prost(string, tag="1")]
1209 pub name: ::prost::alloc::string::String,
1210 }
1211 #[allow(clippy::derive_partial_eq_without_eq)]
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214 pub struct Header {
1215 #[prost(string, tag="1")]
1217 pub stream_id: ::prost::alloc::string::String,
1218 #[prost(int64, tag="2")]
1220 pub timestamp: i64,
1221 #[prost(string, tag="3")]
1222 pub topic: ::prost::alloc::string::String,
1223 #[prost(string, tag="4")]
1224 pub mime_type: ::prost::alloc::string::String,
1225 #[prost(uint64, optional, tag="5")]
1227 pub total_length: ::core::option::Option<u64>,
1228 #[prost(enumeration="super::encryption::Type", tag="7")]
1230 pub encryption_type: i32,
1231 #[prost(map="string, string", tag="8")]
1233 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1234 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1236 pub content_header: ::core::option::Option<header::ContentHeader>,
1237 }
1238 pub mod header {
1240 #[allow(clippy::derive_partial_eq_without_eq)]
1242#[derive(Clone, PartialEq, ::prost::Oneof)]
1243 pub enum ContentHeader {
1244 #[prost(message, tag="9")]
1245 TextHeader(super::TextHeader),
1246 #[prost(message, tag="10")]
1247 ByteHeader(super::ByteHeader),
1248 }
1249 }
1250 #[allow(clippy::derive_partial_eq_without_eq)]
1251#[derive(Clone, PartialEq, ::prost::Message)]
1252 pub struct Chunk {
1253 #[prost(string, tag="1")]
1255 pub stream_id: ::prost::alloc::string::String,
1256 #[prost(uint64, tag="2")]
1257 pub chunk_index: u64,
1258 #[prost(bytes="vec", tag="3")]
1260 pub content: ::prost::alloc::vec::Vec<u8>,
1261 #[prost(int32, tag="4")]
1263 pub version: i32,
1264 #[prost(bytes="vec", optional, tag="5")]
1266 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1267 }
1268 #[allow(clippy::derive_partial_eq_without_eq)]
1269#[derive(Clone, PartialEq, ::prost::Message)]
1270 pub struct Trailer {
1271 #[prost(string, tag="1")]
1273 pub stream_id: ::prost::alloc::string::String,
1274 #[prost(string, tag="2")]
1276 pub reason: ::prost::alloc::string::String,
1277 #[prost(map="string, string", tag="3")]
1279 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1280 }
1281 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1283 #[repr(i32)]
1284 pub enum OperationType {
1285 Create = 0,
1286 Update = 1,
1287 Delete = 2,
1288 Reaction = 3,
1289 }
1290 impl OperationType {
1291 pub fn as_str_name(&self) -> &'static str {
1296 match self {
1297 OperationType::Create => "CREATE",
1298 OperationType::Update => "UPDATE",
1299 OperationType::Delete => "DELETE",
1300 OperationType::Reaction => "REACTION",
1301 }
1302 }
1303 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1305 match value {
1306 "CREATE" => Some(Self::Create),
1307 "UPDATE" => Some(Self::Update),
1308 "DELETE" => Some(Self::Delete),
1309 "REACTION" => Some(Self::Reaction),
1310 _ => None,
1311 }
1312 }
1313 }
1314}
1315#[allow(clippy::derive_partial_eq_without_eq)]
1316#[derive(Clone, PartialEq, ::prost::Message)]
1317pub struct WebhookConfig {
1318 #[prost(string, tag="1")]
1319 pub url: ::prost::alloc::string::String,
1320 #[prost(string, tag="2")]
1321 pub signing_key: ::prost::alloc::string::String,
1322}
1323#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1324#[repr(i32)]
1325pub enum AudioCodec {
1326 DefaultAc = 0,
1327 Opus = 1,
1328 Aac = 2,
1329}
1330impl AudioCodec {
1331 pub fn as_str_name(&self) -> &'static str {
1336 match self {
1337 AudioCodec::DefaultAc => "DEFAULT_AC",
1338 AudioCodec::Opus => "OPUS",
1339 AudioCodec::Aac => "AAC",
1340 }
1341 }
1342 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1344 match value {
1345 "DEFAULT_AC" => Some(Self::DefaultAc),
1346 "OPUS" => Some(Self::Opus),
1347 "AAC" => Some(Self::Aac),
1348 _ => None,
1349 }
1350 }
1351}
1352#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1353#[repr(i32)]
1354pub enum VideoCodec {
1355 DefaultVc = 0,
1356 H264Baseline = 1,
1357 H264Main = 2,
1358 H264High = 3,
1359 Vp8 = 4,
1360}
1361impl VideoCodec {
1362 pub fn as_str_name(&self) -> &'static str {
1367 match self {
1368 VideoCodec::DefaultVc => "DEFAULT_VC",
1369 VideoCodec::H264Baseline => "H264_BASELINE",
1370 VideoCodec::H264Main => "H264_MAIN",
1371 VideoCodec::H264High => "H264_HIGH",
1372 VideoCodec::Vp8 => "VP8",
1373 }
1374 }
1375 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1377 match value {
1378 "DEFAULT_VC" => Some(Self::DefaultVc),
1379 "H264_BASELINE" => Some(Self::H264Baseline),
1380 "H264_MAIN" => Some(Self::H264Main),
1381 "H264_HIGH" => Some(Self::H264High),
1382 "VP8" => Some(Self::Vp8),
1383 _ => None,
1384 }
1385 }
1386}
1387#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1388#[repr(i32)]
1389pub enum ImageCodec {
1390 IcDefault = 0,
1391 IcJpeg = 1,
1392}
1393impl ImageCodec {
1394 pub fn as_str_name(&self) -> &'static str {
1399 match self {
1400 ImageCodec::IcDefault => "IC_DEFAULT",
1401 ImageCodec::IcJpeg => "IC_JPEG",
1402 }
1403 }
1404 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1406 match value {
1407 "IC_DEFAULT" => Some(Self::IcDefault),
1408 "IC_JPEG" => Some(Self::IcJpeg),
1409 _ => None,
1410 }
1411 }
1412}
1413#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1415#[repr(i32)]
1416pub enum BackupCodecPolicy {
1417 PreferRegression = 0,
1420 Simulcast = 1,
1422 Regression = 2,
1424}
1425impl BackupCodecPolicy {
1426 pub fn as_str_name(&self) -> &'static str {
1431 match self {
1432 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1433 BackupCodecPolicy::Simulcast => "SIMULCAST",
1434 BackupCodecPolicy::Regression => "REGRESSION",
1435 }
1436 }
1437 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1439 match value {
1440 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1441 "SIMULCAST" => Some(Self::Simulcast),
1442 "REGRESSION" => Some(Self::Regression),
1443 _ => None,
1444 }
1445 }
1446}
1447#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1448#[repr(i32)]
1449pub enum TrackType {
1450 Audio = 0,
1451 Video = 1,
1452 Data = 2,
1453}
1454impl TrackType {
1455 pub fn as_str_name(&self) -> &'static str {
1460 match self {
1461 TrackType::Audio => "AUDIO",
1462 TrackType::Video => "VIDEO",
1463 TrackType::Data => "DATA",
1464 }
1465 }
1466 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1468 match value {
1469 "AUDIO" => Some(Self::Audio),
1470 "VIDEO" => Some(Self::Video),
1471 "DATA" => Some(Self::Data),
1472 _ => None,
1473 }
1474 }
1475}
1476#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1477#[repr(i32)]
1478pub enum TrackSource {
1479 Unknown = 0,
1480 Camera = 1,
1481 Microphone = 2,
1482 ScreenShare = 3,
1483 ScreenShareAudio = 4,
1484}
1485impl TrackSource {
1486 pub fn as_str_name(&self) -> &'static str {
1491 match self {
1492 TrackSource::Unknown => "UNKNOWN",
1493 TrackSource::Camera => "CAMERA",
1494 TrackSource::Microphone => "MICROPHONE",
1495 TrackSource::ScreenShare => "SCREEN_SHARE",
1496 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1497 }
1498 }
1499 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1501 match value {
1502 "UNKNOWN" => Some(Self::Unknown),
1503 "CAMERA" => Some(Self::Camera),
1504 "MICROPHONE" => Some(Self::Microphone),
1505 "SCREEN_SHARE" => Some(Self::ScreenShare),
1506 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1507 _ => None,
1508 }
1509 }
1510}
1511#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1512#[repr(i32)]
1513pub enum VideoQuality {
1514 Low = 0,
1515 Medium = 1,
1516 High = 2,
1517 Off = 3,
1518}
1519impl VideoQuality {
1520 pub fn as_str_name(&self) -> &'static str {
1525 match self {
1526 VideoQuality::Low => "LOW",
1527 VideoQuality::Medium => "MEDIUM",
1528 VideoQuality::High => "HIGH",
1529 VideoQuality::Off => "OFF",
1530 }
1531 }
1532 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1534 match value {
1535 "LOW" => Some(Self::Low),
1536 "MEDIUM" => Some(Self::Medium),
1537 "HIGH" => Some(Self::High),
1538 "OFF" => Some(Self::Off),
1539 _ => None,
1540 }
1541 }
1542}
1543#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1544#[repr(i32)]
1545pub enum ConnectionQuality {
1546 Poor = 0,
1547 Good = 1,
1548 Excellent = 2,
1549 Lost = 3,
1550}
1551impl ConnectionQuality {
1552 pub fn as_str_name(&self) -> &'static str {
1557 match self {
1558 ConnectionQuality::Poor => "POOR",
1559 ConnectionQuality::Good => "GOOD",
1560 ConnectionQuality::Excellent => "EXCELLENT",
1561 ConnectionQuality::Lost => "LOST",
1562 }
1563 }
1564 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1566 match value {
1567 "POOR" => Some(Self::Poor),
1568 "GOOD" => Some(Self::Good),
1569 "EXCELLENT" => Some(Self::Excellent),
1570 "LOST" => Some(Self::Lost),
1571 _ => None,
1572 }
1573 }
1574}
1575#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1576#[repr(i32)]
1577pub enum ClientConfigSetting {
1578 Unset = 0,
1579 Disabled = 1,
1580 Enabled = 2,
1581}
1582impl ClientConfigSetting {
1583 pub fn as_str_name(&self) -> &'static str {
1588 match self {
1589 ClientConfigSetting::Unset => "UNSET",
1590 ClientConfigSetting::Disabled => "DISABLED",
1591 ClientConfigSetting::Enabled => "ENABLED",
1592 }
1593 }
1594 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1596 match value {
1597 "UNSET" => Some(Self::Unset),
1598 "DISABLED" => Some(Self::Disabled),
1599 "ENABLED" => Some(Self::Enabled),
1600 _ => None,
1601 }
1602 }
1603}
1604#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1605#[repr(i32)]
1606pub enum DisconnectReason {
1607 UnknownReason = 0,
1608 ClientInitiated = 1,
1610 DuplicateIdentity = 2,
1612 ServerShutdown = 3,
1614 ParticipantRemoved = 4,
1616 RoomDeleted = 5,
1618 StateMismatch = 6,
1620 JoinFailure = 7,
1622 Migration = 8,
1624 SignalClose = 9,
1626 RoomClosed = 10,
1628 UserUnavailable = 11,
1630 UserRejected = 12,
1632 SipTrunkFailure = 13,
1634 ConnectionTimeout = 14,
1636}
1637impl DisconnectReason {
1638 pub fn as_str_name(&self) -> &'static str {
1643 match self {
1644 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1645 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1646 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1647 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1648 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1649 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1650 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1651 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1652 DisconnectReason::Migration => "MIGRATION",
1653 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1654 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1655 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1656 DisconnectReason::UserRejected => "USER_REJECTED",
1657 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1658 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1659 }
1660 }
1661 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1663 match value {
1664 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1665 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1666 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1667 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1668 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1669 "ROOM_DELETED" => Some(Self::RoomDeleted),
1670 "STATE_MISMATCH" => Some(Self::StateMismatch),
1671 "JOIN_FAILURE" => Some(Self::JoinFailure),
1672 "MIGRATION" => Some(Self::Migration),
1673 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1674 "ROOM_CLOSED" => Some(Self::RoomClosed),
1675 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1676 "USER_REJECTED" => Some(Self::UserRejected),
1677 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1678 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1679 _ => None,
1680 }
1681 }
1682}
1683#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1684#[repr(i32)]
1685pub enum ReconnectReason {
1686 RrUnknown = 0,
1687 RrSignalDisconnected = 1,
1688 RrPublisherFailed = 2,
1689 RrSubscriberFailed = 3,
1690 RrSwitchCandidate = 4,
1691}
1692impl ReconnectReason {
1693 pub fn as_str_name(&self) -> &'static str {
1698 match self {
1699 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1700 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1701 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1702 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1703 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1704 }
1705 }
1706 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1708 match value {
1709 "RR_UNKNOWN" => Some(Self::RrUnknown),
1710 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1711 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1712 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1713 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1714 _ => None,
1715 }
1716 }
1717}
1718#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1719#[repr(i32)]
1720pub enum SubscriptionError {
1721 SeUnknown = 0,
1722 SeCodecUnsupported = 1,
1723 SeTrackNotfound = 2,
1724}
1725impl SubscriptionError {
1726 pub fn as_str_name(&self) -> &'static str {
1731 match self {
1732 SubscriptionError::SeUnknown => "SE_UNKNOWN",
1733 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
1734 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
1735 }
1736 }
1737 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1739 match value {
1740 "SE_UNKNOWN" => Some(Self::SeUnknown),
1741 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
1742 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
1743 _ => None,
1744 }
1745 }
1746}
1747#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1748#[repr(i32)]
1749pub enum AudioTrackFeature {
1750 TfStereo = 0,
1751 TfNoDtx = 1,
1752 TfAutoGainControl = 2,
1753 TfEchoCancellation = 3,
1754 TfNoiseSuppression = 4,
1755 TfEnhancedNoiseCancellation = 5,
1756 TfPreconnectBuffer = 6,
1758}
1759impl AudioTrackFeature {
1760 pub fn as_str_name(&self) -> &'static str {
1765 match self {
1766 AudioTrackFeature::TfStereo => "TF_STEREO",
1767 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
1768 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
1769 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
1770 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
1771 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
1772 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
1773 }
1774 }
1775 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1777 match value {
1778 "TF_STEREO" => Some(Self::TfStereo),
1779 "TF_NO_DTX" => Some(Self::TfNoDtx),
1780 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
1781 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
1782 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
1783 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
1784 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
1785 _ => None,
1786 }
1787 }
1788}
1789#[allow(clippy::derive_partial_eq_without_eq)]
1791#[derive(Clone, PartialEq, ::prost::Message)]
1792pub struct RoomCompositeEgressRequest {
1793 #[prost(string, tag="1")]
1795 pub room_name: ::prost::alloc::string::String,
1796 #[prost(string, tag="2")]
1798 pub layout: ::prost::alloc::string::String,
1799 #[prost(bool, tag="3")]
1801 pub audio_only: bool,
1802 #[prost(enumeration="AudioMixing", tag="15")]
1804 pub audio_mixing: i32,
1805 #[prost(bool, tag="4")]
1807 pub video_only: bool,
1808 #[prost(string, tag="5")]
1810 pub custom_base_url: ::prost::alloc::string::String,
1811 #[prost(message, repeated, tag="11")]
1812 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1813 #[prost(message, repeated, tag="12")]
1814 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1815 #[prost(message, repeated, tag="13")]
1816 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1817 #[prost(message, repeated, tag="14")]
1818 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1819 #[prost(message, repeated, tag="16")]
1821 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1822 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
1824 pub output: ::core::option::Option<room_composite_egress_request::Output>,
1825 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
1826 pub options: ::core::option::Option<room_composite_egress_request::Options>,
1827}
1828pub mod room_composite_egress_request {
1830 #[allow(clippy::derive_partial_eq_without_eq)]
1832#[derive(Clone, PartialEq, ::prost::Oneof)]
1833 pub enum Output {
1834 #[prost(message, tag="6")]
1835 File(super::EncodedFileOutput),
1836 #[prost(message, tag="7")]
1837 Stream(super::StreamOutput),
1838 #[prost(message, tag="10")]
1839 Segments(super::SegmentedFileOutput),
1840 }
1841 #[allow(clippy::derive_partial_eq_without_eq)]
1842#[derive(Clone, PartialEq, ::prost::Oneof)]
1843 pub enum Options {
1844 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
1846 Preset(i32),
1847 #[prost(message, tag="9")]
1849 Advanced(super::EncodingOptions),
1850 }
1851}
1852#[allow(clippy::derive_partial_eq_without_eq)]
1854#[derive(Clone, PartialEq, ::prost::Message)]
1855pub struct WebEgressRequest {
1856 #[prost(string, tag="1")]
1857 pub url: ::prost::alloc::string::String,
1858 #[prost(bool, tag="2")]
1859 pub audio_only: bool,
1860 #[prost(bool, tag="3")]
1861 pub video_only: bool,
1862 #[prost(bool, tag="12")]
1863 pub await_start_signal: bool,
1864 #[prost(message, repeated, tag="9")]
1865 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1866 #[prost(message, repeated, tag="10")]
1867 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1868 #[prost(message, repeated, tag="11")]
1869 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1870 #[prost(message, repeated, tag="13")]
1871 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1872 #[prost(message, repeated, tag="14")]
1874 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1875 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
1877 pub output: ::core::option::Option<web_egress_request::Output>,
1878 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
1879 pub options: ::core::option::Option<web_egress_request::Options>,
1880}
1881pub mod web_egress_request {
1883 #[allow(clippy::derive_partial_eq_without_eq)]
1885#[derive(Clone, PartialEq, ::prost::Oneof)]
1886 pub enum Output {
1887 #[prost(message, tag="4")]
1888 File(super::EncodedFileOutput),
1889 #[prost(message, tag="5")]
1890 Stream(super::StreamOutput),
1891 #[prost(message, tag="6")]
1892 Segments(super::SegmentedFileOutput),
1893 }
1894 #[allow(clippy::derive_partial_eq_without_eq)]
1895#[derive(Clone, PartialEq, ::prost::Oneof)]
1896 pub enum Options {
1897 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
1898 Preset(i32),
1899 #[prost(message, tag="8")]
1900 Advanced(super::EncodingOptions),
1901 }
1902}
1903#[allow(clippy::derive_partial_eq_without_eq)]
1905#[derive(Clone, PartialEq, ::prost::Message)]
1906pub struct ParticipantEgressRequest {
1907 #[prost(string, tag="1")]
1909 pub room_name: ::prost::alloc::string::String,
1910 #[prost(string, tag="2")]
1912 pub identity: ::prost::alloc::string::String,
1913 #[prost(bool, tag="3")]
1915 pub screen_share: bool,
1916 #[prost(message, repeated, tag="6")]
1917 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1918 #[prost(message, repeated, tag="7")]
1919 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1920 #[prost(message, repeated, tag="8")]
1921 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1922 #[prost(message, repeated, tag="9")]
1923 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1924 #[prost(message, repeated, tag="10")]
1926 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1927 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
1928 pub options: ::core::option::Option<participant_egress_request::Options>,
1929}
1930pub mod participant_egress_request {
1932 #[allow(clippy::derive_partial_eq_without_eq)]
1933#[derive(Clone, PartialEq, ::prost::Oneof)]
1934 pub enum Options {
1935 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
1937 Preset(i32),
1938 #[prost(message, tag="5")]
1940 Advanced(super::EncodingOptions),
1941 }
1942}
1943#[allow(clippy::derive_partial_eq_without_eq)]
1945#[derive(Clone, PartialEq, ::prost::Message)]
1946pub struct TrackCompositeEgressRequest {
1947 #[prost(string, tag="1")]
1949 pub room_name: ::prost::alloc::string::String,
1950 #[prost(string, tag="2")]
1952 pub audio_track_id: ::prost::alloc::string::String,
1953 #[prost(string, tag="3")]
1955 pub video_track_id: ::prost::alloc::string::String,
1956 #[prost(message, repeated, tag="11")]
1957 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1958 #[prost(message, repeated, tag="12")]
1959 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1960 #[prost(message, repeated, tag="13")]
1961 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1962 #[prost(message, repeated, tag="14")]
1963 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1964 #[prost(message, repeated, tag="15")]
1966 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1967 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
1969 pub output: ::core::option::Option<track_composite_egress_request::Output>,
1970 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
1971 pub options: ::core::option::Option<track_composite_egress_request::Options>,
1972}
1973pub mod track_composite_egress_request {
1975 #[allow(clippy::derive_partial_eq_without_eq)]
1977#[derive(Clone, PartialEq, ::prost::Oneof)]
1978 pub enum Output {
1979 #[prost(message, tag="4")]
1980 File(super::EncodedFileOutput),
1981 #[prost(message, tag="5")]
1982 Stream(super::StreamOutput),
1983 #[prost(message, tag="8")]
1984 Segments(super::SegmentedFileOutput),
1985 }
1986 #[allow(clippy::derive_partial_eq_without_eq)]
1987#[derive(Clone, PartialEq, ::prost::Oneof)]
1988 pub enum Options {
1989 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
1991 Preset(i32),
1992 #[prost(message, tag="7")]
1994 Advanced(super::EncodingOptions),
1995 }
1996}
1997#[allow(clippy::derive_partial_eq_without_eq)]
1999#[derive(Clone, PartialEq, ::prost::Message)]
2000pub struct TrackEgressRequest {
2001 #[prost(string, tag="1")]
2003 pub room_name: ::prost::alloc::string::String,
2004 #[prost(string, tag="2")]
2006 pub track_id: ::prost::alloc::string::String,
2007 #[prost(message, repeated, tag="5")]
2009 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2010 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
2012 pub output: ::core::option::Option<track_egress_request::Output>,
2013}
2014pub mod track_egress_request {
2016 #[allow(clippy::derive_partial_eq_without_eq)]
2018#[derive(Clone, PartialEq, ::prost::Oneof)]
2019 pub enum Output {
2020 #[prost(message, tag="3")]
2021 File(super::DirectFileOutput),
2022 #[prost(string, tag="4")]
2023 WebsocketUrl(::prost::alloc::string::String),
2024 }
2025}
2026#[allow(clippy::derive_partial_eq_without_eq)]
2027#[derive(Clone, PartialEq, ::prost::Message)]
2028pub struct EncodedFileOutput {
2029 #[prost(enumeration="EncodedFileType", tag="1")]
2031 pub file_type: i32,
2032 #[prost(string, tag="2")]
2034 pub filepath: ::prost::alloc::string::String,
2035 #[prost(bool, tag="6")]
2037 pub disable_manifest: bool,
2038 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
2039 pub output: ::core::option::Option<encoded_file_output::Output>,
2040}
2041pub mod encoded_file_output {
2043 #[allow(clippy::derive_partial_eq_without_eq)]
2044#[derive(Clone, PartialEq, ::prost::Oneof)]
2045 pub enum Output {
2046 #[prost(message, tag="3")]
2047 S3(super::S3Upload),
2048 #[prost(message, tag="4")]
2049 Gcp(super::GcpUpload),
2050 #[prost(message, tag="5")]
2051 Azure(super::AzureBlobUpload),
2052 #[prost(message, tag="7")]
2053 AliOss(super::AliOssUpload),
2054 }
2055}
2056#[allow(clippy::derive_partial_eq_without_eq)]
2058#[derive(Clone, PartialEq, ::prost::Message)]
2059pub struct SegmentedFileOutput {
2060 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2062 pub protocol: i32,
2063 #[prost(string, tag="2")]
2065 pub filename_prefix: ::prost::alloc::string::String,
2066 #[prost(string, tag="3")]
2068 pub playlist_name: ::prost::alloc::string::String,
2069 #[prost(string, tag="11")]
2071 pub live_playlist_name: ::prost::alloc::string::String,
2072 #[prost(uint32, tag="4")]
2074 pub segment_duration: u32,
2075 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2077 pub filename_suffix: i32,
2078 #[prost(bool, tag="8")]
2080 pub disable_manifest: bool,
2081 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2083 pub output: ::core::option::Option<segmented_file_output::Output>,
2084}
2085pub mod segmented_file_output {
2087 #[allow(clippy::derive_partial_eq_without_eq)]
2089#[derive(Clone, PartialEq, ::prost::Oneof)]
2090 pub enum Output {
2091 #[prost(message, tag="5")]
2092 S3(super::S3Upload),
2093 #[prost(message, tag="6")]
2094 Gcp(super::GcpUpload),
2095 #[prost(message, tag="7")]
2096 Azure(super::AzureBlobUpload),
2097 #[prost(message, tag="9")]
2098 AliOss(super::AliOssUpload),
2099 }
2100}
2101#[allow(clippy::derive_partial_eq_without_eq)]
2102#[derive(Clone, PartialEq, ::prost::Message)]
2103pub struct DirectFileOutput {
2104 #[prost(string, tag="1")]
2106 pub filepath: ::prost::alloc::string::String,
2107 #[prost(bool, tag="5")]
2109 pub disable_manifest: bool,
2110 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2111 pub output: ::core::option::Option<direct_file_output::Output>,
2112}
2113pub mod direct_file_output {
2115 #[allow(clippy::derive_partial_eq_without_eq)]
2116#[derive(Clone, PartialEq, ::prost::Oneof)]
2117 pub enum Output {
2118 #[prost(message, tag="2")]
2119 S3(super::S3Upload),
2120 #[prost(message, tag="3")]
2121 Gcp(super::GcpUpload),
2122 #[prost(message, tag="4")]
2123 Azure(super::AzureBlobUpload),
2124 #[prost(message, tag="6")]
2125 AliOss(super::AliOssUpload),
2126 }
2127}
2128#[allow(clippy::derive_partial_eq_without_eq)]
2129#[derive(Clone, PartialEq, ::prost::Message)]
2130pub struct ImageOutput {
2131 #[prost(uint32, tag="1")]
2133 pub capture_interval: u32,
2134 #[prost(int32, tag="2")]
2136 pub width: i32,
2137 #[prost(int32, tag="3")]
2139 pub height: i32,
2140 #[prost(string, tag="4")]
2142 pub filename_prefix: ::prost::alloc::string::String,
2143 #[prost(enumeration="ImageFileSuffix", tag="5")]
2145 pub filename_suffix: i32,
2146 #[prost(enumeration="ImageCodec", tag="6")]
2148 pub image_codec: i32,
2149 #[prost(bool, tag="7")]
2151 pub disable_manifest: bool,
2152 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2154 pub output: ::core::option::Option<image_output::Output>,
2155}
2156pub mod image_output {
2158 #[allow(clippy::derive_partial_eq_without_eq)]
2160#[derive(Clone, PartialEq, ::prost::Oneof)]
2161 pub enum Output {
2162 #[prost(message, tag="8")]
2163 S3(super::S3Upload),
2164 #[prost(message, tag="9")]
2165 Gcp(super::GcpUpload),
2166 #[prost(message, tag="10")]
2167 Azure(super::AzureBlobUpload),
2168 #[prost(message, tag="11")]
2169 AliOss(super::AliOssUpload),
2170 }
2171}
2172#[allow(clippy::derive_partial_eq_without_eq)]
2173#[derive(Clone, PartialEq, ::prost::Message)]
2174pub struct S3Upload {
2175 #[prost(string, tag="1")]
2176 pub access_key: ::prost::alloc::string::String,
2177 #[prost(string, tag="2")]
2178 pub secret: ::prost::alloc::string::String,
2179 #[prost(string, tag="11")]
2180 pub session_token: ::prost::alloc::string::String,
2181 #[prost(string, tag="3")]
2182 pub region: ::prost::alloc::string::String,
2183 #[prost(string, tag="4")]
2184 pub endpoint: ::prost::alloc::string::String,
2185 #[prost(string, tag="5")]
2186 pub bucket: ::prost::alloc::string::String,
2187 #[prost(bool, tag="6")]
2188 pub force_path_style: bool,
2189 #[prost(map="string, string", tag="7")]
2190 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2191 #[prost(string, tag="8")]
2192 pub tagging: ::prost::alloc::string::String,
2193 #[prost(string, tag="9")]
2195 pub content_disposition: ::prost::alloc::string::String,
2196 #[prost(message, optional, tag="10")]
2197 pub proxy: ::core::option::Option<ProxyConfig>,
2198}
2199#[allow(clippy::derive_partial_eq_without_eq)]
2200#[derive(Clone, PartialEq, ::prost::Message)]
2201pub struct GcpUpload {
2202 #[prost(string, tag="1")]
2204 pub credentials: ::prost::alloc::string::String,
2205 #[prost(string, tag="2")]
2206 pub bucket: ::prost::alloc::string::String,
2207 #[prost(message, optional, tag="3")]
2208 pub proxy: ::core::option::Option<ProxyConfig>,
2209}
2210#[allow(clippy::derive_partial_eq_without_eq)]
2211#[derive(Clone, PartialEq, ::prost::Message)]
2212pub struct AzureBlobUpload {
2213 #[prost(string, tag="1")]
2214 pub account_name: ::prost::alloc::string::String,
2215 #[prost(string, tag="2")]
2216 pub account_key: ::prost::alloc::string::String,
2217 #[prost(string, tag="3")]
2218 pub container_name: ::prost::alloc::string::String,
2219}
2220#[allow(clippy::derive_partial_eq_without_eq)]
2221#[derive(Clone, PartialEq, ::prost::Message)]
2222pub struct AliOssUpload {
2223 #[prost(string, tag="1")]
2224 pub access_key: ::prost::alloc::string::String,
2225 #[prost(string, tag="2")]
2226 pub secret: ::prost::alloc::string::String,
2227 #[prost(string, tag="3")]
2228 pub region: ::prost::alloc::string::String,
2229 #[prost(string, tag="4")]
2230 pub endpoint: ::prost::alloc::string::String,
2231 #[prost(string, tag="5")]
2232 pub bucket: ::prost::alloc::string::String,
2233}
2234#[allow(clippy::derive_partial_eq_without_eq)]
2235#[derive(Clone, PartialEq, ::prost::Message)]
2236pub struct ProxyConfig {
2237 #[prost(string, tag="1")]
2238 pub url: ::prost::alloc::string::String,
2239 #[prost(string, tag="2")]
2240 pub username: ::prost::alloc::string::String,
2241 #[prost(string, tag="3")]
2242 pub password: ::prost::alloc::string::String,
2243}
2244#[allow(clippy::derive_partial_eq_without_eq)]
2245#[derive(Clone, PartialEq, ::prost::Message)]
2246pub struct StreamOutput {
2247 #[prost(enumeration="StreamProtocol", tag="1")]
2249 pub protocol: i32,
2250 #[prost(string, repeated, tag="2")]
2252 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2253}
2254#[allow(clippy::derive_partial_eq_without_eq)]
2255#[derive(Clone, PartialEq, ::prost::Message)]
2256pub struct EncodingOptions {
2257 #[prost(int32, tag="1")]
2259 pub width: i32,
2260 #[prost(int32, tag="2")]
2262 pub height: i32,
2263 #[prost(int32, tag="3")]
2265 pub depth: i32,
2266 #[prost(int32, tag="4")]
2268 pub framerate: i32,
2269 #[prost(enumeration="AudioCodec", tag="5")]
2271 pub audio_codec: i32,
2272 #[prost(int32, tag="6")]
2274 pub audio_bitrate: i32,
2275 #[prost(int32, tag="11")]
2277 pub audio_quality: i32,
2278 #[prost(int32, tag="7")]
2280 pub audio_frequency: i32,
2281 #[prost(enumeration="VideoCodec", tag="8")]
2283 pub video_codec: i32,
2284 #[prost(int32, tag="9")]
2286 pub video_bitrate: i32,
2287 #[prost(int32, tag="12")]
2289 pub video_quality: i32,
2290 #[prost(double, tag="10")]
2292 pub key_frame_interval: f64,
2293}
2294#[allow(clippy::derive_partial_eq_without_eq)]
2295#[derive(Clone, PartialEq, ::prost::Message)]
2296pub struct UpdateLayoutRequest {
2297 #[prost(string, tag="1")]
2298 pub egress_id: ::prost::alloc::string::String,
2299 #[prost(string, tag="2")]
2300 pub layout: ::prost::alloc::string::String,
2301}
2302#[allow(clippy::derive_partial_eq_without_eq)]
2303#[derive(Clone, PartialEq, ::prost::Message)]
2304pub struct UpdateStreamRequest {
2305 #[prost(string, tag="1")]
2306 pub egress_id: ::prost::alloc::string::String,
2307 #[prost(string, repeated, tag="2")]
2308 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2309 #[prost(string, repeated, tag="3")]
2310 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2311}
2312#[allow(clippy::derive_partial_eq_without_eq)]
2313#[derive(Clone, PartialEq, ::prost::Message)]
2314pub struct ListEgressRequest {
2315 #[prost(string, tag="1")]
2317 pub room_name: ::prost::alloc::string::String,
2318 #[prost(string, tag="2")]
2320 pub egress_id: ::prost::alloc::string::String,
2321 #[prost(bool, tag="3")]
2323 pub active: bool,
2324}
2325#[allow(clippy::derive_partial_eq_without_eq)]
2326#[derive(Clone, PartialEq, ::prost::Message)]
2327pub struct ListEgressResponse {
2328 #[prost(message, repeated, tag="1")]
2329 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2330}
2331#[allow(clippy::derive_partial_eq_without_eq)]
2332#[derive(Clone, PartialEq, ::prost::Message)]
2333pub struct StopEgressRequest {
2334 #[prost(string, tag="1")]
2335 pub egress_id: ::prost::alloc::string::String,
2336}
2337#[allow(clippy::derive_partial_eq_without_eq)]
2338#[derive(Clone, PartialEq, ::prost::Message)]
2339pub struct EgressInfo {
2340 #[prost(string, tag="1")]
2341 pub egress_id: ::prost::alloc::string::String,
2342 #[prost(string, tag="2")]
2343 pub room_id: ::prost::alloc::string::String,
2344 #[prost(string, tag="13")]
2345 pub room_name: ::prost::alloc::string::String,
2346 #[prost(enumeration="EgressSourceType", tag="26")]
2347 pub source_type: i32,
2348 #[prost(enumeration="EgressStatus", tag="3")]
2349 pub status: i32,
2350 #[prost(int64, tag="10")]
2351 pub started_at: i64,
2352 #[prost(int64, tag="11")]
2353 pub ended_at: i64,
2354 #[prost(int64, tag="18")]
2355 pub updated_at: i64,
2356 #[prost(string, tag="21")]
2357 pub details: ::prost::alloc::string::String,
2358 #[prost(string, tag="9")]
2359 pub error: ::prost::alloc::string::String,
2360 #[prost(int32, tag="22")]
2361 pub error_code: i32,
2362 #[prost(message, repeated, tag="15")]
2363 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2364 #[prost(message, repeated, tag="16")]
2365 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2366 #[prost(message, repeated, tag="17")]
2367 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2368 #[prost(message, repeated, tag="20")]
2369 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2370 #[prost(string, tag="23")]
2371 pub manifest_location: ::prost::alloc::string::String,
2372 #[prost(bool, tag="25")]
2374 pub backup_storage_used: bool,
2375 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2376 pub request: ::core::option::Option<egress_info::Request>,
2377 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2379 pub result: ::core::option::Option<egress_info::Result>,
2380}
2381pub mod egress_info {
2383 #[allow(clippy::derive_partial_eq_without_eq)]
2384#[derive(Clone, PartialEq, ::prost::Oneof)]
2385 pub enum Request {
2386 #[prost(message, tag="4")]
2387 RoomComposite(super::RoomCompositeEgressRequest),
2388 #[prost(message, tag="14")]
2389 Web(super::WebEgressRequest),
2390 #[prost(message, tag="19")]
2391 Participant(super::ParticipantEgressRequest),
2392 #[prost(message, tag="5")]
2393 TrackComposite(super::TrackCompositeEgressRequest),
2394 #[prost(message, tag="6")]
2395 Track(super::TrackEgressRequest),
2396 }
2397 #[allow(clippy::derive_partial_eq_without_eq)]
2399#[derive(Clone, PartialEq, ::prost::Oneof)]
2400 pub enum Result {
2401 #[prost(message, tag="7")]
2402 Stream(super::StreamInfoList),
2403 #[prost(message, tag="8")]
2404 File(super::FileInfo),
2405 #[prost(message, tag="12")]
2406 Segments(super::SegmentsInfo),
2407 }
2408}
2409#[allow(clippy::derive_partial_eq_without_eq)]
2410#[derive(Clone, PartialEq, ::prost::Message)]
2411pub struct StreamInfoList {
2412 #[prost(message, repeated, tag="1")]
2413 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2414}
2415#[allow(clippy::derive_partial_eq_without_eq)]
2416#[derive(Clone, PartialEq, ::prost::Message)]
2417pub struct StreamInfo {
2418 #[prost(string, tag="1")]
2419 pub url: ::prost::alloc::string::String,
2420 #[prost(int64, tag="2")]
2421 pub started_at: i64,
2422 #[prost(int64, tag="3")]
2423 pub ended_at: i64,
2424 #[prost(int64, tag="4")]
2425 pub duration: i64,
2426 #[prost(enumeration="stream_info::Status", tag="5")]
2427 pub status: i32,
2428 #[prost(string, tag="6")]
2429 pub error: ::prost::alloc::string::String,
2430}
2431pub mod stream_info {
2433 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2434 #[repr(i32)]
2435 pub enum Status {
2436 Active = 0,
2437 Finished = 1,
2438 Failed = 2,
2439 }
2440 impl Status {
2441 pub fn as_str_name(&self) -> &'static str {
2446 match self {
2447 Status::Active => "ACTIVE",
2448 Status::Finished => "FINISHED",
2449 Status::Failed => "FAILED",
2450 }
2451 }
2452 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2454 match value {
2455 "ACTIVE" => Some(Self::Active),
2456 "FINISHED" => Some(Self::Finished),
2457 "FAILED" => Some(Self::Failed),
2458 _ => None,
2459 }
2460 }
2461 }
2462}
2463#[allow(clippy::derive_partial_eq_without_eq)]
2464#[derive(Clone, PartialEq, ::prost::Message)]
2465pub struct FileInfo {
2466 #[prost(string, tag="1")]
2467 pub filename: ::prost::alloc::string::String,
2468 #[prost(int64, tag="2")]
2469 pub started_at: i64,
2470 #[prost(int64, tag="3")]
2471 pub ended_at: i64,
2472 #[prost(int64, tag="6")]
2473 pub duration: i64,
2474 #[prost(int64, tag="4")]
2475 pub size: i64,
2476 #[prost(string, tag="5")]
2477 pub location: ::prost::alloc::string::String,
2478}
2479#[allow(clippy::derive_partial_eq_without_eq)]
2480#[derive(Clone, PartialEq, ::prost::Message)]
2481pub struct SegmentsInfo {
2482 #[prost(string, tag="1")]
2483 pub playlist_name: ::prost::alloc::string::String,
2484 #[prost(string, tag="8")]
2485 pub live_playlist_name: ::prost::alloc::string::String,
2486 #[prost(int64, tag="2")]
2487 pub duration: i64,
2488 #[prost(int64, tag="3")]
2489 pub size: i64,
2490 #[prost(string, tag="4")]
2491 pub playlist_location: ::prost::alloc::string::String,
2492 #[prost(string, tag="9")]
2493 pub live_playlist_location: ::prost::alloc::string::String,
2494 #[prost(int64, tag="5")]
2495 pub segment_count: i64,
2496 #[prost(int64, tag="6")]
2497 pub started_at: i64,
2498 #[prost(int64, tag="7")]
2499 pub ended_at: i64,
2500}
2501#[allow(clippy::derive_partial_eq_without_eq)]
2502#[derive(Clone, PartialEq, ::prost::Message)]
2503pub struct ImagesInfo {
2504 #[prost(string, tag="4")]
2505 pub filename_prefix: ::prost::alloc::string::String,
2506 #[prost(int64, tag="1")]
2507 pub image_count: i64,
2508 #[prost(int64, tag="2")]
2509 pub started_at: i64,
2510 #[prost(int64, tag="3")]
2511 pub ended_at: i64,
2512}
2513#[allow(clippy::derive_partial_eq_without_eq)]
2514#[derive(Clone, PartialEq, ::prost::Message)]
2515pub struct AutoParticipantEgress {
2516 #[prost(message, repeated, tag="3")]
2517 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2518 #[prost(message, repeated, tag="4")]
2519 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2520 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2521 pub options: ::core::option::Option<auto_participant_egress::Options>,
2522}
2523pub mod auto_participant_egress {
2525 #[allow(clippy::derive_partial_eq_without_eq)]
2526#[derive(Clone, PartialEq, ::prost::Oneof)]
2527 pub enum Options {
2528 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2530 Preset(i32),
2531 #[prost(message, tag="2")]
2533 Advanced(super::EncodingOptions),
2534 }
2535}
2536#[allow(clippy::derive_partial_eq_without_eq)]
2537#[derive(Clone, PartialEq, ::prost::Message)]
2538pub struct AutoTrackEgress {
2539 #[prost(string, tag="1")]
2541 pub filepath: ::prost::alloc::string::String,
2542 #[prost(bool, tag="5")]
2544 pub disable_manifest: bool,
2545 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2546 pub output: ::core::option::Option<auto_track_egress::Output>,
2547}
2548pub mod auto_track_egress {
2550 #[allow(clippy::derive_partial_eq_without_eq)]
2551#[derive(Clone, PartialEq, ::prost::Oneof)]
2552 pub enum Output {
2553 #[prost(message, tag="2")]
2554 S3(super::S3Upload),
2555 #[prost(message, tag="3")]
2556 Gcp(super::GcpUpload),
2557 #[prost(message, tag="4")]
2558 Azure(super::AzureBlobUpload),
2559 #[prost(message, tag="6")]
2560 AliOss(super::AliOssUpload),
2561 }
2562}
2563#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2564#[repr(i32)]
2565pub enum EncodedFileType {
2566 DefaultFiletype = 0,
2568 Mp4 = 1,
2569 Ogg = 2,
2570}
2571impl EncodedFileType {
2572 pub fn as_str_name(&self) -> &'static str {
2577 match self {
2578 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2579 EncodedFileType::Mp4 => "MP4",
2580 EncodedFileType::Ogg => "OGG",
2581 }
2582 }
2583 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2585 match value {
2586 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2587 "MP4" => Some(Self::Mp4),
2588 "OGG" => Some(Self::Ogg),
2589 _ => None,
2590 }
2591 }
2592}
2593#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2594#[repr(i32)]
2595pub enum SegmentedFileProtocol {
2596 DefaultSegmentedFileProtocol = 0,
2597 HlsProtocol = 1,
2598}
2599impl SegmentedFileProtocol {
2600 pub fn as_str_name(&self) -> &'static str {
2605 match self {
2606 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2607 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2608 }
2609 }
2610 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2612 match value {
2613 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2614 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2615 _ => None,
2616 }
2617 }
2618}
2619#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2620#[repr(i32)]
2621pub enum SegmentedFileSuffix {
2622 Index = 0,
2623 Timestamp = 1,
2624}
2625impl SegmentedFileSuffix {
2626 pub fn as_str_name(&self) -> &'static str {
2631 match self {
2632 SegmentedFileSuffix::Index => "INDEX",
2633 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2634 }
2635 }
2636 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2638 match value {
2639 "INDEX" => Some(Self::Index),
2640 "TIMESTAMP" => Some(Self::Timestamp),
2641 _ => None,
2642 }
2643 }
2644}
2645#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2646#[repr(i32)]
2647pub enum ImageFileSuffix {
2648 ImageSuffixIndex = 0,
2649 ImageSuffixTimestamp = 1,
2650 ImageSuffixNoneOverwrite = 2,
2652}
2653impl ImageFileSuffix {
2654 pub fn as_str_name(&self) -> &'static str {
2659 match self {
2660 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2661 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2662 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
2663 }
2664 }
2665 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2667 match value {
2668 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2669 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2670 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
2671 _ => None,
2672 }
2673 }
2674}
2675#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2676#[repr(i32)]
2677pub enum StreamProtocol {
2678 DefaultProtocol = 0,
2680 Rtmp = 1,
2681 Srt = 2,
2682}
2683impl StreamProtocol {
2684 pub fn as_str_name(&self) -> &'static str {
2689 match self {
2690 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2691 StreamProtocol::Rtmp => "RTMP",
2692 StreamProtocol::Srt => "SRT",
2693 }
2694 }
2695 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2697 match value {
2698 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
2699 "RTMP" => Some(Self::Rtmp),
2700 "SRT" => Some(Self::Srt),
2701 _ => None,
2702 }
2703 }
2704}
2705#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2706#[repr(i32)]
2707pub enum AudioMixing {
2708 DefaultMixing = 0,
2710 DualChannelAgent = 1,
2712 DualChannelAlternate = 2,
2714}
2715impl AudioMixing {
2716 pub fn as_str_name(&self) -> &'static str {
2721 match self {
2722 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
2723 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
2724 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
2725 }
2726 }
2727 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2729 match value {
2730 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
2731 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
2732 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
2733 _ => None,
2734 }
2735 }
2736}
2737#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2738#[repr(i32)]
2739pub enum EncodingOptionsPreset {
2740 H264720p30 = 0,
2742 H264720p60 = 1,
2744 H2641080p30 = 2,
2746 H2641080p60 = 3,
2748 PortraitH264720p30 = 4,
2750 PortraitH264720p60 = 5,
2752 PortraitH2641080p30 = 6,
2754 PortraitH2641080p60 = 7,
2756}
2757impl EncodingOptionsPreset {
2758 pub fn as_str_name(&self) -> &'static str {
2763 match self {
2764 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
2765 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
2766 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
2767 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
2768 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
2769 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
2770 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
2771 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
2772 }
2773 }
2774 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2776 match value {
2777 "H264_720P_30" => Some(Self::H264720p30),
2778 "H264_720P_60" => Some(Self::H264720p60),
2779 "H264_1080P_30" => Some(Self::H2641080p30),
2780 "H264_1080P_60" => Some(Self::H2641080p60),
2781 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
2782 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
2783 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
2784 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
2785 _ => None,
2786 }
2787 }
2788}
2789#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2790#[repr(i32)]
2791pub enum EgressStatus {
2792 EgressStarting = 0,
2793 EgressActive = 1,
2794 EgressEnding = 2,
2795 EgressComplete = 3,
2796 EgressFailed = 4,
2797 EgressAborted = 5,
2798 EgressLimitReached = 6,
2799}
2800impl EgressStatus {
2801 pub fn as_str_name(&self) -> &'static str {
2806 match self {
2807 EgressStatus::EgressStarting => "EGRESS_STARTING",
2808 EgressStatus::EgressActive => "EGRESS_ACTIVE",
2809 EgressStatus::EgressEnding => "EGRESS_ENDING",
2810 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
2811 EgressStatus::EgressFailed => "EGRESS_FAILED",
2812 EgressStatus::EgressAborted => "EGRESS_ABORTED",
2813 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
2814 }
2815 }
2816 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2818 match value {
2819 "EGRESS_STARTING" => Some(Self::EgressStarting),
2820 "EGRESS_ACTIVE" => Some(Self::EgressActive),
2821 "EGRESS_ENDING" => Some(Self::EgressEnding),
2822 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
2823 "EGRESS_FAILED" => Some(Self::EgressFailed),
2824 "EGRESS_ABORTED" => Some(Self::EgressAborted),
2825 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
2826 _ => None,
2827 }
2828 }
2829}
2830#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2831#[repr(i32)]
2832pub enum EgressSourceType {
2833 Web = 0,
2834 Sdk = 1,
2835}
2836impl EgressSourceType {
2837 pub fn as_str_name(&self) -> &'static str {
2842 match self {
2843 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
2844 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
2845 }
2846 }
2847 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2849 match value {
2850 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
2851 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
2852 _ => None,
2853 }
2854 }
2855}
2856#[allow(clippy::derive_partial_eq_without_eq)]
2857#[derive(Clone, PartialEq, ::prost::Message)]
2858pub struct SignalRequest {
2859 #[prost(oneof="signal_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18")]
2860 pub message: ::core::option::Option<signal_request::Message>,
2861}
2862pub mod signal_request {
2864 #[allow(clippy::derive_partial_eq_without_eq)]
2865#[derive(Clone, PartialEq, ::prost::Oneof)]
2866 pub enum Message {
2867 #[prost(message, tag="1")]
2869 Offer(super::SessionDescription),
2870 #[prost(message, tag="2")]
2872 Answer(super::SessionDescription),
2873 #[prost(message, tag="3")]
2874 Trickle(super::TrickleRequest),
2875 #[prost(message, tag="4")]
2876 AddTrack(super::AddTrackRequest),
2877 #[prost(message, tag="5")]
2879 Mute(super::MuteTrackRequest),
2880 #[prost(message, tag="6")]
2882 Subscription(super::UpdateSubscription),
2883 #[prost(message, tag="7")]
2885 TrackSetting(super::UpdateTrackSettings),
2886 #[prost(message, tag="8")]
2888 Leave(super::LeaveRequest),
2889 #[prost(message, tag="10")]
2891 UpdateLayers(super::UpdateVideoLayers),
2892 #[prost(message, tag="11")]
2894 SubscriptionPermission(super::SubscriptionPermission),
2895 #[prost(message, tag="12")]
2897 SyncState(super::SyncState),
2898 #[prost(message, tag="13")]
2900 Simulate(super::SimulateScenario),
2901 #[prost(int64, tag="14")]
2905 Ping(i64),
2906 #[prost(message, tag="15")]
2909 UpdateMetadata(super::UpdateParticipantMetadata),
2910 #[prost(message, tag="16")]
2911 PingReq(super::Ping),
2912 #[prost(message, tag="17")]
2914 UpdateAudioTrack(super::UpdateLocalAudioTrack),
2915 #[prost(message, tag="18")]
2917 UpdateVideoTrack(super::UpdateLocalVideoTrack),
2918 }
2919}
2920#[allow(clippy::derive_partial_eq_without_eq)]
2921#[derive(Clone, PartialEq, ::prost::Message)]
2922pub struct SignalResponse {
2923 #[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")]
2924 pub message: ::core::option::Option<signal_response::Message>,
2925}
2926pub mod signal_response {
2928 #[allow(clippy::derive_partial_eq_without_eq)]
2929#[derive(Clone, PartialEq, ::prost::Oneof)]
2930 pub enum Message {
2931 #[prost(message, tag="1")]
2933 Join(super::JoinResponse),
2934 #[prost(message, tag="2")]
2936 Answer(super::SessionDescription),
2937 #[prost(message, tag="3")]
2939 Offer(super::SessionDescription),
2940 #[prost(message, tag="4")]
2942 Trickle(super::TrickleRequest),
2943 #[prost(message, tag="5")]
2945 Update(super::ParticipantUpdate),
2946 #[prost(message, tag="6")]
2948 TrackPublished(super::TrackPublishedResponse),
2949 #[prost(message, tag="8")]
2951 Leave(super::LeaveRequest),
2952 #[prost(message, tag="9")]
2954 Mute(super::MuteTrackRequest),
2955 #[prost(message, tag="10")]
2957 SpeakersChanged(super::SpeakersChanged),
2958 #[prost(message, tag="11")]
2960 RoomUpdate(super::RoomUpdate),
2961 #[prost(message, tag="12")]
2963 ConnectionQuality(super::ConnectionQualityUpdate),
2964 #[prost(message, tag="13")]
2967 StreamStateUpdate(super::StreamStateUpdate),
2968 #[prost(message, tag="14")]
2970 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
2971 #[prost(message, tag="15")]
2973 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
2974 #[prost(string, tag="16")]
2976 RefreshToken(::prost::alloc::string::String),
2977 #[prost(message, tag="17")]
2979 TrackUnpublished(super::TrackUnpublishedResponse),
2980 #[prost(int64, tag="18")]
2984 Pong(i64),
2985 #[prost(message, tag="19")]
2987 Reconnect(super::ReconnectResponse),
2988 #[prost(message, tag="20")]
2990 PongResp(super::Pong),
2991 #[prost(message, tag="21")]
2993 SubscriptionResponse(super::SubscriptionResponse),
2994 #[prost(message, tag="22")]
2996 RequestResponse(super::RequestResponse),
2997 #[prost(message, tag="23")]
2999 TrackSubscribed(super::TrackSubscribed),
3000 #[prost(message, tag="24")]
3002 RoomMoved(super::RoomMovedResponse),
3003 }
3004}
3005#[allow(clippy::derive_partial_eq_without_eq)]
3006#[derive(Clone, PartialEq, ::prost::Message)]
3007pub struct SimulcastCodec {
3008 #[prost(string, tag="1")]
3009 pub codec: ::prost::alloc::string::String,
3010 #[prost(string, tag="2")]
3011 pub cid: ::prost::alloc::string::String,
3012}
3013#[allow(clippy::derive_partial_eq_without_eq)]
3014#[derive(Clone, PartialEq, ::prost::Message)]
3015pub struct AddTrackRequest {
3016 #[prost(string, tag="1")]
3018 pub cid: ::prost::alloc::string::String,
3019 #[prost(string, tag="2")]
3020 pub name: ::prost::alloc::string::String,
3021 #[prost(enumeration="TrackType", tag="3")]
3022 pub r#type: i32,
3023 #[prost(uint32, tag="4")]
3025 pub width: u32,
3026 #[prost(uint32, tag="5")]
3027 pub height: u32,
3028 #[prost(bool, tag="6")]
3030 pub muted: bool,
3031 #[deprecated]
3035 #[prost(bool, tag="7")]
3036 pub disable_dtx: bool,
3037 #[prost(enumeration="TrackSource", tag="8")]
3038 pub source: i32,
3039 #[prost(message, repeated, tag="9")]
3040 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3041 #[prost(message, repeated, tag="10")]
3042 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3043 #[prost(string, tag="11")]
3045 pub sid: ::prost::alloc::string::String,
3046 #[deprecated]
3048 #[prost(bool, tag="12")]
3049 pub stereo: bool,
3050 #[prost(bool, tag="13")]
3052 pub disable_red: bool,
3053 #[prost(enumeration="encryption::Type", tag="14")]
3054 pub encryption: i32,
3055 #[prost(string, tag="15")]
3058 pub stream: ::prost::alloc::string::String,
3059 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3060 pub backup_codec_policy: i32,
3061 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3062 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3063}
3064#[allow(clippy::derive_partial_eq_without_eq)]
3065#[derive(Clone, PartialEq, ::prost::Message)]
3066pub struct TrickleRequest {
3067 #[prost(string, tag="1")]
3068 pub candidate_init: ::prost::alloc::string::String,
3069 #[prost(enumeration="SignalTarget", tag="2")]
3070 pub target: i32,
3071 #[prost(bool, tag="3")]
3072 pub r#final: bool,
3073}
3074#[allow(clippy::derive_partial_eq_without_eq)]
3075#[derive(Clone, PartialEq, ::prost::Message)]
3076pub struct MuteTrackRequest {
3077 #[prost(string, tag="1")]
3078 pub sid: ::prost::alloc::string::String,
3079 #[prost(bool, tag="2")]
3080 pub muted: bool,
3081}
3082#[allow(clippy::derive_partial_eq_without_eq)]
3083#[derive(Clone, PartialEq, ::prost::Message)]
3084pub struct JoinResponse {
3085 #[prost(message, optional, tag="1")]
3086 pub room: ::core::option::Option<Room>,
3087 #[prost(message, optional, tag="2")]
3088 pub participant: ::core::option::Option<ParticipantInfo>,
3089 #[prost(message, repeated, tag="3")]
3090 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3091 #[prost(string, tag="4")]
3093 pub server_version: ::prost::alloc::string::String,
3094 #[prost(message, repeated, tag="5")]
3095 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3096 #[prost(bool, tag="6")]
3098 pub subscriber_primary: bool,
3099 #[prost(string, tag="7")]
3102 pub alternative_url: ::prost::alloc::string::String,
3103 #[prost(message, optional, tag="8")]
3104 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3105 #[prost(string, tag="9")]
3107 pub server_region: ::prost::alloc::string::String,
3108 #[prost(int32, tag="10")]
3109 pub ping_timeout: i32,
3110 #[prost(int32, tag="11")]
3111 pub ping_interval: i32,
3112 #[prost(message, optional, tag="12")]
3113 pub server_info: ::core::option::Option<ServerInfo>,
3114 #[prost(bytes="vec", tag="13")]
3116 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3117 #[prost(message, repeated, tag="14")]
3118 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3119 #[prost(bool, tag="15")]
3121 pub fast_publish: bool,
3122}
3123#[allow(clippy::derive_partial_eq_without_eq)]
3124#[derive(Clone, PartialEq, ::prost::Message)]
3125pub struct ReconnectResponse {
3126 #[prost(message, repeated, tag="1")]
3127 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3128 #[prost(message, optional, tag="2")]
3129 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3130}
3131#[allow(clippy::derive_partial_eq_without_eq)]
3132#[derive(Clone, PartialEq, ::prost::Message)]
3133pub struct TrackPublishedResponse {
3134 #[prost(string, tag="1")]
3135 pub cid: ::prost::alloc::string::String,
3136 #[prost(message, optional, tag="2")]
3137 pub track: ::core::option::Option<TrackInfo>,
3138}
3139#[allow(clippy::derive_partial_eq_without_eq)]
3140#[derive(Clone, PartialEq, ::prost::Message)]
3141pub struct TrackUnpublishedResponse {
3142 #[prost(string, tag="1")]
3143 pub track_sid: ::prost::alloc::string::String,
3144}
3145#[allow(clippy::derive_partial_eq_without_eq)]
3146#[derive(Clone, PartialEq, ::prost::Message)]
3147pub struct SessionDescription {
3148 #[prost(string, tag="1")]
3150 pub r#type: ::prost::alloc::string::String,
3151 #[prost(string, tag="2")]
3152 pub sdp: ::prost::alloc::string::String,
3153}
3154#[allow(clippy::derive_partial_eq_without_eq)]
3155#[derive(Clone, PartialEq, ::prost::Message)]
3156pub struct ParticipantUpdate {
3157 #[prost(message, repeated, tag="1")]
3158 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3159}
3160#[allow(clippy::derive_partial_eq_without_eq)]
3161#[derive(Clone, PartialEq, ::prost::Message)]
3162pub struct UpdateSubscription {
3163 #[prost(string, repeated, tag="1")]
3164 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3165 #[prost(bool, tag="2")]
3166 pub subscribe: bool,
3167 #[prost(message, repeated, tag="3")]
3168 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3169}
3170#[allow(clippy::derive_partial_eq_without_eq)]
3171#[derive(Clone, PartialEq, ::prost::Message)]
3172pub struct UpdateTrackSettings {
3173 #[prost(string, repeated, tag="1")]
3174 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3175 #[prost(bool, tag="3")]
3177 pub disabled: bool,
3178 #[prost(enumeration="VideoQuality", tag="4")]
3180 pub quality: i32,
3181 #[prost(uint32, tag="5")]
3183 pub width: u32,
3184 #[prost(uint32, tag="6")]
3186 pub height: u32,
3187 #[prost(uint32, tag="7")]
3188 pub fps: u32,
3189 #[prost(uint32, tag="8")]
3197 pub priority: u32,
3198}
3199#[allow(clippy::derive_partial_eq_without_eq)]
3200#[derive(Clone, PartialEq, ::prost::Message)]
3201pub struct UpdateLocalAudioTrack {
3202 #[prost(string, tag="1")]
3203 pub track_sid: ::prost::alloc::string::String,
3204 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3205 pub features: ::prost::alloc::vec::Vec<i32>,
3206}
3207#[allow(clippy::derive_partial_eq_without_eq)]
3208#[derive(Clone, PartialEq, ::prost::Message)]
3209pub struct UpdateLocalVideoTrack {
3210 #[prost(string, tag="1")]
3211 pub track_sid: ::prost::alloc::string::String,
3212 #[prost(uint32, tag="2")]
3213 pub width: u32,
3214 #[prost(uint32, tag="3")]
3215 pub height: u32,
3216}
3217#[allow(clippy::derive_partial_eq_without_eq)]
3218#[derive(Clone, PartialEq, ::prost::Message)]
3219pub struct LeaveRequest {
3220 #[prost(bool, tag="1")]
3224 pub can_reconnect: bool,
3225 #[prost(enumeration="DisconnectReason", tag="2")]
3226 pub reason: i32,
3227 #[prost(enumeration="leave_request::Action", tag="3")]
3228 pub action: i32,
3229 #[prost(message, optional, tag="4")]
3230 pub regions: ::core::option::Option<RegionSettings>,
3231}
3232pub mod leave_request {
3234 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3236 #[repr(i32)]
3237 pub enum Action {
3238 Disconnect = 0,
3240 Resume = 1,
3242 Reconnect = 2,
3244 }
3245 impl Action {
3246 pub fn as_str_name(&self) -> &'static str {
3251 match self {
3252 Action::Disconnect => "DISCONNECT",
3253 Action::Resume => "RESUME",
3254 Action::Reconnect => "RECONNECT",
3255 }
3256 }
3257 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3259 match value {
3260 "DISCONNECT" => Some(Self::Disconnect),
3261 "RESUME" => Some(Self::Resume),
3262 "RECONNECT" => Some(Self::Reconnect),
3263 _ => None,
3264 }
3265 }
3266 }
3267}
3268#[allow(clippy::derive_partial_eq_without_eq)]
3270#[derive(Clone, PartialEq, ::prost::Message)]
3271pub struct UpdateVideoLayers {
3272 #[prost(string, tag="1")]
3273 pub track_sid: ::prost::alloc::string::String,
3274 #[prost(message, repeated, tag="2")]
3275 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3276}
3277#[allow(clippy::derive_partial_eq_without_eq)]
3278#[derive(Clone, PartialEq, ::prost::Message)]
3279pub struct UpdateParticipantMetadata {
3280 #[prost(string, tag="1")]
3281 pub metadata: ::prost::alloc::string::String,
3282 #[prost(string, tag="2")]
3283 pub name: ::prost::alloc::string::String,
3284 #[prost(map="string, string", tag="3")]
3287 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3288 #[prost(uint32, tag="4")]
3289 pub request_id: u32,
3290}
3291#[allow(clippy::derive_partial_eq_without_eq)]
3292#[derive(Clone, PartialEq, ::prost::Message)]
3293pub struct IceServer {
3294 #[prost(string, repeated, tag="1")]
3295 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3296 #[prost(string, tag="2")]
3297 pub username: ::prost::alloc::string::String,
3298 #[prost(string, tag="3")]
3299 pub credential: ::prost::alloc::string::String,
3300}
3301#[allow(clippy::derive_partial_eq_without_eq)]
3302#[derive(Clone, PartialEq, ::prost::Message)]
3303pub struct SpeakersChanged {
3304 #[prost(message, repeated, tag="1")]
3305 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3306}
3307#[allow(clippy::derive_partial_eq_without_eq)]
3308#[derive(Clone, PartialEq, ::prost::Message)]
3309pub struct RoomUpdate {
3310 #[prost(message, optional, tag="1")]
3311 pub room: ::core::option::Option<Room>,
3312}
3313#[allow(clippy::derive_partial_eq_without_eq)]
3314#[derive(Clone, PartialEq, ::prost::Message)]
3315pub struct ConnectionQualityInfo {
3316 #[prost(string, tag="1")]
3317 pub participant_sid: ::prost::alloc::string::String,
3318 #[prost(enumeration="ConnectionQuality", tag="2")]
3319 pub quality: i32,
3320 #[prost(float, tag="3")]
3321 pub score: f32,
3322}
3323#[allow(clippy::derive_partial_eq_without_eq)]
3324#[derive(Clone, PartialEq, ::prost::Message)]
3325pub struct ConnectionQualityUpdate {
3326 #[prost(message, repeated, tag="1")]
3327 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3328}
3329#[allow(clippy::derive_partial_eq_without_eq)]
3330#[derive(Clone, PartialEq, ::prost::Message)]
3331pub struct StreamStateInfo {
3332 #[prost(string, tag="1")]
3333 pub participant_sid: ::prost::alloc::string::String,
3334 #[prost(string, tag="2")]
3335 pub track_sid: ::prost::alloc::string::String,
3336 #[prost(enumeration="StreamState", tag="3")]
3337 pub state: i32,
3338}
3339#[allow(clippy::derive_partial_eq_without_eq)]
3340#[derive(Clone, PartialEq, ::prost::Message)]
3341pub struct StreamStateUpdate {
3342 #[prost(message, repeated, tag="1")]
3343 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3344}
3345#[allow(clippy::derive_partial_eq_without_eq)]
3346#[derive(Clone, PartialEq, ::prost::Message)]
3347pub struct SubscribedQuality {
3348 #[prost(enumeration="VideoQuality", tag="1")]
3349 pub quality: i32,
3350 #[prost(bool, tag="2")]
3351 pub enabled: bool,
3352}
3353#[allow(clippy::derive_partial_eq_without_eq)]
3354#[derive(Clone, PartialEq, ::prost::Message)]
3355pub struct SubscribedCodec {
3356 #[prost(string, tag="1")]
3357 pub codec: ::prost::alloc::string::String,
3358 #[prost(message, repeated, tag="2")]
3359 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3360}
3361#[allow(clippy::derive_partial_eq_without_eq)]
3362#[derive(Clone, PartialEq, ::prost::Message)]
3363pub struct SubscribedQualityUpdate {
3364 #[prost(string, tag="1")]
3365 pub track_sid: ::prost::alloc::string::String,
3366 #[prost(message, repeated, tag="2")]
3367 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3368 #[prost(message, repeated, tag="3")]
3369 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3370}
3371#[allow(clippy::derive_partial_eq_without_eq)]
3372#[derive(Clone, PartialEq, ::prost::Message)]
3373pub struct TrackPermission {
3374 #[prost(string, tag="1")]
3376 pub participant_sid: ::prost::alloc::string::String,
3377 #[prost(bool, tag="2")]
3378 pub all_tracks: bool,
3379 #[prost(string, repeated, tag="3")]
3380 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3381 #[prost(string, tag="4")]
3382 pub participant_identity: ::prost::alloc::string::String,
3383}
3384#[allow(clippy::derive_partial_eq_without_eq)]
3385#[derive(Clone, PartialEq, ::prost::Message)]
3386pub struct SubscriptionPermission {
3387 #[prost(bool, tag="1")]
3388 pub all_participants: bool,
3389 #[prost(message, repeated, tag="2")]
3390 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3391}
3392#[allow(clippy::derive_partial_eq_without_eq)]
3393#[derive(Clone, PartialEq, ::prost::Message)]
3394pub struct SubscriptionPermissionUpdate {
3395 #[prost(string, tag="1")]
3396 pub participant_sid: ::prost::alloc::string::String,
3397 #[prost(string, tag="2")]
3398 pub track_sid: ::prost::alloc::string::String,
3399 #[prost(bool, tag="3")]
3400 pub allowed: bool,
3401}
3402#[allow(clippy::derive_partial_eq_without_eq)]
3403#[derive(Clone, PartialEq, ::prost::Message)]
3404pub struct RoomMovedResponse {
3405 #[prost(message, optional, tag="1")]
3407 pub room: ::core::option::Option<Room>,
3408 #[prost(string, tag="2")]
3410 pub token: ::prost::alloc::string::String,
3411 #[prost(message, optional, tag="3")]
3412 pub participant: ::core::option::Option<ParticipantInfo>,
3413 #[prost(message, repeated, tag="4")]
3414 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3415}
3416#[allow(clippy::derive_partial_eq_without_eq)]
3417#[derive(Clone, PartialEq, ::prost::Message)]
3418pub struct SyncState {
3419 #[prost(message, optional, tag="1")]
3421 pub answer: ::core::option::Option<SessionDescription>,
3422 #[prost(message, optional, tag="2")]
3423 pub subscription: ::core::option::Option<UpdateSubscription>,
3424 #[prost(message, repeated, tag="3")]
3425 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3426 #[prost(message, repeated, tag="4")]
3427 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3428 #[prost(message, optional, tag="5")]
3430 pub offer: ::core::option::Option<SessionDescription>,
3431 #[prost(string, repeated, tag="6")]
3432 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3433}
3434#[allow(clippy::derive_partial_eq_without_eq)]
3435#[derive(Clone, PartialEq, ::prost::Message)]
3436pub struct DataChannelInfo {
3437 #[prost(string, tag="1")]
3438 pub label: ::prost::alloc::string::String,
3439 #[prost(uint32, tag="2")]
3440 pub id: u32,
3441 #[prost(enumeration="SignalTarget", tag="3")]
3442 pub target: i32,
3443}
3444#[allow(clippy::derive_partial_eq_without_eq)]
3445#[derive(Clone, PartialEq, ::prost::Message)]
3446pub struct SimulateScenario {
3447 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3448 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3449}
3450pub mod simulate_scenario {
3452 #[allow(clippy::derive_partial_eq_without_eq)]
3453#[derive(Clone, PartialEq, ::prost::Oneof)]
3454 pub enum Scenario {
3455 #[prost(int32, tag="1")]
3457 SpeakerUpdate(i32),
3458 #[prost(bool, tag="2")]
3460 NodeFailure(bool),
3461 #[prost(bool, tag="3")]
3463 Migration(bool),
3464 #[prost(bool, tag="4")]
3466 ServerLeave(bool),
3467 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3469 SwitchCandidateProtocol(i32),
3470 #[prost(int64, tag="6")]
3473 SubscriberBandwidth(i64),
3474 #[prost(bool, tag="7")]
3476 DisconnectSignalOnResume(bool),
3477 #[prost(bool, tag="8")]
3479 DisconnectSignalOnResumeNoMessages(bool),
3480 #[prost(bool, tag="9")]
3482 LeaveRequestFullReconnect(bool),
3483 }
3484}
3485#[allow(clippy::derive_partial_eq_without_eq)]
3486#[derive(Clone, PartialEq, ::prost::Message)]
3487pub struct Ping {
3488 #[prost(int64, tag="1")]
3489 pub timestamp: i64,
3490 #[prost(int64, tag="2")]
3492 pub rtt: i64,
3493}
3494#[allow(clippy::derive_partial_eq_without_eq)]
3495#[derive(Clone, PartialEq, ::prost::Message)]
3496pub struct Pong {
3497 #[prost(int64, tag="1")]
3499 pub last_ping_timestamp: i64,
3500 #[prost(int64, tag="2")]
3501 pub timestamp: i64,
3502}
3503#[allow(clippy::derive_partial_eq_without_eq)]
3504#[derive(Clone, PartialEq, ::prost::Message)]
3505pub struct RegionSettings {
3506 #[prost(message, repeated, tag="1")]
3507 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3508}
3509#[allow(clippy::derive_partial_eq_without_eq)]
3510#[derive(Clone, PartialEq, ::prost::Message)]
3511pub struct RegionInfo {
3512 #[prost(string, tag="1")]
3513 pub region: ::prost::alloc::string::String,
3514 #[prost(string, tag="2")]
3515 pub url: ::prost::alloc::string::String,
3516 #[prost(int64, tag="3")]
3517 pub distance: i64,
3518}
3519#[allow(clippy::derive_partial_eq_without_eq)]
3520#[derive(Clone, PartialEq, ::prost::Message)]
3521pub struct SubscriptionResponse {
3522 #[prost(string, tag="1")]
3523 pub track_sid: ::prost::alloc::string::String,
3524 #[prost(enumeration="SubscriptionError", tag="2")]
3525 pub err: i32,
3526}
3527#[allow(clippy::derive_partial_eq_without_eq)]
3528#[derive(Clone, PartialEq, ::prost::Message)]
3529pub struct RequestResponse {
3530 #[prost(uint32, tag="1")]
3531 pub request_id: u32,
3532 #[prost(enumeration="request_response::Reason", tag="2")]
3533 pub reason: i32,
3534 #[prost(string, tag="3")]
3535 pub message: ::prost::alloc::string::String,
3536}
3537pub mod request_response {
3539 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3540 #[repr(i32)]
3541 pub enum Reason {
3542 Ok = 0,
3543 NotFound = 1,
3544 NotAllowed = 2,
3545 LimitExceeded = 3,
3546 }
3547 impl Reason {
3548 pub fn as_str_name(&self) -> &'static str {
3553 match self {
3554 Reason::Ok => "OK",
3555 Reason::NotFound => "NOT_FOUND",
3556 Reason::NotAllowed => "NOT_ALLOWED",
3557 Reason::LimitExceeded => "LIMIT_EXCEEDED",
3558 }
3559 }
3560 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3562 match value {
3563 "OK" => Some(Self::Ok),
3564 "NOT_FOUND" => Some(Self::NotFound),
3565 "NOT_ALLOWED" => Some(Self::NotAllowed),
3566 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
3567 _ => None,
3568 }
3569 }
3570 }
3571}
3572#[allow(clippy::derive_partial_eq_without_eq)]
3573#[derive(Clone, PartialEq, ::prost::Message)]
3574pub struct TrackSubscribed {
3575 #[prost(string, tag="1")]
3576 pub track_sid: ::prost::alloc::string::String,
3577}
3578#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3579#[repr(i32)]
3580pub enum SignalTarget {
3581 Publisher = 0,
3582 Subscriber = 1,
3583}
3584impl SignalTarget {
3585 pub fn as_str_name(&self) -> &'static str {
3590 match self {
3591 SignalTarget::Publisher => "PUBLISHER",
3592 SignalTarget::Subscriber => "SUBSCRIBER",
3593 }
3594 }
3595 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3597 match value {
3598 "PUBLISHER" => Some(Self::Publisher),
3599 "SUBSCRIBER" => Some(Self::Subscriber),
3600 _ => None,
3601 }
3602 }
3603}
3604#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3605#[repr(i32)]
3606pub enum StreamState {
3607 Active = 0,
3608 Paused = 1,
3609}
3610impl StreamState {
3611 pub fn as_str_name(&self) -> &'static str {
3616 match self {
3617 StreamState::Active => "ACTIVE",
3618 StreamState::Paused => "PAUSED",
3619 }
3620 }
3621 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3623 match value {
3624 "ACTIVE" => Some(Self::Active),
3625 "PAUSED" => Some(Self::Paused),
3626 _ => None,
3627 }
3628 }
3629}
3630#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3631#[repr(i32)]
3632pub enum CandidateProtocol {
3633 Udp = 0,
3634 Tcp = 1,
3635 Tls = 2,
3636}
3637impl CandidateProtocol {
3638 pub fn as_str_name(&self) -> &'static str {
3643 match self {
3644 CandidateProtocol::Udp => "UDP",
3645 CandidateProtocol::Tcp => "TCP",
3646 CandidateProtocol::Tls => "TLS",
3647 }
3648 }
3649 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3651 match value {
3652 "UDP" => Some(Self::Udp),
3653 "TCP" => Some(Self::Tcp),
3654 "TLS" => Some(Self::Tls),
3655 _ => None,
3656 }
3657 }
3658}
3659#[allow(clippy::derive_partial_eq_without_eq)]
3660#[derive(Clone, PartialEq, ::prost::Message)]
3661pub struct Job {
3662 #[prost(string, tag="1")]
3663 pub id: ::prost::alloc::string::String,
3664 #[prost(string, tag="9")]
3665 pub dispatch_id: ::prost::alloc::string::String,
3666 #[prost(enumeration="JobType", tag="2")]
3667 pub r#type: i32,
3668 #[prost(message, optional, tag="3")]
3669 pub room: ::core::option::Option<Room>,
3670 #[prost(message, optional, tag="4")]
3671 pub participant: ::core::option::Option<ParticipantInfo>,
3672 #[deprecated]
3673 #[prost(string, tag="5")]
3674 pub namespace: ::prost::alloc::string::String,
3675 #[prost(string, tag="6")]
3676 pub metadata: ::prost::alloc::string::String,
3677 #[prost(string, tag="7")]
3678 pub agent_name: ::prost::alloc::string::String,
3679 #[prost(message, optional, tag="8")]
3680 pub state: ::core::option::Option<JobState>,
3681}
3682#[allow(clippy::derive_partial_eq_without_eq)]
3683#[derive(Clone, PartialEq, ::prost::Message)]
3684pub struct JobState {
3685 #[prost(enumeration="JobStatus", tag="1")]
3686 pub status: i32,
3687 #[prost(string, tag="2")]
3688 pub error: ::prost::alloc::string::String,
3689 #[prost(int64, tag="3")]
3690 pub started_at: i64,
3691 #[prost(int64, tag="4")]
3692 pub ended_at: i64,
3693 #[prost(int64, tag="5")]
3694 pub updated_at: i64,
3695 #[prost(string, tag="6")]
3696 pub participant_identity: ::prost::alloc::string::String,
3697}
3698#[allow(clippy::derive_partial_eq_without_eq)]
3700#[derive(Clone, PartialEq, ::prost::Message)]
3701pub struct WorkerMessage {
3702 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
3703 pub message: ::core::option::Option<worker_message::Message>,
3704}
3705pub mod worker_message {
3707 #[allow(clippy::derive_partial_eq_without_eq)]
3708#[derive(Clone, PartialEq, ::prost::Oneof)]
3709 pub enum Message {
3710 #[prost(message, tag="1")]
3712 Register(super::RegisterWorkerRequest),
3713 #[prost(message, tag="2")]
3715 Availability(super::AvailabilityResponse),
3716 #[prost(message, tag="3")]
3718 UpdateWorker(super::UpdateWorkerStatus),
3719 #[prost(message, tag="4")]
3721 UpdateJob(super::UpdateJobStatus),
3722 #[prost(message, tag="5")]
3723 Ping(super::WorkerPing),
3724 #[prost(message, tag="6")]
3725 SimulateJob(super::SimulateJobRequest),
3726 #[prost(message, tag="7")]
3727 MigrateJob(super::MigrateJobRequest),
3728 }
3729}
3730#[allow(clippy::derive_partial_eq_without_eq)]
3732#[derive(Clone, PartialEq, ::prost::Message)]
3733pub struct ServerMessage {
3734 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
3735 pub message: ::core::option::Option<server_message::Message>,
3736}
3737pub mod server_message {
3739 #[allow(clippy::derive_partial_eq_without_eq)]
3740#[derive(Clone, PartialEq, ::prost::Oneof)]
3741 pub enum Message {
3742 #[prost(message, tag="1")]
3744 Register(super::RegisterWorkerResponse),
3745 #[prost(message, tag="2")]
3747 Availability(super::AvailabilityRequest),
3748 #[prost(message, tag="3")]
3749 Assignment(super::JobAssignment),
3750 #[prost(message, tag="5")]
3751 Termination(super::JobTermination),
3752 #[prost(message, tag="4")]
3753 Pong(super::WorkerPong),
3754 }
3755}
3756#[allow(clippy::derive_partial_eq_without_eq)]
3757#[derive(Clone, PartialEq, ::prost::Message)]
3758pub struct SimulateJobRequest {
3759 #[prost(enumeration="JobType", tag="1")]
3760 pub r#type: i32,
3761 #[prost(message, optional, tag="2")]
3762 pub room: ::core::option::Option<Room>,
3763 #[prost(message, optional, tag="3")]
3764 pub participant: ::core::option::Option<ParticipantInfo>,
3765}
3766#[allow(clippy::derive_partial_eq_without_eq)]
3767#[derive(Clone, PartialEq, ::prost::Message)]
3768pub struct WorkerPing {
3769 #[prost(int64, tag="1")]
3770 pub timestamp: i64,
3771}
3772#[allow(clippy::derive_partial_eq_without_eq)]
3773#[derive(Clone, PartialEq, ::prost::Message)]
3774pub struct WorkerPong {
3775 #[prost(int64, tag="1")]
3776 pub last_timestamp: i64,
3777 #[prost(int64, tag="2")]
3778 pub timestamp: i64,
3779}
3780#[allow(clippy::derive_partial_eq_without_eq)]
3781#[derive(Clone, PartialEq, ::prost::Message)]
3782pub struct RegisterWorkerRequest {
3783 #[prost(enumeration="JobType", tag="1")]
3784 pub r#type: i32,
3785 #[prost(string, tag="8")]
3786 pub agent_name: ::prost::alloc::string::String,
3787 #[prost(string, tag="3")]
3789 pub version: ::prost::alloc::string::String,
3790 #[prost(uint32, tag="5")]
3792 pub ping_interval: u32,
3793 #[prost(string, optional, tag="6")]
3794 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
3795 #[prost(message, optional, tag="7")]
3796 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
3797}
3798#[allow(clippy::derive_partial_eq_without_eq)]
3799#[derive(Clone, PartialEq, ::prost::Message)]
3800pub struct RegisterWorkerResponse {
3801 #[prost(string, tag="1")]
3802 pub worker_id: ::prost::alloc::string::String,
3803 #[prost(message, optional, tag="3")]
3804 pub server_info: ::core::option::Option<ServerInfo>,
3805}
3806#[allow(clippy::derive_partial_eq_without_eq)]
3807#[derive(Clone, PartialEq, ::prost::Message)]
3808pub struct MigrateJobRequest {
3809 #[prost(string, repeated, tag="2")]
3811 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3812}
3813#[allow(clippy::derive_partial_eq_without_eq)]
3814#[derive(Clone, PartialEq, ::prost::Message)]
3815pub struct AvailabilityRequest {
3816 #[prost(message, optional, tag="1")]
3817 pub job: ::core::option::Option<Job>,
3818 #[prost(bool, tag="2")]
3821 pub resuming: bool,
3822}
3823#[allow(clippy::derive_partial_eq_without_eq)]
3824#[derive(Clone, PartialEq, ::prost::Message)]
3825pub struct AvailabilityResponse {
3826 #[prost(string, tag="1")]
3827 pub job_id: ::prost::alloc::string::String,
3828 #[prost(bool, tag="2")]
3829 pub available: bool,
3830 #[prost(bool, tag="3")]
3831 pub supports_resume: bool,
3832 #[prost(string, tag="4")]
3833 pub participant_name: ::prost::alloc::string::String,
3834 #[prost(string, tag="5")]
3835 pub participant_identity: ::prost::alloc::string::String,
3836 #[prost(string, tag="6")]
3837 pub participant_metadata: ::prost::alloc::string::String,
3838 #[prost(map="string, string", tag="7")]
3839 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3840}
3841#[allow(clippy::derive_partial_eq_without_eq)]
3842#[derive(Clone, PartialEq, ::prost::Message)]
3843pub struct UpdateJobStatus {
3844 #[prost(string, tag="1")]
3845 pub job_id: ::prost::alloc::string::String,
3846 #[prost(enumeration="JobStatus", tag="2")]
3848 pub status: i32,
3849 #[prost(string, tag="3")]
3851 pub error: ::prost::alloc::string::String,
3852}
3853#[allow(clippy::derive_partial_eq_without_eq)]
3854#[derive(Clone, PartialEq, ::prost::Message)]
3855pub struct UpdateWorkerStatus {
3856 #[prost(enumeration="WorkerStatus", optional, tag="1")]
3857 pub status: ::core::option::Option<i32>,
3858 #[prost(float, tag="3")]
3860 pub load: f32,
3861 #[prost(uint32, tag="4")]
3862 pub job_count: u32,
3863}
3864#[allow(clippy::derive_partial_eq_without_eq)]
3865#[derive(Clone, PartialEq, ::prost::Message)]
3866pub struct JobAssignment {
3867 #[prost(message, optional, tag="1")]
3868 pub job: ::core::option::Option<Job>,
3869 #[prost(string, optional, tag="2")]
3870 pub url: ::core::option::Option<::prost::alloc::string::String>,
3871 #[prost(string, tag="3")]
3872 pub token: ::prost::alloc::string::String,
3873}
3874#[allow(clippy::derive_partial_eq_without_eq)]
3875#[derive(Clone, PartialEq, ::prost::Message)]
3876pub struct JobTermination {
3877 #[prost(string, tag="1")]
3878 pub job_id: ::prost::alloc::string::String,
3879}
3880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3881#[repr(i32)]
3882pub enum JobType {
3883 JtRoom = 0,
3884 JtPublisher = 1,
3885 JtParticipant = 2,
3886}
3887impl JobType {
3888 pub fn as_str_name(&self) -> &'static str {
3893 match self {
3894 JobType::JtRoom => "JT_ROOM",
3895 JobType::JtPublisher => "JT_PUBLISHER",
3896 JobType::JtParticipant => "JT_PARTICIPANT",
3897 }
3898 }
3899 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3901 match value {
3902 "JT_ROOM" => Some(Self::JtRoom),
3903 "JT_PUBLISHER" => Some(Self::JtPublisher),
3904 "JT_PARTICIPANT" => Some(Self::JtParticipant),
3905 _ => None,
3906 }
3907 }
3908}
3909#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3910#[repr(i32)]
3911pub enum WorkerStatus {
3912 WsAvailable = 0,
3913 WsFull = 1,
3914}
3915impl WorkerStatus {
3916 pub fn as_str_name(&self) -> &'static str {
3921 match self {
3922 WorkerStatus::WsAvailable => "WS_AVAILABLE",
3923 WorkerStatus::WsFull => "WS_FULL",
3924 }
3925 }
3926 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3928 match value {
3929 "WS_AVAILABLE" => Some(Self::WsAvailable),
3930 "WS_FULL" => Some(Self::WsFull),
3931 _ => None,
3932 }
3933 }
3934}
3935#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3936#[repr(i32)]
3937pub enum JobStatus {
3938 JsPending = 0,
3939 JsRunning = 1,
3940 JsSuccess = 2,
3941 JsFailed = 3,
3942}
3943impl JobStatus {
3944 pub fn as_str_name(&self) -> &'static str {
3949 match self {
3950 JobStatus::JsPending => "JS_PENDING",
3951 JobStatus::JsRunning => "JS_RUNNING",
3952 JobStatus::JsSuccess => "JS_SUCCESS",
3953 JobStatus::JsFailed => "JS_FAILED",
3954 }
3955 }
3956 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3958 match value {
3959 "JS_PENDING" => Some(Self::JsPending),
3960 "JS_RUNNING" => Some(Self::JsRunning),
3961 "JS_SUCCESS" => Some(Self::JsSuccess),
3962 "JS_FAILED" => Some(Self::JsFailed),
3963 _ => None,
3964 }
3965 }
3966}
3967#[allow(clippy::derive_partial_eq_without_eq)]
3968#[derive(Clone, PartialEq, ::prost::Message)]
3969pub struct CreateAgentDispatchRequest {
3970 #[prost(string, tag="1")]
3971 pub agent_name: ::prost::alloc::string::String,
3972 #[prost(string, tag="2")]
3973 pub room: ::prost::alloc::string::String,
3974 #[prost(string, tag="3")]
3975 pub metadata: ::prost::alloc::string::String,
3976}
3977#[allow(clippy::derive_partial_eq_without_eq)]
3978#[derive(Clone, PartialEq, ::prost::Message)]
3979pub struct RoomAgentDispatch {
3980 #[prost(string, tag="1")]
3981 pub agent_name: ::prost::alloc::string::String,
3982 #[prost(string, tag="2")]
3983 pub metadata: ::prost::alloc::string::String,
3984}
3985#[allow(clippy::derive_partial_eq_without_eq)]
3986#[derive(Clone, PartialEq, ::prost::Message)]
3987pub struct DeleteAgentDispatchRequest {
3988 #[prost(string, tag="1")]
3989 pub dispatch_id: ::prost::alloc::string::String,
3990 #[prost(string, tag="2")]
3991 pub room: ::prost::alloc::string::String,
3992}
3993#[allow(clippy::derive_partial_eq_without_eq)]
3994#[derive(Clone, PartialEq, ::prost::Message)]
3995pub struct ListAgentDispatchRequest {
3996 #[prost(string, tag="1")]
3998 pub dispatch_id: ::prost::alloc::string::String,
3999 #[prost(string, tag="2")]
4001 pub room: ::prost::alloc::string::String,
4002}
4003#[allow(clippy::derive_partial_eq_without_eq)]
4004#[derive(Clone, PartialEq, ::prost::Message)]
4005pub struct ListAgentDispatchResponse {
4006 #[prost(message, repeated, tag="1")]
4007 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4008}
4009#[allow(clippy::derive_partial_eq_without_eq)]
4010#[derive(Clone, PartialEq, ::prost::Message)]
4011pub struct AgentDispatch {
4012 #[prost(string, tag="1")]
4013 pub id: ::prost::alloc::string::String,
4014 #[prost(string, tag="2")]
4015 pub agent_name: ::prost::alloc::string::String,
4016 #[prost(string, tag="3")]
4017 pub room: ::prost::alloc::string::String,
4018 #[prost(string, tag="4")]
4019 pub metadata: ::prost::alloc::string::String,
4020 #[prost(message, optional, tag="5")]
4021 pub state: ::core::option::Option<AgentDispatchState>,
4022}
4023#[allow(clippy::derive_partial_eq_without_eq)]
4024#[derive(Clone, PartialEq, ::prost::Message)]
4025pub struct AgentDispatchState {
4026 #[prost(message, repeated, tag="1")]
4029 pub jobs: ::prost::alloc::vec::Vec<Job>,
4030 #[prost(int64, tag="2")]
4031 pub created_at: i64,
4032 #[prost(int64, tag="3")]
4033 pub deleted_at: i64,
4034}
4035#[allow(clippy::derive_partial_eq_without_eq)]
4036#[derive(Clone, PartialEq, ::prost::Message)]
4037pub struct CreateRoomRequest {
4038 #[prost(string, tag="1")]
4040 pub name: ::prost::alloc::string::String,
4041 #[prost(string, tag="12")]
4043 pub room_preset: ::prost::alloc::string::String,
4044 #[prost(uint32, tag="2")]
4046 pub empty_timeout: u32,
4047 #[prost(uint32, tag="10")]
4049 pub departure_timeout: u32,
4050 #[prost(uint32, tag="3")]
4052 pub max_participants: u32,
4053 #[prost(string, tag="4")]
4055 pub node_id: ::prost::alloc::string::String,
4056 #[prost(string, tag="5")]
4058 pub metadata: ::prost::alloc::string::String,
4059 #[prost(message, optional, tag="6")]
4061 pub egress: ::core::option::Option<RoomEgress>,
4062 #[prost(uint32, tag="7")]
4064 pub min_playout_delay: u32,
4065 #[prost(uint32, tag="8")]
4066 pub max_playout_delay: u32,
4067 #[prost(bool, tag="9")]
4070 pub sync_streams: bool,
4071 #[prost(bool, tag="13")]
4073 pub replay_enabled: bool,
4074 #[prost(message, repeated, tag="14")]
4078 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4079}
4080#[allow(clippy::derive_partial_eq_without_eq)]
4081#[derive(Clone, PartialEq, ::prost::Message)]
4082pub struct RoomEgress {
4083 #[prost(message, optional, tag="1")]
4084 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
4085 #[prost(message, optional, tag="3")]
4086 pub participant: ::core::option::Option<AutoParticipantEgress>,
4087 #[prost(message, optional, tag="2")]
4088 pub tracks: ::core::option::Option<AutoTrackEgress>,
4089}
4090#[allow(clippy::derive_partial_eq_without_eq)]
4091#[derive(Clone, PartialEq, ::prost::Message)]
4092pub struct RoomAgent {
4093 #[prost(message, repeated, tag="1")]
4094 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4095}
4096#[allow(clippy::derive_partial_eq_without_eq)]
4097#[derive(Clone, PartialEq, ::prost::Message)]
4098pub struct ListRoomsRequest {
4099 #[prost(string, repeated, tag="1")]
4101 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4102}
4103#[allow(clippy::derive_partial_eq_without_eq)]
4104#[derive(Clone, PartialEq, ::prost::Message)]
4105pub struct ListRoomsResponse {
4106 #[prost(message, repeated, tag="1")]
4107 pub rooms: ::prost::alloc::vec::Vec<Room>,
4108}
4109#[allow(clippy::derive_partial_eq_without_eq)]
4110#[derive(Clone, PartialEq, ::prost::Message)]
4111pub struct DeleteRoomRequest {
4112 #[prost(string, tag="1")]
4114 pub room: ::prost::alloc::string::String,
4115}
4116#[allow(clippy::derive_partial_eq_without_eq)]
4117#[derive(Clone, PartialEq, ::prost::Message)]
4118pub struct DeleteRoomResponse {
4119}
4120#[allow(clippy::derive_partial_eq_without_eq)]
4121#[derive(Clone, PartialEq, ::prost::Message)]
4122pub struct ListParticipantsRequest {
4123 #[prost(string, tag="1")]
4125 pub room: ::prost::alloc::string::String,
4126}
4127#[allow(clippy::derive_partial_eq_without_eq)]
4128#[derive(Clone, PartialEq, ::prost::Message)]
4129pub struct ListParticipantsResponse {
4130 #[prost(message, repeated, tag="1")]
4131 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4132}
4133#[allow(clippy::derive_partial_eq_without_eq)]
4134#[derive(Clone, PartialEq, ::prost::Message)]
4135pub struct RoomParticipantIdentity {
4136 #[prost(string, tag="1")]
4138 pub room: ::prost::alloc::string::String,
4139 #[prost(string, tag="2")]
4141 pub identity: ::prost::alloc::string::String,
4142}
4143#[allow(clippy::derive_partial_eq_without_eq)]
4144#[derive(Clone, PartialEq, ::prost::Message)]
4145pub struct RemoveParticipantResponse {
4146}
4147#[allow(clippy::derive_partial_eq_without_eq)]
4148#[derive(Clone, PartialEq, ::prost::Message)]
4149pub struct MuteRoomTrackRequest {
4150 #[prost(string, tag="1")]
4152 pub room: ::prost::alloc::string::String,
4153 #[prost(string, tag="2")]
4154 pub identity: ::prost::alloc::string::String,
4155 #[prost(string, tag="3")]
4157 pub track_sid: ::prost::alloc::string::String,
4158 #[prost(bool, tag="4")]
4160 pub muted: bool,
4161}
4162#[allow(clippy::derive_partial_eq_without_eq)]
4163#[derive(Clone, PartialEq, ::prost::Message)]
4164pub struct MuteRoomTrackResponse {
4165 #[prost(message, optional, tag="1")]
4166 pub track: ::core::option::Option<TrackInfo>,
4167}
4168#[allow(clippy::derive_partial_eq_without_eq)]
4169#[derive(Clone, PartialEq, ::prost::Message)]
4170pub struct UpdateParticipantRequest {
4171 #[prost(string, tag="1")]
4172 pub room: ::prost::alloc::string::String,
4173 #[prost(string, tag="2")]
4174 pub identity: ::prost::alloc::string::String,
4175 #[prost(string, tag="3")]
4177 pub metadata: ::prost::alloc::string::String,
4178 #[prost(message, optional, tag="4")]
4180 pub permission: ::core::option::Option<ParticipantPermission>,
4181 #[prost(string, tag="5")]
4183 pub name: ::prost::alloc::string::String,
4184 #[prost(map="string, string", tag="6")]
4187 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4188}
4189#[allow(clippy::derive_partial_eq_without_eq)]
4190#[derive(Clone, PartialEq, ::prost::Message)]
4191pub struct UpdateSubscriptionsRequest {
4192 #[prost(string, tag="1")]
4193 pub room: ::prost::alloc::string::String,
4194 #[prost(string, tag="2")]
4195 pub identity: ::prost::alloc::string::String,
4196 #[prost(string, repeated, tag="3")]
4198 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4199 #[prost(bool, tag="4")]
4201 pub subscribe: bool,
4202 #[prost(message, repeated, tag="5")]
4204 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4205}
4206#[allow(clippy::derive_partial_eq_without_eq)]
4208#[derive(Clone, PartialEq, ::prost::Message)]
4209pub struct UpdateSubscriptionsResponse {
4210}
4211#[allow(clippy::derive_partial_eq_without_eq)]
4212#[derive(Clone, PartialEq, ::prost::Message)]
4213pub struct SendDataRequest {
4214 #[prost(string, tag="1")]
4215 pub room: ::prost::alloc::string::String,
4216 #[prost(bytes="vec", tag="2")]
4217 pub data: ::prost::alloc::vec::Vec<u8>,
4218 #[prost(enumeration="data_packet::Kind", tag="3")]
4219 pub kind: i32,
4220 #[deprecated]
4222 #[prost(string, repeated, tag="4")]
4223 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4224 #[prost(string, repeated, tag="6")]
4226 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4227 #[prost(string, optional, tag="5")]
4228 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4229 #[prost(bytes="vec", tag="7")]
4231 pub nonce: ::prost::alloc::vec::Vec<u8>,
4232}
4233#[allow(clippy::derive_partial_eq_without_eq)]
4235#[derive(Clone, PartialEq, ::prost::Message)]
4236pub struct SendDataResponse {
4237}
4238#[allow(clippy::derive_partial_eq_without_eq)]
4239#[derive(Clone, PartialEq, ::prost::Message)]
4240pub struct UpdateRoomMetadataRequest {
4241 #[prost(string, tag="1")]
4242 pub room: ::prost::alloc::string::String,
4243 #[prost(string, tag="2")]
4245 pub metadata: ::prost::alloc::string::String,
4246}
4247#[allow(clippy::derive_partial_eq_without_eq)]
4248#[derive(Clone, PartialEq, ::prost::Message)]
4249pub struct RoomConfiguration {
4250 #[prost(string, tag="1")]
4252 pub name: ::prost::alloc::string::String,
4253 #[prost(uint32, tag="2")]
4255 pub empty_timeout: u32,
4256 #[prost(uint32, tag="3")]
4258 pub departure_timeout: u32,
4259 #[prost(uint32, tag="4")]
4261 pub max_participants: u32,
4262 #[prost(message, optional, tag="5")]
4264 pub egress: ::core::option::Option<RoomEgress>,
4265 #[prost(uint32, tag="7")]
4267 pub min_playout_delay: u32,
4268 #[prost(uint32, tag="8")]
4269 pub max_playout_delay: u32,
4270 #[prost(bool, tag="9")]
4273 pub sync_streams: bool,
4274 #[prost(message, repeated, tag="10")]
4276 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4277}
4278#[allow(clippy::derive_partial_eq_without_eq)]
4279#[derive(Clone, PartialEq, ::prost::Message)]
4280pub struct ForwardParticipantRequest {
4281 #[prost(string, tag="1")]
4283 pub room: ::prost::alloc::string::String,
4284 #[prost(string, tag="2")]
4286 pub identity: ::prost::alloc::string::String,
4287 #[prost(string, tag="3")]
4289 pub destination_room: ::prost::alloc::string::String,
4290}
4291#[allow(clippy::derive_partial_eq_without_eq)]
4292#[derive(Clone, PartialEq, ::prost::Message)]
4293pub struct ForwardParticipantResponse {
4294}
4295#[allow(clippy::derive_partial_eq_without_eq)]
4296#[derive(Clone, PartialEq, ::prost::Message)]
4297pub struct MoveParticipantRequest {
4298 #[prost(string, tag="1")]
4300 pub room: ::prost::alloc::string::String,
4301 #[prost(string, tag="2")]
4303 pub identity: ::prost::alloc::string::String,
4304 #[prost(string, tag="3")]
4306 pub destination_room: ::prost::alloc::string::String,
4307}
4308#[allow(clippy::derive_partial_eq_without_eq)]
4309#[derive(Clone, PartialEq, ::prost::Message)]
4310pub struct MoveParticipantResponse {
4311}
4312#[allow(clippy::derive_partial_eq_without_eq)]
4313#[derive(Clone, PartialEq, ::prost::Message)]
4314pub struct CreateIngressRequest {
4315 #[prost(enumeration="IngressInput", tag="1")]
4316 pub input_type: i32,
4317 #[prost(string, tag="9")]
4319 pub url: ::prost::alloc::string::String,
4320 #[prost(string, tag="2")]
4322 pub name: ::prost::alloc::string::String,
4323 #[prost(string, tag="3")]
4325 pub room_name: ::prost::alloc::string::String,
4326 #[prost(string, tag="4")]
4328 pub participant_identity: ::prost::alloc::string::String,
4329 #[prost(string, tag="5")]
4331 pub participant_name: ::prost::alloc::string::String,
4332 #[prost(string, tag="10")]
4334 pub participant_metadata: ::prost::alloc::string::String,
4335 #[deprecated]
4337 #[prost(bool, tag="8")]
4338 pub bypass_transcoding: bool,
4339 #[prost(bool, optional, tag="11")]
4341 pub enable_transcoding: ::core::option::Option<bool>,
4342 #[prost(message, optional, tag="6")]
4343 pub audio: ::core::option::Option<IngressAudioOptions>,
4344 #[prost(message, optional, tag="7")]
4345 pub video: ::core::option::Option<IngressVideoOptions>,
4346 #[prost(bool, optional, tag="12")]
4348 pub enabled: ::core::option::Option<bool>,
4349}
4350#[allow(clippy::derive_partial_eq_without_eq)]
4351#[derive(Clone, PartialEq, ::prost::Message)]
4352pub struct IngressAudioOptions {
4353 #[prost(string, tag="1")]
4354 pub name: ::prost::alloc::string::String,
4355 #[prost(enumeration="TrackSource", tag="2")]
4356 pub source: i32,
4357 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4358 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4359}
4360pub mod ingress_audio_options {
4362 #[allow(clippy::derive_partial_eq_without_eq)]
4363#[derive(Clone, PartialEq, ::prost::Oneof)]
4364 pub enum EncodingOptions {
4365 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4366 Preset(i32),
4367 #[prost(message, tag="4")]
4368 Options(super::IngressAudioEncodingOptions),
4369 }
4370}
4371#[allow(clippy::derive_partial_eq_without_eq)]
4372#[derive(Clone, PartialEq, ::prost::Message)]
4373pub struct IngressVideoOptions {
4374 #[prost(string, tag="1")]
4375 pub name: ::prost::alloc::string::String,
4376 #[prost(enumeration="TrackSource", tag="2")]
4377 pub source: i32,
4378 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
4379 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
4380}
4381pub mod ingress_video_options {
4383 #[allow(clippy::derive_partial_eq_without_eq)]
4384#[derive(Clone, PartialEq, ::prost::Oneof)]
4385 pub enum EncodingOptions {
4386 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
4387 Preset(i32),
4388 #[prost(message, tag="4")]
4389 Options(super::IngressVideoEncodingOptions),
4390 }
4391}
4392#[allow(clippy::derive_partial_eq_without_eq)]
4393#[derive(Clone, PartialEq, ::prost::Message)]
4394pub struct IngressAudioEncodingOptions {
4395 #[prost(enumeration="AudioCodec", tag="1")]
4397 pub audio_codec: i32,
4398 #[prost(uint32, tag="2")]
4399 pub bitrate: u32,
4400 #[prost(bool, tag="3")]
4401 pub disable_dtx: bool,
4402 #[prost(uint32, tag="4")]
4403 pub channels: u32,
4404}
4405#[allow(clippy::derive_partial_eq_without_eq)]
4406#[derive(Clone, PartialEq, ::prost::Message)]
4407pub struct IngressVideoEncodingOptions {
4408 #[prost(enumeration="VideoCodec", tag="1")]
4410 pub video_codec: i32,
4411 #[prost(double, tag="2")]
4412 pub frame_rate: f64,
4413 #[prost(message, repeated, tag="3")]
4415 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4416}
4417#[allow(clippy::derive_partial_eq_without_eq)]
4418#[derive(Clone, PartialEq, ::prost::Message)]
4419pub struct IngressInfo {
4420 #[prost(string, tag="1")]
4421 pub ingress_id: ::prost::alloc::string::String,
4422 #[prost(string, tag="2")]
4423 pub name: ::prost::alloc::string::String,
4424 #[prost(string, tag="3")]
4425 pub stream_key: ::prost::alloc::string::String,
4426 #[prost(string, tag="4")]
4428 pub url: ::prost::alloc::string::String,
4429 #[prost(enumeration="IngressInput", tag="5")]
4433 pub input_type: i32,
4434 #[deprecated]
4435 #[prost(bool, tag="13")]
4436 pub bypass_transcoding: bool,
4437 #[prost(bool, optional, tag="15")]
4438 pub enable_transcoding: ::core::option::Option<bool>,
4439 #[prost(message, optional, tag="6")]
4440 pub audio: ::core::option::Option<IngressAudioOptions>,
4441 #[prost(message, optional, tag="7")]
4442 pub video: ::core::option::Option<IngressVideoOptions>,
4443 #[prost(string, tag="8")]
4444 pub room_name: ::prost::alloc::string::String,
4445 #[prost(string, tag="9")]
4446 pub participant_identity: ::prost::alloc::string::String,
4447 #[prost(string, tag="10")]
4448 pub participant_name: ::prost::alloc::string::String,
4449 #[prost(string, tag="14")]
4450 pub participant_metadata: ::prost::alloc::string::String,
4451 #[prost(bool, tag="11")]
4452 pub reusable: bool,
4453 #[prost(message, optional, tag="12")]
4455 pub state: ::core::option::Option<IngressState>,
4456 #[prost(bool, optional, tag="16")]
4458 pub enabled: ::core::option::Option<bool>,
4459}
4460#[allow(clippy::derive_partial_eq_without_eq)]
4461#[derive(Clone, PartialEq, ::prost::Message)]
4462pub struct IngressState {
4463 #[prost(enumeration="ingress_state::Status", tag="1")]
4464 pub status: i32,
4465 #[prost(string, tag="2")]
4467 pub error: ::prost::alloc::string::String,
4468 #[prost(message, optional, tag="3")]
4469 pub video: ::core::option::Option<InputVideoState>,
4470 #[prost(message, optional, tag="4")]
4471 pub audio: ::core::option::Option<InputAudioState>,
4472 #[prost(string, tag="5")]
4474 pub room_id: ::prost::alloc::string::String,
4475 #[prost(int64, tag="7")]
4476 pub started_at: i64,
4477 #[prost(int64, tag="8")]
4478 pub ended_at: i64,
4479 #[prost(int64, tag="10")]
4480 pub updated_at: i64,
4481 #[prost(string, tag="9")]
4482 pub resource_id: ::prost::alloc::string::String,
4483 #[prost(message, repeated, tag="6")]
4484 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
4485}
4486pub mod ingress_state {
4488 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4489 #[repr(i32)]
4490 pub enum Status {
4491 EndpointInactive = 0,
4492 EndpointBuffering = 1,
4493 EndpointPublishing = 2,
4494 EndpointError = 3,
4495 EndpointComplete = 4,
4496 }
4497 impl Status {
4498 pub fn as_str_name(&self) -> &'static str {
4503 match self {
4504 Status::EndpointInactive => "ENDPOINT_INACTIVE",
4505 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
4506 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
4507 Status::EndpointError => "ENDPOINT_ERROR",
4508 Status::EndpointComplete => "ENDPOINT_COMPLETE",
4509 }
4510 }
4511 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4513 match value {
4514 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
4515 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
4516 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
4517 "ENDPOINT_ERROR" => Some(Self::EndpointError),
4518 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
4519 _ => None,
4520 }
4521 }
4522 }
4523}
4524#[allow(clippy::derive_partial_eq_without_eq)]
4525#[derive(Clone, PartialEq, ::prost::Message)]
4526pub struct InputVideoState {
4527 #[prost(string, tag="1")]
4528 pub mime_type: ::prost::alloc::string::String,
4529 #[prost(uint32, tag="2")]
4530 pub average_bitrate: u32,
4531 #[prost(uint32, tag="3")]
4532 pub width: u32,
4533 #[prost(uint32, tag="4")]
4534 pub height: u32,
4535 #[prost(double, tag="5")]
4536 pub framerate: f64,
4537}
4538#[allow(clippy::derive_partial_eq_without_eq)]
4539#[derive(Clone, PartialEq, ::prost::Message)]
4540pub struct InputAudioState {
4541 #[prost(string, tag="1")]
4542 pub mime_type: ::prost::alloc::string::String,
4543 #[prost(uint32, tag="2")]
4544 pub average_bitrate: u32,
4545 #[prost(uint32, tag="3")]
4546 pub channels: u32,
4547 #[prost(uint32, tag="4")]
4548 pub sample_rate: u32,
4549}
4550#[allow(clippy::derive_partial_eq_without_eq)]
4551#[derive(Clone, PartialEq, ::prost::Message)]
4552pub struct UpdateIngressRequest {
4553 #[prost(string, tag="1")]
4554 pub ingress_id: ::prost::alloc::string::String,
4555 #[prost(string, tag="2")]
4556 pub name: ::prost::alloc::string::String,
4557 #[prost(string, tag="3")]
4558 pub room_name: ::prost::alloc::string::String,
4559 #[prost(string, tag="4")]
4560 pub participant_identity: ::prost::alloc::string::String,
4561 #[prost(string, tag="5")]
4562 pub participant_name: ::prost::alloc::string::String,
4563 #[prost(string, tag="9")]
4564 pub participant_metadata: ::prost::alloc::string::String,
4565 #[deprecated]
4566 #[prost(bool, optional, tag="8")]
4567 pub bypass_transcoding: ::core::option::Option<bool>,
4568 #[prost(bool, optional, tag="10")]
4569 pub enable_transcoding: ::core::option::Option<bool>,
4570 #[prost(message, optional, tag="6")]
4571 pub audio: ::core::option::Option<IngressAudioOptions>,
4572 #[prost(message, optional, tag="7")]
4573 pub video: ::core::option::Option<IngressVideoOptions>,
4574 #[prost(bool, optional, tag="11")]
4576 pub enabled: ::core::option::Option<bool>,
4577}
4578#[allow(clippy::derive_partial_eq_without_eq)]
4579#[derive(Clone, PartialEq, ::prost::Message)]
4580pub struct ListIngressRequest {
4581 #[prost(string, tag="1")]
4585 pub room_name: ::prost::alloc::string::String,
4586 #[prost(string, tag="2")]
4588 pub ingress_id: ::prost::alloc::string::String,
4589}
4590#[allow(clippy::derive_partial_eq_without_eq)]
4591#[derive(Clone, PartialEq, ::prost::Message)]
4592pub struct ListIngressResponse {
4593 #[prost(message, repeated, tag="1")]
4594 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
4595}
4596#[allow(clippy::derive_partial_eq_without_eq)]
4597#[derive(Clone, PartialEq, ::prost::Message)]
4598pub struct DeleteIngressRequest {
4599 #[prost(string, tag="1")]
4600 pub ingress_id: ::prost::alloc::string::String,
4601}
4602#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4603#[repr(i32)]
4604pub enum IngressInput {
4605 RtmpInput = 0,
4606 WhipInput = 1,
4607 UrlInput = 2,
4609}
4610impl IngressInput {
4611 pub fn as_str_name(&self) -> &'static str {
4616 match self {
4617 IngressInput::RtmpInput => "RTMP_INPUT",
4618 IngressInput::WhipInput => "WHIP_INPUT",
4619 IngressInput::UrlInput => "URL_INPUT",
4620 }
4621 }
4622 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4624 match value {
4625 "RTMP_INPUT" => Some(Self::RtmpInput),
4626 "WHIP_INPUT" => Some(Self::WhipInput),
4627 "URL_INPUT" => Some(Self::UrlInput),
4628 _ => None,
4629 }
4630 }
4631}
4632#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4633#[repr(i32)]
4634pub enum IngressAudioEncodingPreset {
4635 OpusStereo96kbps = 0,
4637 OpusMono64kbs = 1,
4639}
4640impl IngressAudioEncodingPreset {
4641 pub fn as_str_name(&self) -> &'static str {
4646 match self {
4647 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
4648 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
4649 }
4650 }
4651 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4653 match value {
4654 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
4655 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
4656 _ => None,
4657 }
4658 }
4659}
4660#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4661#[repr(i32)]
4662pub enum IngressVideoEncodingPreset {
4663 H264720p30fps3Layers = 0,
4665 H2641080p30fps3Layers = 1,
4667 H264540p25fps2Layers = 2,
4669 H264720p30fps1Layer = 3,
4671 H2641080p30fps1Layer = 4,
4673 H264720p30fps3LayersHighMotion = 5,
4675 H2641080p30fps3LayersHighMotion = 6,
4677 H264540p25fps2LayersHighMotion = 7,
4679 H264720p30fps1LayerHighMotion = 8,
4681 H2641080p30fps1LayerHighMotion = 9,
4683}
4684impl IngressVideoEncodingPreset {
4685 pub fn as_str_name(&self) -> &'static str {
4690 match self {
4691 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
4692 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
4693 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
4694 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
4695 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
4696 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
4697 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
4698 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
4699 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
4700 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
4701 }
4702 }
4703 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4705 match value {
4706 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
4707 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
4708 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
4709 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
4710 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
4711 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
4712 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
4713 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
4714 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
4715 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
4716 _ => None,
4717 }
4718 }
4719}
4720#[allow(clippy::derive_partial_eq_without_eq)]
4721#[derive(Clone, PartialEq, ::prost::Message)]
4722pub struct WebhookEvent {
4723 #[prost(string, tag="1")]
4727 pub event: ::prost::alloc::string::String,
4728 #[prost(message, optional, tag="2")]
4729 pub room: ::core::option::Option<Room>,
4730 #[prost(message, optional, tag="3")]
4732 pub participant: ::core::option::Option<ParticipantInfo>,
4733 #[prost(message, optional, tag="9")]
4735 pub egress_info: ::core::option::Option<EgressInfo>,
4736 #[prost(message, optional, tag="10")]
4738 pub ingress_info: ::core::option::Option<IngressInfo>,
4739 #[prost(message, optional, tag="8")]
4741 pub track: ::core::option::Option<TrackInfo>,
4742 #[prost(string, tag="6")]
4744 pub id: ::prost::alloc::string::String,
4745 #[prost(int64, tag="7")]
4747 pub created_at: i64,
4748 #[deprecated]
4749 #[prost(int32, tag="11")]
4750 pub num_dropped: i32,
4751}
4752#[allow(clippy::derive_partial_eq_without_eq)]
4754#[derive(Clone, PartialEq, ::prost::Message)]
4755pub struct SipStatus {
4756 #[prost(enumeration="SipStatusCode", tag="1")]
4757 pub code: i32,
4758 #[prost(string, tag="2")]
4759 pub status: ::prost::alloc::string::String,
4760}
4761#[allow(clippy::derive_partial_eq_without_eq)]
4762#[derive(Clone, PartialEq, ::prost::Message)]
4763pub struct CreateSipTrunkRequest {
4764 #[prost(string, repeated, tag="1")]
4767 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4768 #[prost(string, tag="2")]
4770 pub outbound_address: ::prost::alloc::string::String,
4771 #[prost(string, tag="3")]
4773 pub outbound_number: ::prost::alloc::string::String,
4774 #[deprecated]
4775 #[prost(string, repeated, tag="4")]
4776 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4777 #[prost(string, repeated, tag="9")]
4781 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4782 #[prost(string, tag="5")]
4785 pub inbound_username: ::prost::alloc::string::String,
4786 #[prost(string, tag="6")]
4787 pub inbound_password: ::prost::alloc::string::String,
4788 #[prost(string, tag="7")]
4789 pub outbound_username: ::prost::alloc::string::String,
4790 #[prost(string, tag="8")]
4791 pub outbound_password: ::prost::alloc::string::String,
4792 #[prost(string, tag="10")]
4794 pub name: ::prost::alloc::string::String,
4795 #[prost(string, tag="11")]
4797 pub metadata: ::prost::alloc::string::String,
4798}
4799#[allow(clippy::derive_partial_eq_without_eq)]
4800#[derive(Clone, PartialEq, ::prost::Message)]
4801pub struct SipTrunkInfo {
4802 #[prost(string, tag="1")]
4803 pub sip_trunk_id: ::prost::alloc::string::String,
4804 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
4805 pub kind: i32,
4806 #[prost(string, repeated, tag="2")]
4809 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4810 #[prost(string, tag="3")]
4812 pub outbound_address: ::prost::alloc::string::String,
4813 #[prost(string, tag="4")]
4815 pub outbound_number: ::prost::alloc::string::String,
4816 #[prost(enumeration="SipTransport", tag="13")]
4818 pub transport: i32,
4819 #[deprecated]
4820 #[prost(string, repeated, tag="5")]
4821 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4822 #[prost(string, repeated, tag="10")]
4826 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4827 #[prost(string, tag="6")]
4830 pub inbound_username: ::prost::alloc::string::String,
4831 #[prost(string, tag="7")]
4832 pub inbound_password: ::prost::alloc::string::String,
4833 #[prost(string, tag="8")]
4834 pub outbound_username: ::prost::alloc::string::String,
4835 #[prost(string, tag="9")]
4836 pub outbound_password: ::prost::alloc::string::String,
4837 #[prost(string, tag="11")]
4839 pub name: ::prost::alloc::string::String,
4840 #[prost(string, tag="12")]
4842 pub metadata: ::prost::alloc::string::String,
4843}
4844pub mod sip_trunk_info {
4846 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4847 #[repr(i32)]
4848 pub enum TrunkKind {
4849 TrunkLegacy = 0,
4850 TrunkInbound = 1,
4851 TrunkOutbound = 2,
4852 }
4853 impl TrunkKind {
4854 pub fn as_str_name(&self) -> &'static str {
4859 match self {
4860 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
4861 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
4862 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
4863 }
4864 }
4865 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4867 match value {
4868 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
4869 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
4870 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
4871 _ => None,
4872 }
4873 }
4874 }
4875}
4876#[allow(clippy::derive_partial_eq_without_eq)]
4877#[derive(Clone, PartialEq, ::prost::Message)]
4878pub struct CreateSipInboundTrunkRequest {
4879 #[prost(message, optional, tag="1")]
4881 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
4882}
4883#[allow(clippy::derive_partial_eq_without_eq)]
4884#[derive(Clone, PartialEq, ::prost::Message)]
4885pub struct UpdateSipInboundTrunkRequest {
4886 #[prost(string, tag="1")]
4887 pub sip_trunk_id: ::prost::alloc::string::String,
4888 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
4889 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
4890}
4891pub mod update_sip_inbound_trunk_request {
4893 #[allow(clippy::derive_partial_eq_without_eq)]
4894#[derive(Clone, PartialEq, ::prost::Oneof)]
4895 pub enum Action {
4896 #[prost(message, tag="2")]
4897 Replace(super::SipInboundTrunkInfo),
4898 #[prost(message, tag="3")]
4899 Update(super::SipInboundTrunkUpdate),
4900 }
4901}
4902#[allow(clippy::derive_partial_eq_without_eq)]
4903#[derive(Clone, PartialEq, ::prost::Message)]
4904pub struct SipInboundTrunkInfo {
4905 #[prost(string, tag="1")]
4906 pub sip_trunk_id: ::prost::alloc::string::String,
4907 #[prost(string, tag="2")]
4909 pub name: ::prost::alloc::string::String,
4910 #[prost(string, tag="3")]
4912 pub metadata: ::prost::alloc::string::String,
4913 #[prost(string, repeated, tag="4")]
4916 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4917 #[prost(string, repeated, tag="5")]
4920 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4921 #[prost(string, repeated, tag="6")]
4924 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4925 #[prost(string, tag="7")]
4928 pub auth_username: ::prost::alloc::string::String,
4929 #[prost(string, tag="8")]
4930 pub auth_password: ::prost::alloc::string::String,
4931 #[prost(map="string, string", tag="9")]
4933 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4934 #[prost(map="string, string", tag="10")]
4936 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4937 #[prost(map="string, string", tag="14")]
4940 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4941 #[prost(enumeration="SipHeaderOptions", tag="15")]
4948 pub include_headers: i32,
4949 #[prost(message, optional, tag="11")]
4951 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
4952 #[prost(message, optional, tag="12")]
4954 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
4955 #[prost(bool, tag="13")]
4956 pub krisp_enabled: bool,
4957 #[prost(enumeration="SipMediaEncryption", tag="16")]
4958 pub media_encryption: i32,
4959}
4960#[allow(clippy::derive_partial_eq_without_eq)]
4961#[derive(Clone, PartialEq, ::prost::Message)]
4962pub struct SipInboundTrunkUpdate {
4963 #[prost(message, optional, tag="1")]
4964 pub numbers: ::core::option::Option<ListUpdate>,
4965 #[prost(message, optional, tag="2")]
4966 pub allowed_addresses: ::core::option::Option<ListUpdate>,
4967 #[prost(message, optional, tag="3")]
4968 pub allowed_numbers: ::core::option::Option<ListUpdate>,
4969 #[prost(string, optional, tag="4")]
4970 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
4971 #[prost(string, optional, tag="5")]
4972 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
4973 #[prost(string, optional, tag="6")]
4974 pub name: ::core::option::Option<::prost::alloc::string::String>,
4975 #[prost(string, optional, tag="7")]
4976 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
4977 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
4978 pub media_encryption: ::core::option::Option<i32>,
4979}
4980#[allow(clippy::derive_partial_eq_without_eq)]
4981#[derive(Clone, PartialEq, ::prost::Message)]
4982pub struct CreateSipOutboundTrunkRequest {
4983 #[prost(message, optional, tag="1")]
4985 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
4986}
4987#[allow(clippy::derive_partial_eq_without_eq)]
4988#[derive(Clone, PartialEq, ::prost::Message)]
4989pub struct UpdateSipOutboundTrunkRequest {
4990 #[prost(string, tag="1")]
4991 pub sip_trunk_id: ::prost::alloc::string::String,
4992 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
4993 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
4994}
4995pub mod update_sip_outbound_trunk_request {
4997 #[allow(clippy::derive_partial_eq_without_eq)]
4998#[derive(Clone, PartialEq, ::prost::Oneof)]
4999 pub enum Action {
5000 #[prost(message, tag="2")]
5001 Replace(super::SipOutboundTrunkInfo),
5002 #[prost(message, tag="3")]
5003 Update(super::SipOutboundTrunkUpdate),
5004 }
5005}
5006#[allow(clippy::derive_partial_eq_without_eq)]
5007#[derive(Clone, PartialEq, ::prost::Message)]
5008pub struct SipOutboundTrunkInfo {
5009 #[prost(string, tag="1")]
5010 pub sip_trunk_id: ::prost::alloc::string::String,
5011 #[prost(string, tag="2")]
5013 pub name: ::prost::alloc::string::String,
5014 #[prost(string, tag="3")]
5016 pub metadata: ::prost::alloc::string::String,
5017 #[prost(string, tag="4")]
5020 pub address: ::prost::alloc::string::String,
5021 #[prost(enumeration="SipTransport", tag="5")]
5023 pub transport: i32,
5024 #[prost(string, repeated, tag="6")]
5026 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5027 #[prost(string, tag="7")]
5030 pub auth_username: ::prost::alloc::string::String,
5031 #[prost(string, tag="8")]
5032 pub auth_password: ::prost::alloc::string::String,
5033 #[prost(map="string, string", tag="9")]
5036 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5037 #[prost(map="string, string", tag="10")]
5040 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5041 #[prost(map="string, string", tag="11")]
5044 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5045 #[prost(enumeration="SipHeaderOptions", tag="12")]
5052 pub include_headers: i32,
5053 #[prost(enumeration="SipMediaEncryption", tag="13")]
5054 pub media_encryption: i32,
5055}
5056#[allow(clippy::derive_partial_eq_without_eq)]
5057#[derive(Clone, PartialEq, ::prost::Message)]
5058pub struct SipOutboundTrunkUpdate {
5059 #[prost(string, optional, tag="1")]
5060 pub address: ::core::option::Option<::prost::alloc::string::String>,
5061 #[prost(enumeration="SipTransport", optional, tag="2")]
5062 pub transport: ::core::option::Option<i32>,
5063 #[prost(message, optional, tag="3")]
5064 pub numbers: ::core::option::Option<ListUpdate>,
5065 #[prost(string, optional, tag="4")]
5066 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5067 #[prost(string, optional, tag="5")]
5068 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5069 #[prost(string, optional, tag="6")]
5070 pub name: ::core::option::Option<::prost::alloc::string::String>,
5071 #[prost(string, optional, tag="7")]
5072 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5073 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5074 pub media_encryption: ::core::option::Option<i32>,
5075}
5076#[allow(clippy::derive_partial_eq_without_eq)]
5077#[derive(Clone, PartialEq, ::prost::Message)]
5078pub struct GetSipInboundTrunkRequest {
5079 #[prost(string, tag="1")]
5080 pub sip_trunk_id: ::prost::alloc::string::String,
5081}
5082#[allow(clippy::derive_partial_eq_without_eq)]
5083#[derive(Clone, PartialEq, ::prost::Message)]
5084pub struct GetSipInboundTrunkResponse {
5085 #[prost(message, optional, tag="1")]
5086 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5087}
5088#[allow(clippy::derive_partial_eq_without_eq)]
5089#[derive(Clone, PartialEq, ::prost::Message)]
5090pub struct GetSipOutboundTrunkRequest {
5091 #[prost(string, tag="1")]
5092 pub sip_trunk_id: ::prost::alloc::string::String,
5093}
5094#[allow(clippy::derive_partial_eq_without_eq)]
5095#[derive(Clone, PartialEq, ::prost::Message)]
5096pub struct GetSipOutboundTrunkResponse {
5097 #[prost(message, optional, tag="1")]
5098 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5099}
5100#[allow(clippy::derive_partial_eq_without_eq)]
5101#[derive(Clone, PartialEq, ::prost::Message)]
5102pub struct ListSipTrunkRequest {
5103 #[prost(message, optional, tag="1")]
5104 pub page: ::core::option::Option<Pagination>,
5105}
5106#[allow(clippy::derive_partial_eq_without_eq)]
5107#[derive(Clone, PartialEq, ::prost::Message)]
5108pub struct ListSipTrunkResponse {
5109 #[prost(message, repeated, tag="1")]
5110 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
5111}
5112#[allow(clippy::derive_partial_eq_without_eq)]
5114#[derive(Clone, PartialEq, ::prost::Message)]
5115pub struct ListSipInboundTrunkRequest {
5116 #[prost(message, optional, tag="3")]
5117 pub page: ::core::option::Option<Pagination>,
5118 #[prost(string, repeated, tag="1")]
5121 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5122 #[prost(string, repeated, tag="2")]
5124 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5125}
5126#[allow(clippy::derive_partial_eq_without_eq)]
5127#[derive(Clone, PartialEq, ::prost::Message)]
5128pub struct ListSipInboundTrunkResponse {
5129 #[prost(message, repeated, tag="1")]
5130 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
5131}
5132#[allow(clippy::derive_partial_eq_without_eq)]
5134#[derive(Clone, PartialEq, ::prost::Message)]
5135pub struct ListSipOutboundTrunkRequest {
5136 #[prost(message, optional, tag="3")]
5137 pub page: ::core::option::Option<Pagination>,
5138 #[prost(string, repeated, tag="1")]
5141 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5142 #[prost(string, repeated, tag="2")]
5144 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5145}
5146#[allow(clippy::derive_partial_eq_without_eq)]
5147#[derive(Clone, PartialEq, ::prost::Message)]
5148pub struct ListSipOutboundTrunkResponse {
5149 #[prost(message, repeated, tag="1")]
5150 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
5151}
5152#[allow(clippy::derive_partial_eq_without_eq)]
5153#[derive(Clone, PartialEq, ::prost::Message)]
5154pub struct DeleteSipTrunkRequest {
5155 #[prost(string, tag="1")]
5156 pub sip_trunk_id: ::prost::alloc::string::String,
5157}
5158#[allow(clippy::derive_partial_eq_without_eq)]
5159#[derive(Clone, PartialEq, ::prost::Message)]
5160pub struct SipDispatchRuleDirect {
5161 #[prost(string, tag="1")]
5163 pub room_name: ::prost::alloc::string::String,
5164 #[prost(string, tag="2")]
5166 pub pin: ::prost::alloc::string::String,
5167}
5168#[allow(clippy::derive_partial_eq_without_eq)]
5169#[derive(Clone, PartialEq, ::prost::Message)]
5170pub struct SipDispatchRuleIndividual {
5171 #[prost(string, tag="1")]
5173 pub room_prefix: ::prost::alloc::string::String,
5174 #[prost(string, tag="2")]
5176 pub pin: ::prost::alloc::string::String,
5177}
5178#[allow(clippy::derive_partial_eq_without_eq)]
5179#[derive(Clone, PartialEq, ::prost::Message)]
5180pub struct SipDispatchRuleCallee {
5181 #[prost(string, tag="1")]
5183 pub room_prefix: ::prost::alloc::string::String,
5184 #[prost(string, tag="2")]
5186 pub pin: ::prost::alloc::string::String,
5187 #[prost(bool, tag="3")]
5189 pub randomize: bool,
5190}
5191#[allow(clippy::derive_partial_eq_without_eq)]
5192#[derive(Clone, PartialEq, ::prost::Message)]
5193pub struct SipDispatchRule {
5194 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
5195 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
5196}
5197pub mod sip_dispatch_rule {
5199 #[allow(clippy::derive_partial_eq_without_eq)]
5200#[derive(Clone, PartialEq, ::prost::Oneof)]
5201 pub enum Rule {
5202 #[prost(message, tag="1")]
5206 DispatchRuleDirect(super::SipDispatchRuleDirect),
5207 #[prost(message, tag="2")]
5209 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
5210 #[prost(message, tag="3")]
5212 DispatchRuleCallee(super::SipDispatchRuleCallee),
5213 }
5214}
5215#[allow(clippy::derive_partial_eq_without_eq)]
5216#[derive(Clone, PartialEq, ::prost::Message)]
5217pub struct CreateSipDispatchRuleRequest {
5218 #[prost(message, optional, tag="10")]
5220 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
5221 #[deprecated]
5222 #[prost(message, optional, tag="1")]
5223 pub rule: ::core::option::Option<SipDispatchRule>,
5224 #[deprecated]
5227 #[prost(string, repeated, tag="2")]
5228 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5229 #[deprecated]
5232 #[prost(bool, tag="3")]
5233 pub hide_phone_number: bool,
5234 #[deprecated]
5236 #[prost(string, repeated, tag="6")]
5237 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5238 #[deprecated]
5240 #[prost(string, tag="4")]
5241 pub name: ::prost::alloc::string::String,
5242 #[deprecated]
5245 #[prost(string, tag="5")]
5246 pub metadata: ::prost::alloc::string::String,
5247 #[prost(map="string, string", tag="7")]
5250 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5251 #[deprecated]
5253 #[prost(string, tag="8")]
5254 pub room_preset: ::prost::alloc::string::String,
5255 #[deprecated]
5257 #[prost(message, optional, tag="9")]
5258 pub room_config: ::core::option::Option<RoomConfiguration>,
5259}
5260#[allow(clippy::derive_partial_eq_without_eq)]
5261#[derive(Clone, PartialEq, ::prost::Message)]
5262pub struct UpdateSipDispatchRuleRequest {
5263 #[prost(string, tag="1")]
5264 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5265 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
5266 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
5267}
5268pub mod update_sip_dispatch_rule_request {
5270 #[allow(clippy::derive_partial_eq_without_eq)]
5271#[derive(Clone, PartialEq, ::prost::Oneof)]
5272 pub enum Action {
5273 #[prost(message, tag="2")]
5274 Replace(super::SipDispatchRuleInfo),
5275 #[prost(message, tag="3")]
5276 Update(super::SipDispatchRuleUpdate),
5277 }
5278}
5279#[allow(clippy::derive_partial_eq_without_eq)]
5280#[derive(Clone, PartialEq, ::prost::Message)]
5281pub struct SipDispatchRuleInfo {
5282 #[prost(string, tag="1")]
5283 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5284 #[prost(message, optional, tag="2")]
5285 pub rule: ::core::option::Option<SipDispatchRule>,
5286 #[prost(string, repeated, tag="3")]
5287 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5288 #[prost(bool, tag="4")]
5289 pub hide_phone_number: bool,
5290 #[prost(string, repeated, tag="7")]
5292 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5293 #[prost(string, tag="5")]
5295 pub name: ::prost::alloc::string::String,
5296 #[prost(string, tag="6")]
5299 pub metadata: ::prost::alloc::string::String,
5300 #[prost(map="string, string", tag="8")]
5303 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5304 #[prost(string, tag="9")]
5306 pub room_preset: ::prost::alloc::string::String,
5307 #[prost(message, optional, tag="10")]
5309 pub room_config: ::core::option::Option<RoomConfiguration>,
5310 #[prost(bool, tag="11")]
5311 pub krisp_enabled: bool,
5312 #[prost(enumeration="SipMediaEncryption", tag="12")]
5314 pub media_encryption: i32,
5315}
5316#[allow(clippy::derive_partial_eq_without_eq)]
5317#[derive(Clone, PartialEq, ::prost::Message)]
5318pub struct SipDispatchRuleUpdate {
5319 #[prost(message, optional, tag="1")]
5320 pub trunk_ids: ::core::option::Option<ListUpdate>,
5321 #[prost(message, optional, tag="2")]
5322 pub rule: ::core::option::Option<SipDispatchRule>,
5323 #[prost(string, optional, tag="3")]
5324 pub name: ::core::option::Option<::prost::alloc::string::String>,
5325 #[prost(string, optional, tag="4")]
5326 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5327 #[prost(map="string, string", tag="5")]
5328 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5329 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
5330 pub media_encryption: ::core::option::Option<i32>,
5331}
5332#[allow(clippy::derive_partial_eq_without_eq)]
5334#[derive(Clone, PartialEq, ::prost::Message)]
5335pub struct ListSipDispatchRuleRequest {
5336 #[prost(message, optional, tag="3")]
5337 pub page: ::core::option::Option<Pagination>,
5338 #[prost(string, repeated, tag="1")]
5341 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5342 #[prost(string, repeated, tag="2")]
5344 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5345}
5346#[allow(clippy::derive_partial_eq_without_eq)]
5347#[derive(Clone, PartialEq, ::prost::Message)]
5348pub struct ListSipDispatchRuleResponse {
5349 #[prost(message, repeated, tag="1")]
5350 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
5351}
5352#[allow(clippy::derive_partial_eq_without_eq)]
5353#[derive(Clone, PartialEq, ::prost::Message)]
5354pub struct DeleteSipDispatchRuleRequest {
5355 #[prost(string, tag="1")]
5356 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5357}
5358#[allow(clippy::derive_partial_eq_without_eq)]
5359#[derive(Clone, PartialEq, ::prost::Message)]
5360pub struct SipOutboundConfig {
5361 #[prost(string, tag="1")]
5363 pub hostname: ::prost::alloc::string::String,
5364 #[prost(enumeration="SipTransport", tag="2")]
5366 pub transport: i32,
5367 #[prost(string, tag="3")]
5370 pub auth_username: ::prost::alloc::string::String,
5371 #[prost(string, tag="4")]
5372 pub auth_password: ::prost::alloc::string::String,
5373 #[prost(map="string, string", tag="5")]
5376 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5377 #[prost(map="string, string", tag="6")]
5380 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5381}
5382#[allow(clippy::derive_partial_eq_without_eq)]
5385#[derive(Clone, PartialEq, ::prost::Message)]
5386pub struct CreateSipParticipantRequest {
5387 #[prost(string, tag="1")]
5389 pub sip_trunk_id: ::prost::alloc::string::String,
5390 #[prost(message, optional, tag="20")]
5391 pub trunk: ::core::option::Option<SipOutboundConfig>,
5392 #[prost(string, tag="2")]
5394 pub sip_call_to: ::prost::alloc::string::String,
5395 #[prost(string, tag="15")]
5397 pub sip_number: ::prost::alloc::string::String,
5398 #[prost(string, tag="3")]
5400 pub room_name: ::prost::alloc::string::String,
5401 #[prost(string, tag="4")]
5403 pub participant_identity: ::prost::alloc::string::String,
5404 #[prost(string, tag="7")]
5406 pub participant_name: ::prost::alloc::string::String,
5407 #[prost(string, tag="8")]
5409 pub participant_metadata: ::prost::alloc::string::String,
5410 #[prost(map="string, string", tag="9")]
5412 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5413 #[prost(string, tag="5")]
5416 pub dtmf: ::prost::alloc::string::String,
5417 #[deprecated]
5419 #[prost(bool, tag="6")]
5420 pub play_ringtone: bool,
5421 #[prost(bool, tag="13")]
5422 pub play_dialtone: bool,
5423 #[prost(bool, tag="10")]
5426 pub hide_phone_number: bool,
5427 #[prost(map="string, string", tag="16")]
5429 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5430 #[prost(enumeration="SipHeaderOptions", tag="17")]
5437 pub include_headers: i32,
5438 #[prost(message, optional, tag="11")]
5440 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5441 #[prost(message, optional, tag="12")]
5443 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5444 #[prost(bool, tag="14")]
5446 pub krisp_enabled: bool,
5447 #[prost(enumeration="SipMediaEncryption", tag="18")]
5448 pub media_encryption: i32,
5449 #[prost(bool, tag="19")]
5453 pub wait_until_answered: bool,
5454}
5455#[allow(clippy::derive_partial_eq_without_eq)]
5456#[derive(Clone, PartialEq, ::prost::Message)]
5457pub struct SipParticipantInfo {
5458 #[prost(string, tag="1")]
5459 pub participant_id: ::prost::alloc::string::String,
5460 #[prost(string, tag="2")]
5461 pub participant_identity: ::prost::alloc::string::String,
5462 #[prost(string, tag="3")]
5463 pub room_name: ::prost::alloc::string::String,
5464 #[prost(string, tag="4")]
5465 pub sip_call_id: ::prost::alloc::string::String,
5466}
5467#[allow(clippy::derive_partial_eq_without_eq)]
5468#[derive(Clone, PartialEq, ::prost::Message)]
5469pub struct TransferSipParticipantRequest {
5470 #[prost(string, tag="1")]
5471 pub participant_identity: ::prost::alloc::string::String,
5472 #[prost(string, tag="2")]
5473 pub room_name: ::prost::alloc::string::String,
5474 #[prost(string, tag="3")]
5475 pub transfer_to: ::prost::alloc::string::String,
5476 #[prost(bool, tag="4")]
5478 pub play_dialtone: bool,
5479 #[prost(map="string, string", tag="5")]
5481 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5482 #[prost(message, optional, tag="6")]
5484 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5485}
5486#[allow(clippy::derive_partial_eq_without_eq)]
5487#[derive(Clone, PartialEq, ::prost::Message)]
5488pub struct SipCallInfo {
5489 #[prost(string, tag="1")]
5490 pub call_id: ::prost::alloc::string::String,
5491 #[prost(string, tag="2")]
5492 pub trunk_id: ::prost::alloc::string::String,
5493 #[prost(string, tag="16")]
5494 pub dispatch_rule_id: ::prost::alloc::string::String,
5495 #[prost(string, tag="17")]
5496 pub region: ::prost::alloc::string::String,
5497 #[prost(string, tag="3")]
5498 pub room_name: ::prost::alloc::string::String,
5499 #[prost(string, tag="4")]
5501 pub room_id: ::prost::alloc::string::String,
5502 #[prost(string, tag="5")]
5503 pub participant_identity: ::prost::alloc::string::String,
5504 #[prost(map="string, string", tag="18")]
5505 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5506 #[prost(message, optional, tag="6")]
5507 pub from_uri: ::core::option::Option<SipUri>,
5508 #[prost(message, optional, tag="7")]
5509 pub to_uri: ::core::option::Option<SipUri>,
5510 #[deprecated]
5511 #[prost(int64, tag="9")]
5512 pub created_at: i64,
5513 #[deprecated]
5514 #[prost(int64, tag="10")]
5515 pub started_at: i64,
5516 #[deprecated]
5517 #[prost(int64, tag="11")]
5518 pub ended_at: i64,
5519 #[prost(enumeration="SipFeature", repeated, tag="14")]
5520 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
5521 #[prost(enumeration="SipCallDirection", tag="15")]
5522 pub call_direction: i32,
5523 #[prost(enumeration="SipCallStatus", tag="8")]
5524 pub call_status: i32,
5525 #[prost(int64, tag="22")]
5526 pub created_at_ns: i64,
5527 #[prost(int64, tag="23")]
5528 pub started_at_ns: i64,
5529 #[prost(int64, tag="24")]
5530 pub ended_at_ns: i64,
5531 #[prost(enumeration="DisconnectReason", tag="12")]
5532 pub disconnect_reason: i32,
5533 #[prost(string, tag="13")]
5534 pub error: ::prost::alloc::string::String,
5535 #[prost(message, optional, tag="19")]
5536 pub call_status_code: ::core::option::Option<SipStatus>,
5537 #[prost(string, tag="20")]
5538 pub audio_codec: ::prost::alloc::string::String,
5539 #[prost(string, tag="21")]
5540 pub media_encryption: ::prost::alloc::string::String,
5541}
5542#[allow(clippy::derive_partial_eq_without_eq)]
5543#[derive(Clone, PartialEq, ::prost::Message)]
5544pub struct SipTransferInfo {
5545 #[prost(string, tag="1")]
5546 pub transfer_id: ::prost::alloc::string::String,
5547 #[prost(string, tag="2")]
5548 pub call_id: ::prost::alloc::string::String,
5549 #[prost(string, tag="3")]
5550 pub transfer_to: ::prost::alloc::string::String,
5551 #[prost(int64, tag="4")]
5552 pub transfer_initiated_at_ns: i64,
5553 #[prost(int64, tag="5")]
5554 pub transfer_completed_at_ns: i64,
5555 #[prost(enumeration="SipTransferStatus", tag="6")]
5556 pub transfer_status: i32,
5557 #[prost(string, tag="7")]
5558 pub error: ::prost::alloc::string::String,
5559 #[prost(message, optional, tag="8")]
5560 pub transfer_status_code: ::core::option::Option<SipStatus>,
5561}
5562#[allow(clippy::derive_partial_eq_without_eq)]
5563#[derive(Clone, PartialEq, ::prost::Message)]
5564pub struct SipUri {
5565 #[prost(string, tag="1")]
5566 pub user: ::prost::alloc::string::String,
5567 #[prost(string, tag="2")]
5568 pub host: ::prost::alloc::string::String,
5569 #[prost(string, tag="3")]
5570 pub ip: ::prost::alloc::string::String,
5571 #[prost(uint32, tag="4")]
5572 pub port: u32,
5573 #[prost(enumeration="SipTransport", tag="5")]
5574 pub transport: i32,
5575}
5576#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5577#[repr(i32)]
5578pub enum SipStatusCode {
5579 SipStatusUnknown = 0,
5580 SipStatusTrying = 100,
5581 SipStatusRinging = 180,
5582 SipStatusCallIsForwarded = 181,
5583 SipStatusQueued = 182,
5584 SipStatusSessionProgress = 183,
5585 SipStatusOk = 200,
5586 SipStatusAccepted = 202,
5587 SipStatusMovedPermanently = 301,
5588 SipStatusMovedTemporarily = 302,
5589 SipStatusUseProxy = 305,
5590 SipStatusBadRequest = 400,
5591 SipStatusUnauthorized = 401,
5592 SipStatusPaymentRequired = 402,
5593 SipStatusForbidden = 403,
5594 SipStatusNotfound = 404,
5595 SipStatusMethodNotAllowed = 405,
5596 SipStatusNotAcceptable = 406,
5597 SipStatusProxyAuthRequired = 407,
5598 SipStatusRequestTimeout = 408,
5599 SipStatusConflict = 409,
5600 SipStatusGone = 410,
5601 SipStatusRequestEntityTooLarge = 413,
5602 SipStatusRequestUriTooLong = 414,
5603 SipStatusUnsupportedMediaType = 415,
5604 SipStatusRequestedRangeNotSatisfiable = 416,
5605 SipStatusBadExtension = 420,
5606 SipStatusExtensionRequired = 421,
5607 SipStatusIntervalTooBrief = 423,
5608 SipStatusTemporarilyUnavailable = 480,
5609 SipStatusCallTransactionDoesNotExists = 481,
5610 SipStatusLoopDetected = 482,
5611 SipStatusTooManyHops = 483,
5612 SipStatusAddressIncomplete = 484,
5613 SipStatusAmbiguous = 485,
5614 SipStatusBusyHere = 486,
5615 SipStatusRequestTerminated = 487,
5616 SipStatusNotAcceptableHere = 488,
5617 SipStatusInternalServerError = 500,
5618 SipStatusNotImplemented = 501,
5619 SipStatusBadGateway = 502,
5620 SipStatusServiceUnavailable = 503,
5621 SipStatusGatewayTimeout = 504,
5622 SipStatusVersionNotSupported = 505,
5623 SipStatusMessageTooLarge = 513,
5624 SipStatusGlobalBusyEverywhere = 600,
5625 SipStatusGlobalDecline = 603,
5626 SipStatusGlobalDoesNotExistAnywhere = 604,
5627 SipStatusGlobalNotAcceptable = 606,
5628}
5629impl SipStatusCode {
5630 pub fn as_str_name(&self) -> &'static str {
5635 match self {
5636 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
5637 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
5638 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
5639 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
5640 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
5641 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
5642 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
5643 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
5644 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
5645 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
5646 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
5647 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
5648 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
5649 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
5650 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
5651 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
5652 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
5653 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
5654 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
5655 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
5656 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
5657 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
5658 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
5659 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
5660 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
5661 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
5662 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
5663 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
5664 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
5665 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
5666 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
5667 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
5668 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
5669 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
5670 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
5671 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
5672 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
5673 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
5674 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
5675 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
5676 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
5677 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
5678 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
5679 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
5680 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
5681 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
5682 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
5683 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
5684 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
5685 }
5686 }
5687 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5689 match value {
5690 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
5691 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
5692 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
5693 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
5694 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
5695 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
5696 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
5697 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
5698 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
5699 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
5700 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
5701 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
5702 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
5703 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
5704 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
5705 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
5706 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
5707 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
5708 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
5709 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
5710 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
5711 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
5712 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
5713 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
5714 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
5715 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
5716 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
5717 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
5718 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
5719 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
5720 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
5721 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
5722 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
5723 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
5724 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
5725 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
5726 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
5727 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
5728 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
5729 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
5730 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
5731 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
5732 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
5733 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
5734 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
5735 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
5736 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
5737 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
5738 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
5739 _ => None,
5740 }
5741 }
5742}
5743#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5744#[repr(i32)]
5745pub enum SipTransport {
5746 Auto = 0,
5747 Udp = 1,
5748 Tcp = 2,
5749 Tls = 3,
5750}
5751impl SipTransport {
5752 pub fn as_str_name(&self) -> &'static str {
5757 match self {
5758 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
5759 SipTransport::Udp => "SIP_TRANSPORT_UDP",
5760 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
5761 SipTransport::Tls => "SIP_TRANSPORT_TLS",
5762 }
5763 }
5764 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5766 match value {
5767 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
5768 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
5769 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
5770 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
5771 _ => None,
5772 }
5773 }
5774}
5775#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5776#[repr(i32)]
5777pub enum SipHeaderOptions {
5778 SipNoHeaders = 0,
5780 SipXHeaders = 1,
5782 SipAllHeaders = 2,
5784}
5785impl SipHeaderOptions {
5786 pub fn as_str_name(&self) -> &'static str {
5791 match self {
5792 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
5793 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
5794 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
5795 }
5796 }
5797 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5799 match value {
5800 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
5801 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
5802 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
5803 _ => None,
5804 }
5805 }
5806}
5807#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5808#[repr(i32)]
5809pub enum SipMediaEncryption {
5810 SipMediaEncryptDisable = 0,
5812 SipMediaEncryptAllow = 1,
5814 SipMediaEncryptRequire = 2,
5816}
5817impl SipMediaEncryption {
5818 pub fn as_str_name(&self) -> &'static str {
5823 match self {
5824 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
5825 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
5826 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
5827 }
5828 }
5829 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5831 match value {
5832 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
5833 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
5834 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
5835 _ => None,
5836 }
5837 }
5838}
5839#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5840#[repr(i32)]
5841pub enum SipCallStatus {
5842 ScsCallIncoming = 0,
5844 ScsParticipantJoined = 1,
5846 ScsActive = 2,
5848 ScsDisconnected = 3,
5850 ScsError = 4,
5852}
5853impl SipCallStatus {
5854 pub fn as_str_name(&self) -> &'static str {
5859 match self {
5860 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
5861 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
5862 SipCallStatus::ScsActive => "SCS_ACTIVE",
5863 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
5864 SipCallStatus::ScsError => "SCS_ERROR",
5865 }
5866 }
5867 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5869 match value {
5870 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
5871 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
5872 "SCS_ACTIVE" => Some(Self::ScsActive),
5873 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
5874 "SCS_ERROR" => Some(Self::ScsError),
5875 _ => None,
5876 }
5877 }
5878}
5879#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5880#[repr(i32)]
5881pub enum SipTransferStatus {
5882 StsTransferOngoing = 0,
5883 StsTransferFailed = 1,
5884 StsTransferSuccessful = 2,
5885}
5886impl SipTransferStatus {
5887 pub fn as_str_name(&self) -> &'static str {
5892 match self {
5893 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
5894 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
5895 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
5896 }
5897 }
5898 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5900 match value {
5901 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
5902 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
5903 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
5904 _ => None,
5905 }
5906 }
5907}
5908#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5909#[repr(i32)]
5910pub enum SipFeature {
5911 None = 0,
5912 KrispEnabled = 1,
5913}
5914impl SipFeature {
5915 pub fn as_str_name(&self) -> &'static str {
5920 match self {
5921 SipFeature::None => "NONE",
5922 SipFeature::KrispEnabled => "KRISP_ENABLED",
5923 }
5924 }
5925 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5927 match value {
5928 "NONE" => Some(Self::None),
5929 "KRISP_ENABLED" => Some(Self::KrispEnabled),
5930 _ => None,
5931 }
5932 }
5933}
5934#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5935#[repr(i32)]
5936pub enum SipCallDirection {
5937 ScdUnknown = 0,
5938 ScdInbound = 1,
5939 ScdOutbound = 2,
5940}
5941impl SipCallDirection {
5942 pub fn as_str_name(&self) -> &'static str {
5947 match self {
5948 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
5949 SipCallDirection::ScdInbound => "SCD_INBOUND",
5950 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
5951 }
5952 }
5953 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5955 match value {
5956 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
5957 "SCD_INBOUND" => Some(Self::ScdInbound),
5958 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
5959 _ => None,
5960 }
5961 }
5962}
5963include!("livekit.serde.rs");
5964