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)]
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct Room {
205 #[prost(string, tag="1")]
206 pub sid: ::prost::alloc::string::String,
207 #[prost(string, tag="2")]
208 pub name: ::prost::alloc::string::String,
209 #[prost(uint32, tag="3")]
210 pub empty_timeout: u32,
211 #[prost(uint32, tag="14")]
212 pub departure_timeout: u32,
213 #[prost(uint32, tag="4")]
214 pub max_participants: u32,
215 #[prost(int64, tag="5")]
216 pub creation_time: i64,
217 #[prost(int64, tag="15")]
218 pub creation_time_ms: i64,
219 #[prost(string, tag="6")]
220 pub turn_password: ::prost::alloc::string::String,
221 #[prost(message, repeated, tag="7")]
222 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
223 #[prost(string, tag="8")]
224 pub metadata: ::prost::alloc::string::String,
225 #[prost(uint32, tag="9")]
226 pub num_participants: u32,
227 #[prost(uint32, tag="11")]
228 pub num_publishers: u32,
229 #[prost(bool, tag="10")]
230 pub active_recording: bool,
231 #[prost(message, optional, tag="13")]
232 pub version: ::core::option::Option<TimedVersion>,
233}
234#[allow(clippy::derive_partial_eq_without_eq)]
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct Codec {
237 #[prost(string, tag="1")]
238 pub mime: ::prost::alloc::string::String,
239 #[prost(string, tag="2")]
240 pub fmtp_line: ::prost::alloc::string::String,
241}
242#[allow(clippy::derive_partial_eq_without_eq)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct PlayoutDelay {
245 #[prost(bool, tag="1")]
246 pub enabled: bool,
247 #[prost(uint32, tag="2")]
248 pub min: u32,
249 #[prost(uint32, tag="3")]
250 pub max: u32,
251}
252#[allow(clippy::derive_partial_eq_without_eq)]
253#[derive(Clone, PartialEq, ::prost::Message)]
254pub struct ParticipantPermission {
255 #[prost(bool, tag="1")]
257 pub can_subscribe: bool,
258 #[prost(bool, tag="2")]
260 pub can_publish: bool,
261 #[prost(bool, tag="3")]
263 pub can_publish_data: bool,
264 #[prost(enumeration="TrackSource", repeated, tag="9")]
266 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
267 #[prost(bool, tag="7")]
269 pub hidden: bool,
270 #[deprecated]
273 #[prost(bool, tag="8")]
274 pub recorder: bool,
275 #[prost(bool, tag="10")]
277 pub can_update_metadata: bool,
278 #[deprecated]
281 #[prost(bool, tag="11")]
282 pub agent: bool,
283 #[prost(bool, tag="12")]
285 pub can_subscribe_metrics: bool,
286}
287#[allow(clippy::derive_partial_eq_without_eq)]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct ParticipantInfo {
290 #[prost(string, tag="1")]
291 pub sid: ::prost::alloc::string::String,
292 #[prost(string, tag="2")]
293 pub identity: ::prost::alloc::string::String,
294 #[prost(enumeration="participant_info::State", tag="3")]
295 pub state: i32,
296 #[prost(message, repeated, tag="4")]
297 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
298 #[prost(string, tag="5")]
299 pub metadata: ::prost::alloc::string::String,
300 #[prost(int64, tag="6")]
302 pub joined_at: i64,
303 #[prost(int64, tag="17")]
305 pub joined_at_ms: i64,
306 #[prost(string, tag="9")]
307 pub name: ::prost::alloc::string::String,
308 #[prost(uint32, tag="10")]
309 pub version: u32,
310 #[prost(message, optional, tag="11")]
311 pub permission: ::core::option::Option<ParticipantPermission>,
312 #[prost(string, tag="12")]
313 pub region: ::prost::alloc::string::String,
314 #[prost(bool, tag="13")]
317 pub is_publisher: bool,
318 #[prost(enumeration="participant_info::Kind", tag="14")]
319 pub kind: i32,
320 #[prost(map="string, string", tag="15")]
321 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
322 #[prost(enumeration="DisconnectReason", tag="16")]
323 pub disconnect_reason: i32,
324}
325pub mod participant_info {
327 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
328 #[repr(i32)]
329 pub enum State {
330 Joining = 0,
332 Joined = 1,
334 Active = 2,
336 Disconnected = 3,
338 }
339 impl State {
340 pub fn as_str_name(&self) -> &'static str {
345 match self {
346 State::Joining => "JOINING",
347 State::Joined => "JOINED",
348 State::Active => "ACTIVE",
349 State::Disconnected => "DISCONNECTED",
350 }
351 }
352 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
354 match value {
355 "JOINING" => Some(Self::Joining),
356 "JOINED" => Some(Self::Joined),
357 "ACTIVE" => Some(Self::Active),
358 "DISCONNECTED" => Some(Self::Disconnected),
359 _ => None,
360 }
361 }
362 }
363 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
364 #[repr(i32)]
365 pub enum Kind {
366 Standard = 0,
368 Ingress = 1,
370 Egress = 2,
372 Sip = 3,
374 Agent = 4,
376 }
377 impl Kind {
378 pub fn as_str_name(&self) -> &'static str {
383 match self {
384 Kind::Standard => "STANDARD",
385 Kind::Ingress => "INGRESS",
386 Kind::Egress => "EGRESS",
387 Kind::Sip => "SIP",
388 Kind::Agent => "AGENT",
389 }
390 }
391 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
393 match value {
394 "STANDARD" => Some(Self::Standard),
395 "INGRESS" => Some(Self::Ingress),
396 "EGRESS" => Some(Self::Egress),
397 "SIP" => Some(Self::Sip),
398 "AGENT" => Some(Self::Agent),
399 _ => None,
400 }
401 }
402 }
403}
404#[allow(clippy::derive_partial_eq_without_eq)]
405#[derive(Clone, PartialEq, ::prost::Message)]
406pub struct Encryption {
407}
408pub mod encryption {
410 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
411 #[repr(i32)]
412 pub enum Type {
413 None = 0,
414 Gcm = 1,
415 Custom = 2,
416 }
417 impl Type {
418 pub fn as_str_name(&self) -> &'static str {
423 match self {
424 Type::None => "NONE",
425 Type::Gcm => "GCM",
426 Type::Custom => "CUSTOM",
427 }
428 }
429 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
431 match value {
432 "NONE" => Some(Self::None),
433 "GCM" => Some(Self::Gcm),
434 "CUSTOM" => Some(Self::Custom),
435 _ => None,
436 }
437 }
438 }
439}
440#[allow(clippy::derive_partial_eq_without_eq)]
441#[derive(Clone, PartialEq, ::prost::Message)]
442pub struct SimulcastCodecInfo {
443 #[prost(string, tag="1")]
444 pub mime_type: ::prost::alloc::string::String,
445 #[prost(string, tag="2")]
446 pub mid: ::prost::alloc::string::String,
447 #[prost(string, tag="3")]
448 pub cid: ::prost::alloc::string::String,
449 #[prost(message, repeated, tag="4")]
450 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
451}
452#[allow(clippy::derive_partial_eq_without_eq)]
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct TrackInfo {
455 #[prost(string, tag="1")]
456 pub sid: ::prost::alloc::string::String,
457 #[prost(enumeration="TrackType", tag="2")]
458 pub r#type: i32,
459 #[prost(string, tag="3")]
460 pub name: ::prost::alloc::string::String,
461 #[prost(bool, tag="4")]
462 pub muted: bool,
463 #[prost(uint32, tag="5")]
466 pub width: u32,
467 #[prost(uint32, tag="6")]
469 pub height: u32,
470 #[prost(bool, tag="7")]
472 pub simulcast: bool,
473 #[prost(bool, tag="8")]
475 pub disable_dtx: bool,
476 #[prost(enumeration="TrackSource", tag="9")]
478 pub source: i32,
479 #[prost(message, repeated, tag="10")]
480 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
481 #[prost(string, tag="11")]
483 pub mime_type: ::prost::alloc::string::String,
484 #[prost(string, tag="12")]
485 pub mid: ::prost::alloc::string::String,
486 #[prost(message, repeated, tag="13")]
487 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
488 #[prost(bool, tag="14")]
489 pub stereo: bool,
490 #[prost(bool, tag="15")]
492 pub disable_red: bool,
493 #[prost(enumeration="encryption::Type", tag="16")]
494 pub encryption: i32,
495 #[prost(string, tag="17")]
496 pub stream: ::prost::alloc::string::String,
497 #[prost(message, optional, tag="18")]
498 pub version: ::core::option::Option<TimedVersion>,
499 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
500 pub audio_features: ::prost::alloc::vec::Vec<i32>,
501}
502#[allow(clippy::derive_partial_eq_without_eq)]
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct VideoLayer {
506 #[prost(enumeration="VideoQuality", tag="1")]
508 pub quality: i32,
509 #[prost(uint32, tag="2")]
510 pub width: u32,
511 #[prost(uint32, tag="3")]
512 pub height: u32,
513 #[prost(uint32, tag="4")]
515 pub bitrate: u32,
516 #[prost(uint32, tag="5")]
517 pub ssrc: u32,
518}
519#[allow(clippy::derive_partial_eq_without_eq)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct DataPacket {
523 #[deprecated]
524 #[prost(enumeration="data_packet::Kind", tag="1")]
525 pub kind: i32,
526 #[prost(string, tag="4")]
528 pub participant_identity: ::prost::alloc::string::String,
529 #[prost(string, repeated, tag="5")]
531 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
532 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15")]
533 pub value: ::core::option::Option<data_packet::Value>,
534}
535pub mod data_packet {
537 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
538 #[repr(i32)]
539 pub enum Kind {
540 Reliable = 0,
541 Lossy = 1,
542 }
543 impl Kind {
544 pub fn as_str_name(&self) -> &'static str {
549 match self {
550 Kind::Reliable => "RELIABLE",
551 Kind::Lossy => "LOSSY",
552 }
553 }
554 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
556 match value {
557 "RELIABLE" => Some(Self::Reliable),
558 "LOSSY" => Some(Self::Lossy),
559 _ => None,
560 }
561 }
562 }
563 #[allow(clippy::derive_partial_eq_without_eq)]
564#[derive(Clone, PartialEq, ::prost::Oneof)]
565 pub enum Value {
566 #[prost(message, tag="2")]
567 User(super::UserPacket),
568 #[prost(message, tag="3")]
569 Speaker(super::ActiveSpeakerUpdate),
570 #[prost(message, tag="6")]
571 SipDtmf(super::SipDtmf),
572 #[prost(message, tag="7")]
573 Transcription(super::Transcription),
574 #[prost(message, tag="8")]
575 Metrics(super::MetricsBatch),
576 #[prost(message, tag="9")]
577 ChatMessage(super::ChatMessage),
578 #[prost(message, tag="10")]
579 RpcRequest(super::RpcRequest),
580 #[prost(message, tag="11")]
581 RpcAck(super::RpcAck),
582 #[prost(message, tag="12")]
583 RpcResponse(super::RpcResponse),
584 #[prost(message, tag="13")]
585 StreamHeader(super::data_stream::Header),
586 #[prost(message, tag="14")]
587 StreamChunk(super::data_stream::Chunk),
588 #[prost(message, tag="15")]
589 StreamTrailer(super::data_stream::Trailer),
590 }
591}
592#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct ActiveSpeakerUpdate {
595 #[prost(message, repeated, tag="1")]
596 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
597}
598#[allow(clippy::derive_partial_eq_without_eq)]
599#[derive(Clone, PartialEq, ::prost::Message)]
600pub struct SpeakerInfo {
601 #[prost(string, tag="1")]
602 pub sid: ::prost::alloc::string::String,
603 #[prost(float, tag="2")]
605 pub level: f32,
606 #[prost(bool, tag="3")]
608 pub active: bool,
609}
610#[allow(clippy::derive_partial_eq_without_eq)]
611#[derive(Clone, PartialEq, ::prost::Message)]
612pub struct UserPacket {
613 #[deprecated]
615 #[prost(string, tag="1")]
616 pub participant_sid: ::prost::alloc::string::String,
617 #[deprecated]
618 #[prost(string, tag="5")]
619 pub participant_identity: ::prost::alloc::string::String,
620 #[prost(bytes="vec", tag="2")]
622 pub payload: ::prost::alloc::vec::Vec<u8>,
623 #[deprecated]
625 #[prost(string, repeated, tag="3")]
626 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
627 #[deprecated]
629 #[prost(string, repeated, tag="6")]
630 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
631 #[prost(string, optional, tag="4")]
633 pub topic: ::core::option::Option<::prost::alloc::string::String>,
634 #[prost(string, optional, tag="8")]
636 pub id: ::core::option::Option<::prost::alloc::string::String>,
637 #[prost(uint64, optional, tag="9")]
639 pub start_time: ::core::option::Option<u64>,
640 #[prost(uint64, optional, tag="10")]
641 pub end_time: ::core::option::Option<u64>,
642 #[prost(bytes="vec", tag="11")]
644 pub nonce: ::prost::alloc::vec::Vec<u8>,
645}
646#[allow(clippy::derive_partial_eq_without_eq)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct SipDtmf {
649 #[prost(uint32, tag="3")]
650 pub code: u32,
651 #[prost(string, tag="4")]
652 pub digit: ::prost::alloc::string::String,
653}
654#[allow(clippy::derive_partial_eq_without_eq)]
655#[derive(Clone, PartialEq, ::prost::Message)]
656pub struct Transcription {
657 #[prost(string, tag="2")]
659 pub transcribed_participant_identity: ::prost::alloc::string::String,
660 #[prost(string, tag="3")]
661 pub track_id: ::prost::alloc::string::String,
662 #[prost(message, repeated, tag="4")]
663 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
664}
665#[allow(clippy::derive_partial_eq_without_eq)]
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct TranscriptionSegment {
668 #[prost(string, tag="1")]
669 pub id: ::prost::alloc::string::String,
670 #[prost(string, tag="2")]
671 pub text: ::prost::alloc::string::String,
672 #[prost(uint64, tag="3")]
673 pub start_time: u64,
674 #[prost(uint64, tag="4")]
675 pub end_time: u64,
676 #[prost(bool, tag="5")]
677 pub r#final: bool,
678 #[prost(string, tag="6")]
679 pub language: ::prost::alloc::string::String,
680}
681#[allow(clippy::derive_partial_eq_without_eq)]
682#[derive(Clone, PartialEq, ::prost::Message)]
683pub struct ChatMessage {
684 #[prost(string, tag="1")]
686 pub id: ::prost::alloc::string::String,
687 #[prost(int64, tag="2")]
688 pub timestamp: i64,
689 #[prost(int64, optional, tag="3")]
691 pub edit_timestamp: ::core::option::Option<i64>,
692 #[prost(string, tag="4")]
693 pub message: ::prost::alloc::string::String,
694 #[prost(bool, tag="5")]
696 pub deleted: bool,
697 #[prost(bool, tag="6")]
699 pub generated: bool,
700}
701#[allow(clippy::derive_partial_eq_without_eq)]
702#[derive(Clone, PartialEq, ::prost::Message)]
703pub struct RpcRequest {
704 #[prost(string, tag="1")]
705 pub id: ::prost::alloc::string::String,
706 #[prost(string, tag="2")]
707 pub method: ::prost::alloc::string::String,
708 #[prost(string, tag="3")]
709 pub payload: ::prost::alloc::string::String,
710 #[prost(uint32, tag="4")]
711 pub response_timeout_ms: u32,
712 #[prost(uint32, tag="5")]
713 pub version: u32,
714}
715#[allow(clippy::derive_partial_eq_without_eq)]
716#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct RpcAck {
718 #[prost(string, tag="1")]
719 pub request_id: ::prost::alloc::string::String,
720}
721#[allow(clippy::derive_partial_eq_without_eq)]
722#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct RpcResponse {
724 #[prost(string, tag="1")]
725 pub request_id: ::prost::alloc::string::String,
726 #[prost(oneof="rpc_response::Value", tags="2, 3")]
727 pub value: ::core::option::Option<rpc_response::Value>,
728}
729pub mod rpc_response {
731 #[allow(clippy::derive_partial_eq_without_eq)]
732#[derive(Clone, PartialEq, ::prost::Oneof)]
733 pub enum Value {
734 #[prost(string, tag="2")]
735 Payload(::prost::alloc::string::String),
736 #[prost(message, tag="3")]
737 Error(super::RpcError),
738 }
739}
740#[allow(clippy::derive_partial_eq_without_eq)]
741#[derive(Clone, PartialEq, ::prost::Message)]
742pub struct RpcError {
743 #[prost(uint32, tag="1")]
744 pub code: u32,
745 #[prost(string, tag="2")]
746 pub message: ::prost::alloc::string::String,
747 #[prost(string, tag="3")]
748 pub data: ::prost::alloc::string::String,
749}
750#[allow(clippy::derive_partial_eq_without_eq)]
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct ParticipantTracks {
753 #[prost(string, tag="1")]
755 pub participant_sid: ::prost::alloc::string::String,
756 #[prost(string, repeated, tag="2")]
757 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
758}
759#[allow(clippy::derive_partial_eq_without_eq)]
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct ServerInfo {
763 #[prost(enumeration="server_info::Edition", tag="1")]
764 pub edition: i32,
765 #[prost(string, tag="2")]
766 pub version: ::prost::alloc::string::String,
767 #[prost(int32, tag="3")]
768 pub protocol: i32,
769 #[prost(string, tag="4")]
770 pub region: ::prost::alloc::string::String,
771 #[prost(string, tag="5")]
772 pub node_id: ::prost::alloc::string::String,
773 #[prost(string, tag="6")]
775 pub debug_info: ::prost::alloc::string::String,
776 #[prost(int32, tag="7")]
777 pub agent_protocol: i32,
778}
779pub mod server_info {
781 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
782 #[repr(i32)]
783 pub enum Edition {
784 Standard = 0,
785 Cloud = 1,
786 }
787 impl Edition {
788 pub fn as_str_name(&self) -> &'static str {
793 match self {
794 Edition::Standard => "Standard",
795 Edition::Cloud => "Cloud",
796 }
797 }
798 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
800 match value {
801 "Standard" => Some(Self::Standard),
802 "Cloud" => Some(Self::Cloud),
803 _ => None,
804 }
805 }
806 }
807}
808#[allow(clippy::derive_partial_eq_without_eq)]
810#[derive(Clone, PartialEq, ::prost::Message)]
811pub struct ClientInfo {
812 #[prost(enumeration="client_info::Sdk", tag="1")]
813 pub sdk: i32,
814 #[prost(string, tag="2")]
815 pub version: ::prost::alloc::string::String,
816 #[prost(int32, tag="3")]
817 pub protocol: i32,
818 #[prost(string, tag="4")]
819 pub os: ::prost::alloc::string::String,
820 #[prost(string, tag="5")]
821 pub os_version: ::prost::alloc::string::String,
822 #[prost(string, tag="6")]
823 pub device_model: ::prost::alloc::string::String,
824 #[prost(string, tag="7")]
825 pub browser: ::prost::alloc::string::String,
826 #[prost(string, tag="8")]
827 pub browser_version: ::prost::alloc::string::String,
828 #[prost(string, tag="9")]
829 pub address: ::prost::alloc::string::String,
830 #[prost(string, tag="10")]
832 pub network: ::prost::alloc::string::String,
833 #[prost(string, tag="11")]
836 pub other_sdks: ::prost::alloc::string::String,
837}
838pub mod client_info {
840 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
841 #[repr(i32)]
842 pub enum Sdk {
843 Unknown = 0,
844 Js = 1,
845 Swift = 2,
846 Android = 3,
847 Flutter = 4,
848 Go = 5,
849 Unity = 6,
850 ReactNative = 7,
851 Rust = 8,
852 Python = 9,
853 Cpp = 10,
854 UnityWeb = 11,
855 Node = 12,
856 }
857 impl Sdk {
858 pub fn as_str_name(&self) -> &'static str {
863 match self {
864 Sdk::Unknown => "UNKNOWN",
865 Sdk::Js => "JS",
866 Sdk::Swift => "SWIFT",
867 Sdk::Android => "ANDROID",
868 Sdk::Flutter => "FLUTTER",
869 Sdk::Go => "GO",
870 Sdk::Unity => "UNITY",
871 Sdk::ReactNative => "REACT_NATIVE",
872 Sdk::Rust => "RUST",
873 Sdk::Python => "PYTHON",
874 Sdk::Cpp => "CPP",
875 Sdk::UnityWeb => "UNITY_WEB",
876 Sdk::Node => "NODE",
877 }
878 }
879 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
881 match value {
882 "UNKNOWN" => Some(Self::Unknown),
883 "JS" => Some(Self::Js),
884 "SWIFT" => Some(Self::Swift),
885 "ANDROID" => Some(Self::Android),
886 "FLUTTER" => Some(Self::Flutter),
887 "GO" => Some(Self::Go),
888 "UNITY" => Some(Self::Unity),
889 "REACT_NATIVE" => Some(Self::ReactNative),
890 "RUST" => Some(Self::Rust),
891 "PYTHON" => Some(Self::Python),
892 "CPP" => Some(Self::Cpp),
893 "UNITY_WEB" => Some(Self::UnityWeb),
894 "NODE" => Some(Self::Node),
895 _ => None,
896 }
897 }
898 }
899}
900#[allow(clippy::derive_partial_eq_without_eq)]
902#[derive(Clone, PartialEq, ::prost::Message)]
903pub struct ClientConfiguration {
904 #[prost(message, optional, tag="1")]
905 pub video: ::core::option::Option<VideoConfiguration>,
906 #[prost(message, optional, tag="2")]
907 pub screen: ::core::option::Option<VideoConfiguration>,
908 #[prost(enumeration="ClientConfigSetting", tag="3")]
909 pub resume_connection: i32,
910 #[prost(message, optional, tag="4")]
911 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
912 #[prost(enumeration="ClientConfigSetting", tag="5")]
913 pub force_relay: i32,
914}
915#[allow(clippy::derive_partial_eq_without_eq)]
916#[derive(Clone, PartialEq, ::prost::Message)]
917pub struct VideoConfiguration {
918 #[prost(enumeration="ClientConfigSetting", tag="1")]
919 pub hardware_encoder: i32,
920}
921#[allow(clippy::derive_partial_eq_without_eq)]
922#[derive(Clone, PartialEq, ::prost::Message)]
923pub struct DisabledCodecs {
924 #[prost(message, repeated, tag="1")]
926 pub codecs: ::prost::alloc::vec::Vec<Codec>,
927 #[prost(message, repeated, tag="2")]
929 pub publish: ::prost::alloc::vec::Vec<Codec>,
930}
931#[allow(clippy::derive_partial_eq_without_eq)]
932#[derive(Clone, PartialEq, ::prost::Message)]
933pub struct RtpDrift {
934 #[prost(message, optional, tag="1")]
935 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
936 #[prost(message, optional, tag="2")]
937 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
938 #[prost(double, tag="3")]
939 pub duration: f64,
940 #[prost(uint64, tag="4")]
941 pub start_timestamp: u64,
942 #[prost(uint64, tag="5")]
943 pub end_timestamp: u64,
944 #[prost(uint64, tag="6")]
945 pub rtp_clock_ticks: u64,
946 #[prost(int64, tag="7")]
947 pub drift_samples: i64,
948 #[prost(double, tag="8")]
949 pub drift_ms: f64,
950 #[prost(double, tag="9")]
951 pub clock_rate: f64,
952}
953#[allow(clippy::derive_partial_eq_without_eq)]
954#[derive(Clone, PartialEq, ::prost::Message)]
955pub struct RtpStats {
956 #[prost(message, optional, tag="1")]
957 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
958 #[prost(message, optional, tag="2")]
959 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
960 #[prost(double, tag="3")]
961 pub duration: f64,
962 #[prost(uint32, tag="4")]
963 pub packets: u32,
964 #[prost(double, tag="5")]
965 pub packet_rate: f64,
966 #[prost(uint64, tag="6")]
967 pub bytes: u64,
968 #[prost(uint64, tag="39")]
969 pub header_bytes: u64,
970 #[prost(double, tag="7")]
971 pub bitrate: f64,
972 #[prost(uint32, tag="8")]
973 pub packets_lost: u32,
974 #[prost(double, tag="9")]
975 pub packet_loss_rate: f64,
976 #[prost(float, tag="10")]
977 pub packet_loss_percentage: f32,
978 #[prost(uint32, tag="11")]
979 pub packets_duplicate: u32,
980 #[prost(double, tag="12")]
981 pub packet_duplicate_rate: f64,
982 #[prost(uint64, tag="13")]
983 pub bytes_duplicate: u64,
984 #[prost(uint64, tag="40")]
985 pub header_bytes_duplicate: u64,
986 #[prost(double, tag="14")]
987 pub bitrate_duplicate: f64,
988 #[prost(uint32, tag="15")]
989 pub packets_padding: u32,
990 #[prost(double, tag="16")]
991 pub packet_padding_rate: f64,
992 #[prost(uint64, tag="17")]
993 pub bytes_padding: u64,
994 #[prost(uint64, tag="41")]
995 pub header_bytes_padding: u64,
996 #[prost(double, tag="18")]
997 pub bitrate_padding: f64,
998 #[prost(uint32, tag="19")]
999 pub packets_out_of_order: u32,
1000 #[prost(uint32, tag="20")]
1001 pub frames: u32,
1002 #[prost(double, tag="21")]
1003 pub frame_rate: f64,
1004 #[prost(double, tag="22")]
1005 pub jitter_current: f64,
1006 #[prost(double, tag="23")]
1007 pub jitter_max: f64,
1008 #[prost(map="int32, uint32", tag="24")]
1009 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1010 #[prost(uint32, tag="25")]
1011 pub nacks: u32,
1012 #[prost(uint32, tag="37")]
1013 pub nack_acks: u32,
1014 #[prost(uint32, tag="26")]
1015 pub nack_misses: u32,
1016 #[prost(uint32, tag="38")]
1017 pub nack_repeated: u32,
1018 #[prost(uint32, tag="27")]
1019 pub plis: u32,
1020 #[prost(message, optional, tag="28")]
1021 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1022 #[prost(uint32, tag="29")]
1023 pub firs: u32,
1024 #[prost(message, optional, tag="30")]
1025 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1026 #[prost(uint32, tag="31")]
1027 pub rtt_current: u32,
1028 #[prost(uint32, tag="32")]
1029 pub rtt_max: u32,
1030 #[prost(uint32, tag="33")]
1031 pub key_frames: u32,
1032 #[prost(message, optional, tag="34")]
1033 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1034 #[prost(uint32, tag="35")]
1035 pub layer_lock_plis: u32,
1036 #[prost(message, optional, tag="36")]
1037 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1038 #[prost(message, optional, tag="44")]
1039 pub packet_drift: ::core::option::Option<RtpDrift>,
1040 #[prost(message, optional, tag="45")]
1041 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1042 #[prost(message, optional, tag="46")]
1043 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1044 #[prost(message, optional, tag="47")]
1046 pub received_report_drift: ::core::option::Option<RtpDrift>,
1047}
1048#[allow(clippy::derive_partial_eq_without_eq)]
1049#[derive(Clone, PartialEq, ::prost::Message)]
1050pub struct RtcpSenderReportState {
1051 #[prost(uint32, tag="1")]
1052 pub rtp_timestamp: u32,
1053 #[prost(uint64, tag="2")]
1054 pub rtp_timestamp_ext: u64,
1055 #[prost(uint64, tag="3")]
1056 pub ntp_timestamp: u64,
1057 #[prost(int64, tag="4")]
1059 pub at: i64,
1060 #[prost(int64, tag="5")]
1061 pub at_adjusted: i64,
1062 #[prost(uint32, tag="6")]
1063 pub packets: u32,
1064 #[prost(uint64, tag="7")]
1065 pub octets: u64,
1066}
1067#[allow(clippy::derive_partial_eq_without_eq)]
1068#[derive(Clone, PartialEq, ::prost::Message)]
1069pub struct RtpForwarderState {
1070 #[prost(bool, tag="1")]
1071 pub started: bool,
1072 #[prost(int32, tag="2")]
1073 pub reference_layer_spatial: i32,
1074 #[prost(int64, tag="3")]
1075 pub pre_start_time: i64,
1076 #[prost(uint64, tag="4")]
1077 pub ext_first_timestamp: u64,
1078 #[prost(uint64, tag="5")]
1079 pub dummy_start_timestamp_offset: u64,
1080 #[prost(message, optional, tag="6")]
1081 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1082 #[prost(message, repeated, tag="8")]
1083 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1084 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1085 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1086}
1087pub mod rtp_forwarder_state {
1089 #[allow(clippy::derive_partial_eq_without_eq)]
1090#[derive(Clone, PartialEq, ::prost::Oneof)]
1091 pub enum CodecMunger {
1092 #[prost(message, tag="7")]
1093 Vp8Munger(super::Vp8MungerState),
1094 }
1095}
1096#[allow(clippy::derive_partial_eq_without_eq)]
1097#[derive(Clone, PartialEq, ::prost::Message)]
1098pub struct RtpMungerState {
1099 #[prost(uint64, tag="1")]
1100 pub ext_last_sequence_number: u64,
1101 #[prost(uint64, tag="2")]
1102 pub ext_second_last_sequence_number: u64,
1103 #[prost(uint64, tag="3")]
1104 pub ext_last_timestamp: u64,
1105 #[prost(uint64, tag="4")]
1106 pub ext_second_last_timestamp: u64,
1107 #[prost(bool, tag="5")]
1108 pub last_marker: bool,
1109 #[prost(bool, tag="6")]
1110 pub second_last_marker: bool,
1111}
1112#[allow(clippy::derive_partial_eq_without_eq)]
1113#[derive(Clone, PartialEq, ::prost::Message)]
1114pub struct Vp8MungerState {
1115 #[prost(int32, tag="1")]
1116 pub ext_last_picture_id: i32,
1117 #[prost(bool, tag="2")]
1118 pub picture_id_used: bool,
1119 #[prost(uint32, tag="3")]
1120 pub last_tl0_pic_idx: u32,
1121 #[prost(bool, tag="4")]
1122 pub tl0_pic_idx_used: bool,
1123 #[prost(bool, tag="5")]
1124 pub tid_used: bool,
1125 #[prost(uint32, tag="6")]
1126 pub last_key_idx: u32,
1127 #[prost(bool, tag="7")]
1128 pub key_idx_used: bool,
1129}
1130#[allow(clippy::derive_partial_eq_without_eq)]
1131#[derive(Clone, PartialEq, ::prost::Message)]
1132pub struct TimedVersion {
1133 #[prost(int64, tag="1")]
1134 pub unix_micro: i64,
1135 #[prost(int32, tag="2")]
1136 pub ticks: i32,
1137}
1138#[allow(clippy::derive_partial_eq_without_eq)]
1139#[derive(Clone, PartialEq, ::prost::Message)]
1140pub struct DataStream {
1141}
1142pub mod data_stream {
1144 #[allow(clippy::derive_partial_eq_without_eq)]
1146#[derive(Clone, PartialEq, ::prost::Message)]
1147 pub struct TextHeader {
1148 #[prost(enumeration="OperationType", tag="1")]
1149 pub operation_type: i32,
1150 #[prost(int32, tag="2")]
1152 pub version: i32,
1153 #[prost(string, tag="3")]
1155 pub reply_to_stream_id: ::prost::alloc::string::String,
1156 #[prost(string, repeated, tag="4")]
1158 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1159 #[prost(bool, tag="5")]
1161 pub generated: bool,
1162 }
1163 #[allow(clippy::derive_partial_eq_without_eq)]
1165#[derive(Clone, PartialEq, ::prost::Message)]
1166 pub struct ByteHeader {
1167 #[prost(string, tag="1")]
1168 pub name: ::prost::alloc::string::String,
1169 }
1170 #[allow(clippy::derive_partial_eq_without_eq)]
1172#[derive(Clone, PartialEq, ::prost::Message)]
1173 pub struct Header {
1174 #[prost(string, tag="1")]
1176 pub stream_id: ::prost::alloc::string::String,
1177 #[prost(int64, tag="2")]
1179 pub timestamp: i64,
1180 #[prost(string, tag="3")]
1181 pub topic: ::prost::alloc::string::String,
1182 #[prost(string, tag="4")]
1183 pub mime_type: ::prost::alloc::string::String,
1184 #[prost(uint64, optional, tag="5")]
1186 pub total_length: ::core::option::Option<u64>,
1187 #[prost(enumeration="super::encryption::Type", tag="7")]
1189 pub encryption_type: i32,
1190 #[prost(map="string, string", tag="8")]
1192 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1193 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1195 pub content_header: ::core::option::Option<header::ContentHeader>,
1196 }
1197 pub mod header {
1199 #[allow(clippy::derive_partial_eq_without_eq)]
1201#[derive(Clone, PartialEq, ::prost::Oneof)]
1202 pub enum ContentHeader {
1203 #[prost(message, tag="9")]
1204 TextHeader(super::TextHeader),
1205 #[prost(message, tag="10")]
1206 ByteHeader(super::ByteHeader),
1207 }
1208 }
1209 #[allow(clippy::derive_partial_eq_without_eq)]
1210#[derive(Clone, PartialEq, ::prost::Message)]
1211 pub struct Chunk {
1212 #[prost(string, tag="1")]
1214 pub stream_id: ::prost::alloc::string::String,
1215 #[prost(uint64, tag="2")]
1216 pub chunk_index: u64,
1217 #[prost(bytes="vec", tag="3")]
1219 pub content: ::prost::alloc::vec::Vec<u8>,
1220 #[prost(int32, tag="4")]
1222 pub version: i32,
1223 #[prost(bytes="vec", optional, tag="5")]
1225 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1226 }
1227 #[allow(clippy::derive_partial_eq_without_eq)]
1228#[derive(Clone, PartialEq, ::prost::Message)]
1229 pub struct Trailer {
1230 #[prost(string, tag="1")]
1232 pub stream_id: ::prost::alloc::string::String,
1233 #[prost(string, tag="2")]
1235 pub reason: ::prost::alloc::string::String,
1236 #[prost(map="string, string", tag="3")]
1238 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1239 }
1240 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1242 #[repr(i32)]
1243 pub enum OperationType {
1244 Create = 0,
1245 Update = 1,
1246 Delete = 2,
1247 Reaction = 3,
1248 }
1249 impl OperationType {
1250 pub fn as_str_name(&self) -> &'static str {
1255 match self {
1256 OperationType::Create => "CREATE",
1257 OperationType::Update => "UPDATE",
1258 OperationType::Delete => "DELETE",
1259 OperationType::Reaction => "REACTION",
1260 }
1261 }
1262 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1264 match value {
1265 "CREATE" => Some(Self::Create),
1266 "UPDATE" => Some(Self::Update),
1267 "DELETE" => Some(Self::Delete),
1268 "REACTION" => Some(Self::Reaction),
1269 _ => None,
1270 }
1271 }
1272 }
1273}
1274#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1275#[repr(i32)]
1276pub enum AudioCodec {
1277 DefaultAc = 0,
1278 Opus = 1,
1279 Aac = 2,
1280}
1281impl AudioCodec {
1282 pub fn as_str_name(&self) -> &'static str {
1287 match self {
1288 AudioCodec::DefaultAc => "DEFAULT_AC",
1289 AudioCodec::Opus => "OPUS",
1290 AudioCodec::Aac => "AAC",
1291 }
1292 }
1293 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1295 match value {
1296 "DEFAULT_AC" => Some(Self::DefaultAc),
1297 "OPUS" => Some(Self::Opus),
1298 "AAC" => Some(Self::Aac),
1299 _ => None,
1300 }
1301 }
1302}
1303#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1304#[repr(i32)]
1305pub enum VideoCodec {
1306 DefaultVc = 0,
1307 H264Baseline = 1,
1308 H264Main = 2,
1309 H264High = 3,
1310 Vp8 = 4,
1311}
1312impl VideoCodec {
1313 pub fn as_str_name(&self) -> &'static str {
1318 match self {
1319 VideoCodec::DefaultVc => "DEFAULT_VC",
1320 VideoCodec::H264Baseline => "H264_BASELINE",
1321 VideoCodec::H264Main => "H264_MAIN",
1322 VideoCodec::H264High => "H264_HIGH",
1323 VideoCodec::Vp8 => "VP8",
1324 }
1325 }
1326 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1328 match value {
1329 "DEFAULT_VC" => Some(Self::DefaultVc),
1330 "H264_BASELINE" => Some(Self::H264Baseline),
1331 "H264_MAIN" => Some(Self::H264Main),
1332 "H264_HIGH" => Some(Self::H264High),
1333 "VP8" => Some(Self::Vp8),
1334 _ => None,
1335 }
1336 }
1337}
1338#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1339#[repr(i32)]
1340pub enum ImageCodec {
1341 IcDefault = 0,
1342 IcJpeg = 1,
1343}
1344impl ImageCodec {
1345 pub fn as_str_name(&self) -> &'static str {
1350 match self {
1351 ImageCodec::IcDefault => "IC_DEFAULT",
1352 ImageCodec::IcJpeg => "IC_JPEG",
1353 }
1354 }
1355 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1357 match value {
1358 "IC_DEFAULT" => Some(Self::IcDefault),
1359 "IC_JPEG" => Some(Self::IcJpeg),
1360 _ => None,
1361 }
1362 }
1363}
1364#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1365#[repr(i32)]
1366pub enum TrackType {
1367 Audio = 0,
1368 Video = 1,
1369 Data = 2,
1370}
1371impl TrackType {
1372 pub fn as_str_name(&self) -> &'static str {
1377 match self {
1378 TrackType::Audio => "AUDIO",
1379 TrackType::Video => "VIDEO",
1380 TrackType::Data => "DATA",
1381 }
1382 }
1383 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1385 match value {
1386 "AUDIO" => Some(Self::Audio),
1387 "VIDEO" => Some(Self::Video),
1388 "DATA" => Some(Self::Data),
1389 _ => None,
1390 }
1391 }
1392}
1393#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1394#[repr(i32)]
1395pub enum TrackSource {
1396 Unknown = 0,
1397 Camera = 1,
1398 Microphone = 2,
1399 ScreenShare = 3,
1400 ScreenShareAudio = 4,
1401}
1402impl TrackSource {
1403 pub fn as_str_name(&self) -> &'static str {
1408 match self {
1409 TrackSource::Unknown => "UNKNOWN",
1410 TrackSource::Camera => "CAMERA",
1411 TrackSource::Microphone => "MICROPHONE",
1412 TrackSource::ScreenShare => "SCREEN_SHARE",
1413 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1414 }
1415 }
1416 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1418 match value {
1419 "UNKNOWN" => Some(Self::Unknown),
1420 "CAMERA" => Some(Self::Camera),
1421 "MICROPHONE" => Some(Self::Microphone),
1422 "SCREEN_SHARE" => Some(Self::ScreenShare),
1423 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1424 _ => None,
1425 }
1426 }
1427}
1428#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1429#[repr(i32)]
1430pub enum VideoQuality {
1431 Low = 0,
1432 Medium = 1,
1433 High = 2,
1434 Off = 3,
1435}
1436impl VideoQuality {
1437 pub fn as_str_name(&self) -> &'static str {
1442 match self {
1443 VideoQuality::Low => "LOW",
1444 VideoQuality::Medium => "MEDIUM",
1445 VideoQuality::High => "HIGH",
1446 VideoQuality::Off => "OFF",
1447 }
1448 }
1449 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1451 match value {
1452 "LOW" => Some(Self::Low),
1453 "MEDIUM" => Some(Self::Medium),
1454 "HIGH" => Some(Self::High),
1455 "OFF" => Some(Self::Off),
1456 _ => None,
1457 }
1458 }
1459}
1460#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1461#[repr(i32)]
1462pub enum ConnectionQuality {
1463 Poor = 0,
1464 Good = 1,
1465 Excellent = 2,
1466 Lost = 3,
1467}
1468impl ConnectionQuality {
1469 pub fn as_str_name(&self) -> &'static str {
1474 match self {
1475 ConnectionQuality::Poor => "POOR",
1476 ConnectionQuality::Good => "GOOD",
1477 ConnectionQuality::Excellent => "EXCELLENT",
1478 ConnectionQuality::Lost => "LOST",
1479 }
1480 }
1481 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1483 match value {
1484 "POOR" => Some(Self::Poor),
1485 "GOOD" => Some(Self::Good),
1486 "EXCELLENT" => Some(Self::Excellent),
1487 "LOST" => Some(Self::Lost),
1488 _ => None,
1489 }
1490 }
1491}
1492#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1493#[repr(i32)]
1494pub enum ClientConfigSetting {
1495 Unset = 0,
1496 Disabled = 1,
1497 Enabled = 2,
1498}
1499impl ClientConfigSetting {
1500 pub fn as_str_name(&self) -> &'static str {
1505 match self {
1506 ClientConfigSetting::Unset => "UNSET",
1507 ClientConfigSetting::Disabled => "DISABLED",
1508 ClientConfigSetting::Enabled => "ENABLED",
1509 }
1510 }
1511 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1513 match value {
1514 "UNSET" => Some(Self::Unset),
1515 "DISABLED" => Some(Self::Disabled),
1516 "ENABLED" => Some(Self::Enabled),
1517 _ => None,
1518 }
1519 }
1520}
1521#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1522#[repr(i32)]
1523pub enum DisconnectReason {
1524 UnknownReason = 0,
1525 ClientInitiated = 1,
1527 DuplicateIdentity = 2,
1529 ServerShutdown = 3,
1531 ParticipantRemoved = 4,
1533 RoomDeleted = 5,
1535 StateMismatch = 6,
1537 JoinFailure = 7,
1539 Migration = 8,
1541 SignalClose = 9,
1543 RoomClosed = 10,
1545 UserUnavailable = 11,
1547 UserRejected = 12,
1549 SipTrunkFailure = 13,
1551}
1552impl DisconnectReason {
1553 pub fn as_str_name(&self) -> &'static str {
1558 match self {
1559 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1560 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1561 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1562 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1563 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1564 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1565 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1566 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1567 DisconnectReason::Migration => "MIGRATION",
1568 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1569 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1570 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1571 DisconnectReason::UserRejected => "USER_REJECTED",
1572 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1573 }
1574 }
1575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1577 match value {
1578 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1579 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1580 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1581 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1582 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1583 "ROOM_DELETED" => Some(Self::RoomDeleted),
1584 "STATE_MISMATCH" => Some(Self::StateMismatch),
1585 "JOIN_FAILURE" => Some(Self::JoinFailure),
1586 "MIGRATION" => Some(Self::Migration),
1587 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1588 "ROOM_CLOSED" => Some(Self::RoomClosed),
1589 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1590 "USER_REJECTED" => Some(Self::UserRejected),
1591 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1592 _ => None,
1593 }
1594 }
1595}
1596#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1597#[repr(i32)]
1598pub enum ReconnectReason {
1599 RrUnknown = 0,
1600 RrSignalDisconnected = 1,
1601 RrPublisherFailed = 2,
1602 RrSubscriberFailed = 3,
1603 RrSwitchCandidate = 4,
1604}
1605impl ReconnectReason {
1606 pub fn as_str_name(&self) -> &'static str {
1611 match self {
1612 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1613 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1614 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1615 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1616 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1617 }
1618 }
1619 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1621 match value {
1622 "RR_UNKNOWN" => Some(Self::RrUnknown),
1623 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1624 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1625 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1626 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1627 _ => None,
1628 }
1629 }
1630}
1631#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1632#[repr(i32)]
1633pub enum SubscriptionError {
1634 SeUnknown = 0,
1635 SeCodecUnsupported = 1,
1636 SeTrackNotfound = 2,
1637}
1638impl SubscriptionError {
1639 pub fn as_str_name(&self) -> &'static str {
1644 match self {
1645 SubscriptionError::SeUnknown => "SE_UNKNOWN",
1646 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
1647 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
1648 }
1649 }
1650 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1652 match value {
1653 "SE_UNKNOWN" => Some(Self::SeUnknown),
1654 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
1655 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
1656 _ => None,
1657 }
1658 }
1659}
1660#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1661#[repr(i32)]
1662pub enum AudioTrackFeature {
1663 TfStereo = 0,
1664 TfNoDtx = 1,
1665 TfAutoGainControl = 2,
1666 TfEchoCancellation = 3,
1667 TfNoiseSuppression = 4,
1668 TfEnhancedNoiseCancellation = 5,
1669}
1670impl AudioTrackFeature {
1671 pub fn as_str_name(&self) -> &'static str {
1676 match self {
1677 AudioTrackFeature::TfStereo => "TF_STEREO",
1678 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
1679 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
1680 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
1681 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
1682 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
1683 }
1684 }
1685 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1687 match value {
1688 "TF_STEREO" => Some(Self::TfStereo),
1689 "TF_NO_DTX" => Some(Self::TfNoDtx),
1690 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
1691 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
1692 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
1693 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
1694 _ => None,
1695 }
1696 }
1697}
1698#[allow(clippy::derive_partial_eq_without_eq)]
1700#[derive(Clone, PartialEq, ::prost::Message)]
1701pub struct RoomCompositeEgressRequest {
1702 #[prost(string, tag="1")]
1704 pub room_name: ::prost::alloc::string::String,
1705 #[prost(string, tag="2")]
1707 pub layout: ::prost::alloc::string::String,
1708 #[prost(bool, tag="3")]
1710 pub audio_only: bool,
1711 #[prost(bool, tag="4")]
1713 pub video_only: bool,
1714 #[prost(string, tag="5")]
1716 pub custom_base_url: ::prost::alloc::string::String,
1717 #[prost(message, repeated, tag="11")]
1718 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1719 #[prost(message, repeated, tag="12")]
1720 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1721 #[prost(message, repeated, tag="13")]
1722 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1723 #[prost(message, repeated, tag="14")]
1724 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1725 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
1727 pub output: ::core::option::Option<room_composite_egress_request::Output>,
1728 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
1729 pub options: ::core::option::Option<room_composite_egress_request::Options>,
1730}
1731pub mod room_composite_egress_request {
1733 #[allow(clippy::derive_partial_eq_without_eq)]
1735#[derive(Clone, PartialEq, ::prost::Oneof)]
1736 pub enum Output {
1737 #[prost(message, tag="6")]
1738 File(super::EncodedFileOutput),
1739 #[prost(message, tag="7")]
1740 Stream(super::StreamOutput),
1741 #[prost(message, tag="10")]
1742 Segments(super::SegmentedFileOutput),
1743 }
1744 #[allow(clippy::derive_partial_eq_without_eq)]
1745#[derive(Clone, PartialEq, ::prost::Oneof)]
1746 pub enum Options {
1747 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
1749 Preset(i32),
1750 #[prost(message, tag="9")]
1752 Advanced(super::EncodingOptions),
1753 }
1754}
1755#[allow(clippy::derive_partial_eq_without_eq)]
1757#[derive(Clone, PartialEq, ::prost::Message)]
1758pub struct WebEgressRequest {
1759 #[prost(string, tag="1")]
1760 pub url: ::prost::alloc::string::String,
1761 #[prost(bool, tag="2")]
1762 pub audio_only: bool,
1763 #[prost(bool, tag="3")]
1764 pub video_only: bool,
1765 #[prost(bool, tag="12")]
1766 pub await_start_signal: bool,
1767 #[prost(message, repeated, tag="9")]
1768 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1769 #[prost(message, repeated, tag="10")]
1770 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1771 #[prost(message, repeated, tag="11")]
1772 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1773 #[prost(message, repeated, tag="13")]
1774 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1775 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
1777 pub output: ::core::option::Option<web_egress_request::Output>,
1778 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
1779 pub options: ::core::option::Option<web_egress_request::Options>,
1780}
1781pub mod web_egress_request {
1783 #[allow(clippy::derive_partial_eq_without_eq)]
1785#[derive(Clone, PartialEq, ::prost::Oneof)]
1786 pub enum Output {
1787 #[prost(message, tag="4")]
1788 File(super::EncodedFileOutput),
1789 #[prost(message, tag="5")]
1790 Stream(super::StreamOutput),
1791 #[prost(message, tag="6")]
1792 Segments(super::SegmentedFileOutput),
1793 }
1794 #[allow(clippy::derive_partial_eq_without_eq)]
1795#[derive(Clone, PartialEq, ::prost::Oneof)]
1796 pub enum Options {
1797 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
1798 Preset(i32),
1799 #[prost(message, tag="8")]
1800 Advanced(super::EncodingOptions),
1801 }
1802}
1803#[allow(clippy::derive_partial_eq_without_eq)]
1805#[derive(Clone, PartialEq, ::prost::Message)]
1806pub struct ParticipantEgressRequest {
1807 #[prost(string, tag="1")]
1809 pub room_name: ::prost::alloc::string::String,
1810 #[prost(string, tag="2")]
1812 pub identity: ::prost::alloc::string::String,
1813 #[prost(bool, tag="3")]
1815 pub screen_share: bool,
1816 #[prost(message, repeated, tag="6")]
1817 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1818 #[prost(message, repeated, tag="7")]
1819 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1820 #[prost(message, repeated, tag="8")]
1821 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1822 #[prost(message, repeated, tag="9")]
1823 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1824 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
1825 pub options: ::core::option::Option<participant_egress_request::Options>,
1826}
1827pub mod participant_egress_request {
1829 #[allow(clippy::derive_partial_eq_without_eq)]
1830#[derive(Clone, PartialEq, ::prost::Oneof)]
1831 pub enum Options {
1832 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
1834 Preset(i32),
1835 #[prost(message, tag="5")]
1837 Advanced(super::EncodingOptions),
1838 }
1839}
1840#[allow(clippy::derive_partial_eq_without_eq)]
1842#[derive(Clone, PartialEq, ::prost::Message)]
1843pub struct TrackCompositeEgressRequest {
1844 #[prost(string, tag="1")]
1846 pub room_name: ::prost::alloc::string::String,
1847 #[prost(string, tag="2")]
1849 pub audio_track_id: ::prost::alloc::string::String,
1850 #[prost(string, tag="3")]
1852 pub video_track_id: ::prost::alloc::string::String,
1853 #[prost(message, repeated, tag="11")]
1854 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1855 #[prost(message, repeated, tag="12")]
1856 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1857 #[prost(message, repeated, tag="13")]
1858 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1859 #[prost(message, repeated, tag="14")]
1860 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1861 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
1863 pub output: ::core::option::Option<track_composite_egress_request::Output>,
1864 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
1865 pub options: ::core::option::Option<track_composite_egress_request::Options>,
1866}
1867pub mod track_composite_egress_request {
1869 #[allow(clippy::derive_partial_eq_without_eq)]
1871#[derive(Clone, PartialEq, ::prost::Oneof)]
1872 pub enum Output {
1873 #[prost(message, tag="4")]
1874 File(super::EncodedFileOutput),
1875 #[prost(message, tag="5")]
1876 Stream(super::StreamOutput),
1877 #[prost(message, tag="8")]
1878 Segments(super::SegmentedFileOutput),
1879 }
1880 #[allow(clippy::derive_partial_eq_without_eq)]
1881#[derive(Clone, PartialEq, ::prost::Oneof)]
1882 pub enum Options {
1883 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
1885 Preset(i32),
1886 #[prost(message, tag="7")]
1888 Advanced(super::EncodingOptions),
1889 }
1890}
1891#[allow(clippy::derive_partial_eq_without_eq)]
1893#[derive(Clone, PartialEq, ::prost::Message)]
1894pub struct TrackEgressRequest {
1895 #[prost(string, tag="1")]
1897 pub room_name: ::prost::alloc::string::String,
1898 #[prost(string, tag="2")]
1900 pub track_id: ::prost::alloc::string::String,
1901 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
1903 pub output: ::core::option::Option<track_egress_request::Output>,
1904}
1905pub mod track_egress_request {
1907 #[allow(clippy::derive_partial_eq_without_eq)]
1909#[derive(Clone, PartialEq, ::prost::Oneof)]
1910 pub enum Output {
1911 #[prost(message, tag="3")]
1912 File(super::DirectFileOutput),
1913 #[prost(string, tag="4")]
1914 WebsocketUrl(::prost::alloc::string::String),
1915 }
1916}
1917#[allow(clippy::derive_partial_eq_without_eq)]
1918#[derive(Clone, PartialEq, ::prost::Message)]
1919pub struct EncodedFileOutput {
1920 #[prost(enumeration="EncodedFileType", tag="1")]
1922 pub file_type: i32,
1923 #[prost(string, tag="2")]
1925 pub filepath: ::prost::alloc::string::String,
1926 #[prost(bool, tag="6")]
1928 pub disable_manifest: bool,
1929 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
1930 pub output: ::core::option::Option<encoded_file_output::Output>,
1931}
1932pub mod encoded_file_output {
1934 #[allow(clippy::derive_partial_eq_without_eq)]
1935#[derive(Clone, PartialEq, ::prost::Oneof)]
1936 pub enum Output {
1937 #[prost(message, tag="3")]
1938 S3(super::S3Upload),
1939 #[prost(message, tag="4")]
1940 Gcp(super::GcpUpload),
1941 #[prost(message, tag="5")]
1942 Azure(super::AzureBlobUpload),
1943 #[prost(message, tag="7")]
1944 AliOss(super::AliOssUpload),
1945 }
1946}
1947#[allow(clippy::derive_partial_eq_without_eq)]
1949#[derive(Clone, PartialEq, ::prost::Message)]
1950pub struct SegmentedFileOutput {
1951 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
1953 pub protocol: i32,
1954 #[prost(string, tag="2")]
1956 pub filename_prefix: ::prost::alloc::string::String,
1957 #[prost(string, tag="3")]
1959 pub playlist_name: ::prost::alloc::string::String,
1960 #[prost(string, tag="11")]
1962 pub live_playlist_name: ::prost::alloc::string::String,
1963 #[prost(uint32, tag="4")]
1965 pub segment_duration: u32,
1966 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
1968 pub filename_suffix: i32,
1969 #[prost(bool, tag="8")]
1971 pub disable_manifest: bool,
1972 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
1974 pub output: ::core::option::Option<segmented_file_output::Output>,
1975}
1976pub mod segmented_file_output {
1978 #[allow(clippy::derive_partial_eq_without_eq)]
1980#[derive(Clone, PartialEq, ::prost::Oneof)]
1981 pub enum Output {
1982 #[prost(message, tag="5")]
1983 S3(super::S3Upload),
1984 #[prost(message, tag="6")]
1985 Gcp(super::GcpUpload),
1986 #[prost(message, tag="7")]
1987 Azure(super::AzureBlobUpload),
1988 #[prost(message, tag="9")]
1989 AliOss(super::AliOssUpload),
1990 }
1991}
1992#[allow(clippy::derive_partial_eq_without_eq)]
1993#[derive(Clone, PartialEq, ::prost::Message)]
1994pub struct DirectFileOutput {
1995 #[prost(string, tag="1")]
1997 pub filepath: ::prost::alloc::string::String,
1998 #[prost(bool, tag="5")]
2000 pub disable_manifest: bool,
2001 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2002 pub output: ::core::option::Option<direct_file_output::Output>,
2003}
2004pub mod direct_file_output {
2006 #[allow(clippy::derive_partial_eq_without_eq)]
2007#[derive(Clone, PartialEq, ::prost::Oneof)]
2008 pub enum Output {
2009 #[prost(message, tag="2")]
2010 S3(super::S3Upload),
2011 #[prost(message, tag="3")]
2012 Gcp(super::GcpUpload),
2013 #[prost(message, tag="4")]
2014 Azure(super::AzureBlobUpload),
2015 #[prost(message, tag="6")]
2016 AliOss(super::AliOssUpload),
2017 }
2018}
2019#[allow(clippy::derive_partial_eq_without_eq)]
2020#[derive(Clone, PartialEq, ::prost::Message)]
2021pub struct ImageOutput {
2022 #[prost(uint32, tag="1")]
2024 pub capture_interval: u32,
2025 #[prost(int32, tag="2")]
2027 pub width: i32,
2028 #[prost(int32, tag="3")]
2030 pub height: i32,
2031 #[prost(string, tag="4")]
2033 pub filename_prefix: ::prost::alloc::string::String,
2034 #[prost(enumeration="ImageFileSuffix", tag="5")]
2036 pub filename_suffix: i32,
2037 #[prost(enumeration="ImageCodec", tag="6")]
2039 pub image_codec: i32,
2040 #[prost(bool, tag="7")]
2042 pub disable_manifest: bool,
2043 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2045 pub output: ::core::option::Option<image_output::Output>,
2046}
2047pub mod image_output {
2049 #[allow(clippy::derive_partial_eq_without_eq)]
2051#[derive(Clone, PartialEq, ::prost::Oneof)]
2052 pub enum Output {
2053 #[prost(message, tag="8")]
2054 S3(super::S3Upload),
2055 #[prost(message, tag="9")]
2056 Gcp(super::GcpUpload),
2057 #[prost(message, tag="10")]
2058 Azure(super::AzureBlobUpload),
2059 #[prost(message, tag="11")]
2060 AliOss(super::AliOssUpload),
2061 }
2062}
2063#[allow(clippy::derive_partial_eq_without_eq)]
2064#[derive(Clone, PartialEq, ::prost::Message)]
2065pub struct S3Upload {
2066 #[prost(string, tag="1")]
2067 pub access_key: ::prost::alloc::string::String,
2068 #[prost(string, tag="2")]
2069 pub secret: ::prost::alloc::string::String,
2070 #[prost(string, tag="11")]
2071 pub session_token: ::prost::alloc::string::String,
2072 #[prost(string, tag="3")]
2073 pub region: ::prost::alloc::string::String,
2074 #[prost(string, tag="4")]
2075 pub endpoint: ::prost::alloc::string::String,
2076 #[prost(string, tag="5")]
2077 pub bucket: ::prost::alloc::string::String,
2078 #[prost(bool, tag="6")]
2079 pub force_path_style: bool,
2080 #[prost(map="string, string", tag="7")]
2081 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2082 #[prost(string, tag="8")]
2083 pub tagging: ::prost::alloc::string::String,
2084 #[prost(string, tag="9")]
2086 pub content_disposition: ::prost::alloc::string::String,
2087 #[prost(message, optional, tag="10")]
2088 pub proxy: ::core::option::Option<ProxyConfig>,
2089}
2090#[allow(clippy::derive_partial_eq_without_eq)]
2091#[derive(Clone, PartialEq, ::prost::Message)]
2092pub struct GcpUpload {
2093 #[prost(string, tag="1")]
2095 pub credentials: ::prost::alloc::string::String,
2096 #[prost(string, tag="2")]
2097 pub bucket: ::prost::alloc::string::String,
2098 #[prost(message, optional, tag="3")]
2099 pub proxy: ::core::option::Option<ProxyConfig>,
2100}
2101#[allow(clippy::derive_partial_eq_without_eq)]
2102#[derive(Clone, PartialEq, ::prost::Message)]
2103pub struct AzureBlobUpload {
2104 #[prost(string, tag="1")]
2105 pub account_name: ::prost::alloc::string::String,
2106 #[prost(string, tag="2")]
2107 pub account_key: ::prost::alloc::string::String,
2108 #[prost(string, tag="3")]
2109 pub container_name: ::prost::alloc::string::String,
2110}
2111#[allow(clippy::derive_partial_eq_without_eq)]
2112#[derive(Clone, PartialEq, ::prost::Message)]
2113pub struct AliOssUpload {
2114 #[prost(string, tag="1")]
2115 pub access_key: ::prost::alloc::string::String,
2116 #[prost(string, tag="2")]
2117 pub secret: ::prost::alloc::string::String,
2118 #[prost(string, tag="3")]
2119 pub region: ::prost::alloc::string::String,
2120 #[prost(string, tag="4")]
2121 pub endpoint: ::prost::alloc::string::String,
2122 #[prost(string, tag="5")]
2123 pub bucket: ::prost::alloc::string::String,
2124}
2125#[allow(clippy::derive_partial_eq_without_eq)]
2126#[derive(Clone, PartialEq, ::prost::Message)]
2127pub struct ProxyConfig {
2128 #[prost(string, tag="1")]
2129 pub url: ::prost::alloc::string::String,
2130 #[prost(string, tag="2")]
2131 pub username: ::prost::alloc::string::String,
2132 #[prost(string, tag="3")]
2133 pub password: ::prost::alloc::string::String,
2134}
2135#[allow(clippy::derive_partial_eq_without_eq)]
2136#[derive(Clone, PartialEq, ::prost::Message)]
2137pub struct StreamOutput {
2138 #[prost(enumeration="StreamProtocol", tag="1")]
2140 pub protocol: i32,
2141 #[prost(string, repeated, tag="2")]
2143 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2144}
2145#[allow(clippy::derive_partial_eq_without_eq)]
2146#[derive(Clone, PartialEq, ::prost::Message)]
2147pub struct EncodingOptions {
2148 #[prost(int32, tag="1")]
2150 pub width: i32,
2151 #[prost(int32, tag="2")]
2153 pub height: i32,
2154 #[prost(int32, tag="3")]
2156 pub depth: i32,
2157 #[prost(int32, tag="4")]
2159 pub framerate: i32,
2160 #[prost(enumeration="AudioCodec", tag="5")]
2162 pub audio_codec: i32,
2163 #[prost(int32, tag="6")]
2165 pub audio_bitrate: i32,
2166 #[prost(int32, tag="11")]
2168 pub audio_quality: i32,
2169 #[prost(int32, tag="7")]
2171 pub audio_frequency: i32,
2172 #[prost(enumeration="VideoCodec", tag="8")]
2174 pub video_codec: i32,
2175 #[prost(int32, tag="9")]
2177 pub video_bitrate: i32,
2178 #[prost(int32, tag="12")]
2180 pub video_quality: i32,
2181 #[prost(double, tag="10")]
2183 pub key_frame_interval: f64,
2184}
2185#[allow(clippy::derive_partial_eq_without_eq)]
2186#[derive(Clone, PartialEq, ::prost::Message)]
2187pub struct UpdateLayoutRequest {
2188 #[prost(string, tag="1")]
2189 pub egress_id: ::prost::alloc::string::String,
2190 #[prost(string, tag="2")]
2191 pub layout: ::prost::alloc::string::String,
2192}
2193#[allow(clippy::derive_partial_eq_without_eq)]
2194#[derive(Clone, PartialEq, ::prost::Message)]
2195pub struct UpdateStreamRequest {
2196 #[prost(string, tag="1")]
2197 pub egress_id: ::prost::alloc::string::String,
2198 #[prost(string, repeated, tag="2")]
2199 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2200 #[prost(string, repeated, tag="3")]
2201 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2202}
2203#[allow(clippy::derive_partial_eq_without_eq)]
2204#[derive(Clone, PartialEq, ::prost::Message)]
2205pub struct ListEgressRequest {
2206 #[prost(string, tag="1")]
2208 pub room_name: ::prost::alloc::string::String,
2209 #[prost(string, tag="2")]
2211 pub egress_id: ::prost::alloc::string::String,
2212 #[prost(bool, tag="3")]
2214 pub active: bool,
2215}
2216#[allow(clippy::derive_partial_eq_without_eq)]
2217#[derive(Clone, PartialEq, ::prost::Message)]
2218pub struct ListEgressResponse {
2219 #[prost(message, repeated, tag="1")]
2220 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2221}
2222#[allow(clippy::derive_partial_eq_without_eq)]
2223#[derive(Clone, PartialEq, ::prost::Message)]
2224pub struct StopEgressRequest {
2225 #[prost(string, tag="1")]
2226 pub egress_id: ::prost::alloc::string::String,
2227}
2228#[allow(clippy::derive_partial_eq_without_eq)]
2229#[derive(Clone, PartialEq, ::prost::Message)]
2230pub struct EgressInfo {
2231 #[prost(string, tag="1")]
2232 pub egress_id: ::prost::alloc::string::String,
2233 #[prost(string, tag="2")]
2234 pub room_id: ::prost::alloc::string::String,
2235 #[prost(string, tag="13")]
2236 pub room_name: ::prost::alloc::string::String,
2237 #[prost(enumeration="EgressSourceType", tag="26")]
2238 pub source_type: i32,
2239 #[prost(enumeration="EgressStatus", tag="3")]
2240 pub status: i32,
2241 #[prost(int64, tag="10")]
2242 pub started_at: i64,
2243 #[prost(int64, tag="11")]
2244 pub ended_at: i64,
2245 #[prost(int64, tag="18")]
2246 pub updated_at: i64,
2247 #[prost(string, tag="21")]
2248 pub details: ::prost::alloc::string::String,
2249 #[prost(string, tag="9")]
2250 pub error: ::prost::alloc::string::String,
2251 #[prost(int32, tag="22")]
2252 pub error_code: i32,
2253 #[prost(message, repeated, tag="15")]
2254 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2255 #[prost(message, repeated, tag="16")]
2256 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2257 #[prost(message, repeated, tag="17")]
2258 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2259 #[prost(message, repeated, tag="20")]
2260 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2261 #[prost(string, tag="23")]
2262 pub manifest_location: ::prost::alloc::string::String,
2263 #[prost(bool, tag="25")]
2265 pub backup_storage_used: bool,
2266 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2267 pub request: ::core::option::Option<egress_info::Request>,
2268 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2270 pub result: ::core::option::Option<egress_info::Result>,
2271}
2272pub mod egress_info {
2274 #[allow(clippy::derive_partial_eq_without_eq)]
2275#[derive(Clone, PartialEq, ::prost::Oneof)]
2276 pub enum Request {
2277 #[prost(message, tag="4")]
2278 RoomComposite(super::RoomCompositeEgressRequest),
2279 #[prost(message, tag="14")]
2280 Web(super::WebEgressRequest),
2281 #[prost(message, tag="19")]
2282 Participant(super::ParticipantEgressRequest),
2283 #[prost(message, tag="5")]
2284 TrackComposite(super::TrackCompositeEgressRequest),
2285 #[prost(message, tag="6")]
2286 Track(super::TrackEgressRequest),
2287 }
2288 #[allow(clippy::derive_partial_eq_without_eq)]
2290#[derive(Clone, PartialEq, ::prost::Oneof)]
2291 pub enum Result {
2292 #[prost(message, tag="7")]
2293 Stream(super::StreamInfoList),
2294 #[prost(message, tag="8")]
2295 File(super::FileInfo),
2296 #[prost(message, tag="12")]
2297 Segments(super::SegmentsInfo),
2298 }
2299}
2300#[allow(clippy::derive_partial_eq_without_eq)]
2301#[derive(Clone, PartialEq, ::prost::Message)]
2302pub struct StreamInfoList {
2303 #[prost(message, repeated, tag="1")]
2304 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2305}
2306#[allow(clippy::derive_partial_eq_without_eq)]
2307#[derive(Clone, PartialEq, ::prost::Message)]
2308pub struct StreamInfo {
2309 #[prost(string, tag="1")]
2310 pub url: ::prost::alloc::string::String,
2311 #[prost(int64, tag="2")]
2312 pub started_at: i64,
2313 #[prost(int64, tag="3")]
2314 pub ended_at: i64,
2315 #[prost(int64, tag="4")]
2316 pub duration: i64,
2317 #[prost(enumeration="stream_info::Status", tag="5")]
2318 pub status: i32,
2319 #[prost(string, tag="6")]
2320 pub error: ::prost::alloc::string::String,
2321}
2322pub mod stream_info {
2324 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2325 #[repr(i32)]
2326 pub enum Status {
2327 Active = 0,
2328 Finished = 1,
2329 Failed = 2,
2330 }
2331 impl Status {
2332 pub fn as_str_name(&self) -> &'static str {
2337 match self {
2338 Status::Active => "ACTIVE",
2339 Status::Finished => "FINISHED",
2340 Status::Failed => "FAILED",
2341 }
2342 }
2343 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2345 match value {
2346 "ACTIVE" => Some(Self::Active),
2347 "FINISHED" => Some(Self::Finished),
2348 "FAILED" => Some(Self::Failed),
2349 _ => None,
2350 }
2351 }
2352 }
2353}
2354#[allow(clippy::derive_partial_eq_without_eq)]
2355#[derive(Clone, PartialEq, ::prost::Message)]
2356pub struct FileInfo {
2357 #[prost(string, tag="1")]
2358 pub filename: ::prost::alloc::string::String,
2359 #[prost(int64, tag="2")]
2360 pub started_at: i64,
2361 #[prost(int64, tag="3")]
2362 pub ended_at: i64,
2363 #[prost(int64, tag="6")]
2364 pub duration: i64,
2365 #[prost(int64, tag="4")]
2366 pub size: i64,
2367 #[prost(string, tag="5")]
2368 pub location: ::prost::alloc::string::String,
2369}
2370#[allow(clippy::derive_partial_eq_without_eq)]
2371#[derive(Clone, PartialEq, ::prost::Message)]
2372pub struct SegmentsInfo {
2373 #[prost(string, tag="1")]
2374 pub playlist_name: ::prost::alloc::string::String,
2375 #[prost(string, tag="8")]
2376 pub live_playlist_name: ::prost::alloc::string::String,
2377 #[prost(int64, tag="2")]
2378 pub duration: i64,
2379 #[prost(int64, tag="3")]
2380 pub size: i64,
2381 #[prost(string, tag="4")]
2382 pub playlist_location: ::prost::alloc::string::String,
2383 #[prost(string, tag="9")]
2384 pub live_playlist_location: ::prost::alloc::string::String,
2385 #[prost(int64, tag="5")]
2386 pub segment_count: i64,
2387 #[prost(int64, tag="6")]
2388 pub started_at: i64,
2389 #[prost(int64, tag="7")]
2390 pub ended_at: i64,
2391}
2392#[allow(clippy::derive_partial_eq_without_eq)]
2393#[derive(Clone, PartialEq, ::prost::Message)]
2394pub struct ImagesInfo {
2395 #[prost(string, tag="4")]
2396 pub filename_prefix: ::prost::alloc::string::String,
2397 #[prost(int64, tag="1")]
2398 pub image_count: i64,
2399 #[prost(int64, tag="2")]
2400 pub started_at: i64,
2401 #[prost(int64, tag="3")]
2402 pub ended_at: i64,
2403}
2404#[allow(clippy::derive_partial_eq_without_eq)]
2405#[derive(Clone, PartialEq, ::prost::Message)]
2406pub struct AutoParticipantEgress {
2407 #[prost(message, repeated, tag="3")]
2408 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2409 #[prost(message, repeated, tag="4")]
2410 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2411 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2412 pub options: ::core::option::Option<auto_participant_egress::Options>,
2413}
2414pub mod auto_participant_egress {
2416 #[allow(clippy::derive_partial_eq_without_eq)]
2417#[derive(Clone, PartialEq, ::prost::Oneof)]
2418 pub enum Options {
2419 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2421 Preset(i32),
2422 #[prost(message, tag="2")]
2424 Advanced(super::EncodingOptions),
2425 }
2426}
2427#[allow(clippy::derive_partial_eq_without_eq)]
2428#[derive(Clone, PartialEq, ::prost::Message)]
2429pub struct AutoTrackEgress {
2430 #[prost(string, tag="1")]
2432 pub filepath: ::prost::alloc::string::String,
2433 #[prost(bool, tag="5")]
2435 pub disable_manifest: bool,
2436 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2437 pub output: ::core::option::Option<auto_track_egress::Output>,
2438}
2439pub mod auto_track_egress {
2441 #[allow(clippy::derive_partial_eq_without_eq)]
2442#[derive(Clone, PartialEq, ::prost::Oneof)]
2443 pub enum Output {
2444 #[prost(message, tag="2")]
2445 S3(super::S3Upload),
2446 #[prost(message, tag="3")]
2447 Gcp(super::GcpUpload),
2448 #[prost(message, tag="4")]
2449 Azure(super::AzureBlobUpload),
2450 #[prost(message, tag="6")]
2451 AliOss(super::AliOssUpload),
2452 }
2453}
2454#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2455#[repr(i32)]
2456pub enum EncodedFileType {
2457 DefaultFiletype = 0,
2459 Mp4 = 1,
2460 Ogg = 2,
2461}
2462impl EncodedFileType {
2463 pub fn as_str_name(&self) -> &'static str {
2468 match self {
2469 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2470 EncodedFileType::Mp4 => "MP4",
2471 EncodedFileType::Ogg => "OGG",
2472 }
2473 }
2474 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2476 match value {
2477 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2478 "MP4" => Some(Self::Mp4),
2479 "OGG" => Some(Self::Ogg),
2480 _ => None,
2481 }
2482 }
2483}
2484#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2485#[repr(i32)]
2486pub enum SegmentedFileProtocol {
2487 DefaultSegmentedFileProtocol = 0,
2488 HlsProtocol = 1,
2489}
2490impl SegmentedFileProtocol {
2491 pub fn as_str_name(&self) -> &'static str {
2496 match self {
2497 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2498 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2499 }
2500 }
2501 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2503 match value {
2504 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2505 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2506 _ => None,
2507 }
2508 }
2509}
2510#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2511#[repr(i32)]
2512pub enum SegmentedFileSuffix {
2513 Index = 0,
2514 Timestamp = 1,
2515}
2516impl SegmentedFileSuffix {
2517 pub fn as_str_name(&self) -> &'static str {
2522 match self {
2523 SegmentedFileSuffix::Index => "INDEX",
2524 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2525 }
2526 }
2527 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2529 match value {
2530 "INDEX" => Some(Self::Index),
2531 "TIMESTAMP" => Some(Self::Timestamp),
2532 _ => None,
2533 }
2534 }
2535}
2536#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2537#[repr(i32)]
2538pub enum ImageFileSuffix {
2539 ImageSuffixIndex = 0,
2540 ImageSuffixTimestamp = 1,
2541}
2542impl ImageFileSuffix {
2543 pub fn as_str_name(&self) -> &'static str {
2548 match self {
2549 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2550 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2551 }
2552 }
2553 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2555 match value {
2556 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2557 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2558 _ => None,
2559 }
2560 }
2561}
2562#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2563#[repr(i32)]
2564pub enum StreamProtocol {
2565 DefaultProtocol = 0,
2567 Rtmp = 1,
2568 Srt = 2,
2569}
2570impl StreamProtocol {
2571 pub fn as_str_name(&self) -> &'static str {
2576 match self {
2577 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2578 StreamProtocol::Rtmp => "RTMP",
2579 StreamProtocol::Srt => "SRT",
2580 }
2581 }
2582 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2584 match value {
2585 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
2586 "RTMP" => Some(Self::Rtmp),
2587 "SRT" => Some(Self::Srt),
2588 _ => None,
2589 }
2590 }
2591}
2592#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2593#[repr(i32)]
2594pub enum EncodingOptionsPreset {
2595 H264720p30 = 0,
2597 H264720p60 = 1,
2599 H2641080p30 = 2,
2601 H2641080p60 = 3,
2603 PortraitH264720p30 = 4,
2605 PortraitH264720p60 = 5,
2607 PortraitH2641080p30 = 6,
2609 PortraitH2641080p60 = 7,
2611}
2612impl EncodingOptionsPreset {
2613 pub fn as_str_name(&self) -> &'static str {
2618 match self {
2619 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
2620 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
2621 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
2622 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
2623 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
2624 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
2625 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
2626 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
2627 }
2628 }
2629 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2631 match value {
2632 "H264_720P_30" => Some(Self::H264720p30),
2633 "H264_720P_60" => Some(Self::H264720p60),
2634 "H264_1080P_30" => Some(Self::H2641080p30),
2635 "H264_1080P_60" => Some(Self::H2641080p60),
2636 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
2637 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
2638 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
2639 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
2640 _ => None,
2641 }
2642 }
2643}
2644#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2645#[repr(i32)]
2646pub enum EgressStatus {
2647 EgressStarting = 0,
2648 EgressActive = 1,
2649 EgressEnding = 2,
2650 EgressComplete = 3,
2651 EgressFailed = 4,
2652 EgressAborted = 5,
2653 EgressLimitReached = 6,
2654}
2655impl EgressStatus {
2656 pub fn as_str_name(&self) -> &'static str {
2661 match self {
2662 EgressStatus::EgressStarting => "EGRESS_STARTING",
2663 EgressStatus::EgressActive => "EGRESS_ACTIVE",
2664 EgressStatus::EgressEnding => "EGRESS_ENDING",
2665 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
2666 EgressStatus::EgressFailed => "EGRESS_FAILED",
2667 EgressStatus::EgressAborted => "EGRESS_ABORTED",
2668 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
2669 }
2670 }
2671 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2673 match value {
2674 "EGRESS_STARTING" => Some(Self::EgressStarting),
2675 "EGRESS_ACTIVE" => Some(Self::EgressActive),
2676 "EGRESS_ENDING" => Some(Self::EgressEnding),
2677 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
2678 "EGRESS_FAILED" => Some(Self::EgressFailed),
2679 "EGRESS_ABORTED" => Some(Self::EgressAborted),
2680 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
2681 _ => None,
2682 }
2683 }
2684}
2685#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2686#[repr(i32)]
2687pub enum EgressSourceType {
2688 Web = 0,
2689 Sdk = 1,
2690}
2691impl EgressSourceType {
2692 pub fn as_str_name(&self) -> &'static str {
2697 match self {
2698 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
2699 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
2700 }
2701 }
2702 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2704 match value {
2705 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
2706 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
2707 _ => None,
2708 }
2709 }
2710}
2711#[allow(clippy::derive_partial_eq_without_eq)]
2712#[derive(Clone, PartialEq, ::prost::Message)]
2713pub struct SignalRequest {
2714 #[prost(oneof="signal_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18")]
2715 pub message: ::core::option::Option<signal_request::Message>,
2716}
2717pub mod signal_request {
2719 #[allow(clippy::derive_partial_eq_without_eq)]
2720#[derive(Clone, PartialEq, ::prost::Oneof)]
2721 pub enum Message {
2722 #[prost(message, tag="1")]
2724 Offer(super::SessionDescription),
2725 #[prost(message, tag="2")]
2727 Answer(super::SessionDescription),
2728 #[prost(message, tag="3")]
2729 Trickle(super::TrickleRequest),
2730 #[prost(message, tag="4")]
2731 AddTrack(super::AddTrackRequest),
2732 #[prost(message, tag="5")]
2734 Mute(super::MuteTrackRequest),
2735 #[prost(message, tag="6")]
2737 Subscription(super::UpdateSubscription),
2738 #[prost(message, tag="7")]
2740 TrackSetting(super::UpdateTrackSettings),
2741 #[prost(message, tag="8")]
2743 Leave(super::LeaveRequest),
2744 #[prost(message, tag="10")]
2746 UpdateLayers(super::UpdateVideoLayers),
2747 #[prost(message, tag="11")]
2749 SubscriptionPermission(super::SubscriptionPermission),
2750 #[prost(message, tag="12")]
2752 SyncState(super::SyncState),
2753 #[prost(message, tag="13")]
2755 Simulate(super::SimulateScenario),
2756 #[prost(int64, tag="14")]
2760 Ping(i64),
2761 #[prost(message, tag="15")]
2764 UpdateMetadata(super::UpdateParticipantMetadata),
2765 #[prost(message, tag="16")]
2766 PingReq(super::Ping),
2767 #[prost(message, tag="17")]
2769 UpdateAudioTrack(super::UpdateLocalAudioTrack),
2770 #[prost(message, tag="18")]
2772 UpdateVideoTrack(super::UpdateLocalVideoTrack),
2773 }
2774}
2775#[allow(clippy::derive_partial_eq_without_eq)]
2776#[derive(Clone, PartialEq, ::prost::Message)]
2777pub struct SignalResponse {
2778 #[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")]
2779 pub message: ::core::option::Option<signal_response::Message>,
2780}
2781pub mod signal_response {
2783 #[allow(clippy::derive_partial_eq_without_eq)]
2784#[derive(Clone, PartialEq, ::prost::Oneof)]
2785 pub enum Message {
2786 #[prost(message, tag="1")]
2788 Join(super::JoinResponse),
2789 #[prost(message, tag="2")]
2791 Answer(super::SessionDescription),
2792 #[prost(message, tag="3")]
2794 Offer(super::SessionDescription),
2795 #[prost(message, tag="4")]
2797 Trickle(super::TrickleRequest),
2798 #[prost(message, tag="5")]
2800 Update(super::ParticipantUpdate),
2801 #[prost(message, tag="6")]
2803 TrackPublished(super::TrackPublishedResponse),
2804 #[prost(message, tag="8")]
2806 Leave(super::LeaveRequest),
2807 #[prost(message, tag="9")]
2809 Mute(super::MuteTrackRequest),
2810 #[prost(message, tag="10")]
2812 SpeakersChanged(super::SpeakersChanged),
2813 #[prost(message, tag="11")]
2815 RoomUpdate(super::RoomUpdate),
2816 #[prost(message, tag="12")]
2818 ConnectionQuality(super::ConnectionQualityUpdate),
2819 #[prost(message, tag="13")]
2822 StreamStateUpdate(super::StreamStateUpdate),
2823 #[prost(message, tag="14")]
2825 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
2826 #[prost(message, tag="15")]
2828 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
2829 #[prost(string, tag="16")]
2831 RefreshToken(::prost::alloc::string::String),
2832 #[prost(message, tag="17")]
2834 TrackUnpublished(super::TrackUnpublishedResponse),
2835 #[prost(int64, tag="18")]
2839 Pong(i64),
2840 #[prost(message, tag="19")]
2842 Reconnect(super::ReconnectResponse),
2843 #[prost(message, tag="20")]
2845 PongResp(super::Pong),
2846 #[prost(message, tag="21")]
2848 SubscriptionResponse(super::SubscriptionResponse),
2849 #[prost(message, tag="22")]
2851 RequestResponse(super::RequestResponse),
2852 #[prost(message, tag="23")]
2854 TrackSubscribed(super::TrackSubscribed),
2855 }
2856}
2857#[allow(clippy::derive_partial_eq_without_eq)]
2858#[derive(Clone, PartialEq, ::prost::Message)]
2859pub struct SimulcastCodec {
2860 #[prost(string, tag="1")]
2861 pub codec: ::prost::alloc::string::String,
2862 #[prost(string, tag="2")]
2863 pub cid: ::prost::alloc::string::String,
2864}
2865#[allow(clippy::derive_partial_eq_without_eq)]
2866#[derive(Clone, PartialEq, ::prost::Message)]
2867pub struct AddTrackRequest {
2868 #[prost(string, tag="1")]
2870 pub cid: ::prost::alloc::string::String,
2871 #[prost(string, tag="2")]
2872 pub name: ::prost::alloc::string::String,
2873 #[prost(enumeration="TrackType", tag="3")]
2874 pub r#type: i32,
2875 #[prost(uint32, tag="4")]
2877 pub width: u32,
2878 #[prost(uint32, tag="5")]
2879 pub height: u32,
2880 #[prost(bool, tag="6")]
2882 pub muted: bool,
2883 #[prost(bool, tag="7")]
2885 pub disable_dtx: bool,
2886 #[prost(enumeration="TrackSource", tag="8")]
2887 pub source: i32,
2888 #[prost(message, repeated, tag="9")]
2889 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
2890 #[prost(message, repeated, tag="10")]
2891 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
2892 #[prost(string, tag="11")]
2894 pub sid: ::prost::alloc::string::String,
2895 #[prost(bool, tag="12")]
2896 pub stereo: bool,
2897 #[prost(bool, tag="13")]
2899 pub disable_red: bool,
2900 #[prost(enumeration="encryption::Type", tag="14")]
2901 pub encryption: i32,
2902 #[prost(string, tag="15")]
2905 pub stream: ::prost::alloc::string::String,
2906}
2907#[allow(clippy::derive_partial_eq_without_eq)]
2908#[derive(Clone, PartialEq, ::prost::Message)]
2909pub struct TrickleRequest {
2910 #[prost(string, tag="1")]
2911 pub candidate_init: ::prost::alloc::string::String,
2912 #[prost(enumeration="SignalTarget", tag="2")]
2913 pub target: i32,
2914 #[prost(bool, tag="3")]
2915 pub r#final: bool,
2916}
2917#[allow(clippy::derive_partial_eq_without_eq)]
2918#[derive(Clone, PartialEq, ::prost::Message)]
2919pub struct MuteTrackRequest {
2920 #[prost(string, tag="1")]
2921 pub sid: ::prost::alloc::string::String,
2922 #[prost(bool, tag="2")]
2923 pub muted: bool,
2924}
2925#[allow(clippy::derive_partial_eq_without_eq)]
2926#[derive(Clone, PartialEq, ::prost::Message)]
2927pub struct JoinResponse {
2928 #[prost(message, optional, tag="1")]
2929 pub room: ::core::option::Option<Room>,
2930 #[prost(message, optional, tag="2")]
2931 pub participant: ::core::option::Option<ParticipantInfo>,
2932 #[prost(message, repeated, tag="3")]
2933 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
2934 #[prost(string, tag="4")]
2936 pub server_version: ::prost::alloc::string::String,
2937 #[prost(message, repeated, tag="5")]
2938 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
2939 #[prost(bool, tag="6")]
2941 pub subscriber_primary: bool,
2942 #[prost(string, tag="7")]
2945 pub alternative_url: ::prost::alloc::string::String,
2946 #[prost(message, optional, tag="8")]
2947 pub client_configuration: ::core::option::Option<ClientConfiguration>,
2948 #[prost(string, tag="9")]
2950 pub server_region: ::prost::alloc::string::String,
2951 #[prost(int32, tag="10")]
2952 pub ping_timeout: i32,
2953 #[prost(int32, tag="11")]
2954 pub ping_interval: i32,
2955 #[prost(message, optional, tag="12")]
2956 pub server_info: ::core::option::Option<ServerInfo>,
2957 #[prost(bytes="vec", tag="13")]
2959 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
2960 #[prost(message, repeated, tag="14")]
2961 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
2962 #[prost(bool, tag="15")]
2964 pub fast_publish: bool,
2965}
2966#[allow(clippy::derive_partial_eq_without_eq)]
2967#[derive(Clone, PartialEq, ::prost::Message)]
2968pub struct ReconnectResponse {
2969 #[prost(message, repeated, tag="1")]
2970 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
2971 #[prost(message, optional, tag="2")]
2972 pub client_configuration: ::core::option::Option<ClientConfiguration>,
2973}
2974#[allow(clippy::derive_partial_eq_without_eq)]
2975#[derive(Clone, PartialEq, ::prost::Message)]
2976pub struct TrackPublishedResponse {
2977 #[prost(string, tag="1")]
2978 pub cid: ::prost::alloc::string::String,
2979 #[prost(message, optional, tag="2")]
2980 pub track: ::core::option::Option<TrackInfo>,
2981}
2982#[allow(clippy::derive_partial_eq_without_eq)]
2983#[derive(Clone, PartialEq, ::prost::Message)]
2984pub struct TrackUnpublishedResponse {
2985 #[prost(string, tag="1")]
2986 pub track_sid: ::prost::alloc::string::String,
2987}
2988#[allow(clippy::derive_partial_eq_without_eq)]
2989#[derive(Clone, PartialEq, ::prost::Message)]
2990pub struct SessionDescription {
2991 #[prost(string, tag="1")]
2993 pub r#type: ::prost::alloc::string::String,
2994 #[prost(string, tag="2")]
2995 pub sdp: ::prost::alloc::string::String,
2996}
2997#[allow(clippy::derive_partial_eq_without_eq)]
2998#[derive(Clone, PartialEq, ::prost::Message)]
2999pub struct ParticipantUpdate {
3000 #[prost(message, repeated, tag="1")]
3001 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3002}
3003#[allow(clippy::derive_partial_eq_without_eq)]
3004#[derive(Clone, PartialEq, ::prost::Message)]
3005pub struct UpdateSubscription {
3006 #[prost(string, repeated, tag="1")]
3007 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3008 #[prost(bool, tag="2")]
3009 pub subscribe: bool,
3010 #[prost(message, repeated, tag="3")]
3011 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3012}
3013#[allow(clippy::derive_partial_eq_without_eq)]
3014#[derive(Clone, PartialEq, ::prost::Message)]
3015pub struct UpdateTrackSettings {
3016 #[prost(string, repeated, tag="1")]
3017 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3018 #[prost(bool, tag="3")]
3020 pub disabled: bool,
3021 #[prost(enumeration="VideoQuality", tag="4")]
3023 pub quality: i32,
3024 #[prost(uint32, tag="5")]
3026 pub width: u32,
3027 #[prost(uint32, tag="6")]
3029 pub height: u32,
3030 #[prost(uint32, tag="7")]
3031 pub fps: u32,
3032 #[prost(uint32, tag="8")]
3040 pub priority: u32,
3041}
3042#[allow(clippy::derive_partial_eq_without_eq)]
3043#[derive(Clone, PartialEq, ::prost::Message)]
3044pub struct UpdateLocalAudioTrack {
3045 #[prost(string, tag="1")]
3046 pub track_sid: ::prost::alloc::string::String,
3047 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3048 pub features: ::prost::alloc::vec::Vec<i32>,
3049}
3050#[allow(clippy::derive_partial_eq_without_eq)]
3051#[derive(Clone, PartialEq, ::prost::Message)]
3052pub struct UpdateLocalVideoTrack {
3053 #[prost(string, tag="1")]
3054 pub track_sid: ::prost::alloc::string::String,
3055 #[prost(uint32, tag="2")]
3056 pub width: u32,
3057 #[prost(uint32, tag="3")]
3058 pub height: u32,
3059}
3060#[allow(clippy::derive_partial_eq_without_eq)]
3061#[derive(Clone, PartialEq, ::prost::Message)]
3062pub struct LeaveRequest {
3063 #[prost(bool, tag="1")]
3067 pub can_reconnect: bool,
3068 #[prost(enumeration="DisconnectReason", tag="2")]
3069 pub reason: i32,
3070 #[prost(enumeration="leave_request::Action", tag="3")]
3071 pub action: i32,
3072 #[prost(message, optional, tag="4")]
3073 pub regions: ::core::option::Option<RegionSettings>,
3074}
3075pub mod leave_request {
3077 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3079 #[repr(i32)]
3080 pub enum Action {
3081 Disconnect = 0,
3083 Resume = 1,
3085 Reconnect = 2,
3087 }
3088 impl Action {
3089 pub fn as_str_name(&self) -> &'static str {
3094 match self {
3095 Action::Disconnect => "DISCONNECT",
3096 Action::Resume => "RESUME",
3097 Action::Reconnect => "RECONNECT",
3098 }
3099 }
3100 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3102 match value {
3103 "DISCONNECT" => Some(Self::Disconnect),
3104 "RESUME" => Some(Self::Resume),
3105 "RECONNECT" => Some(Self::Reconnect),
3106 _ => None,
3107 }
3108 }
3109 }
3110}
3111#[allow(clippy::derive_partial_eq_without_eq)]
3113#[derive(Clone, PartialEq, ::prost::Message)]
3114pub struct UpdateVideoLayers {
3115 #[prost(string, tag="1")]
3116 pub track_sid: ::prost::alloc::string::String,
3117 #[prost(message, repeated, tag="2")]
3118 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3119}
3120#[allow(clippy::derive_partial_eq_without_eq)]
3121#[derive(Clone, PartialEq, ::prost::Message)]
3122pub struct UpdateParticipantMetadata {
3123 #[prost(string, tag="1")]
3124 pub metadata: ::prost::alloc::string::String,
3125 #[prost(string, tag="2")]
3126 pub name: ::prost::alloc::string::String,
3127 #[prost(map="string, string", tag="3")]
3130 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3131 #[prost(uint32, tag="4")]
3132 pub request_id: u32,
3133}
3134#[allow(clippy::derive_partial_eq_without_eq)]
3135#[derive(Clone, PartialEq, ::prost::Message)]
3136pub struct IceServer {
3137 #[prost(string, repeated, tag="1")]
3138 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3139 #[prost(string, tag="2")]
3140 pub username: ::prost::alloc::string::String,
3141 #[prost(string, tag="3")]
3142 pub credential: ::prost::alloc::string::String,
3143}
3144#[allow(clippy::derive_partial_eq_without_eq)]
3145#[derive(Clone, PartialEq, ::prost::Message)]
3146pub struct SpeakersChanged {
3147 #[prost(message, repeated, tag="1")]
3148 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3149}
3150#[allow(clippy::derive_partial_eq_without_eq)]
3151#[derive(Clone, PartialEq, ::prost::Message)]
3152pub struct RoomUpdate {
3153 #[prost(message, optional, tag="1")]
3154 pub room: ::core::option::Option<Room>,
3155}
3156#[allow(clippy::derive_partial_eq_without_eq)]
3157#[derive(Clone, PartialEq, ::prost::Message)]
3158pub struct ConnectionQualityInfo {
3159 #[prost(string, tag="1")]
3160 pub participant_sid: ::prost::alloc::string::String,
3161 #[prost(enumeration="ConnectionQuality", tag="2")]
3162 pub quality: i32,
3163 #[prost(float, tag="3")]
3164 pub score: f32,
3165}
3166#[allow(clippy::derive_partial_eq_without_eq)]
3167#[derive(Clone, PartialEq, ::prost::Message)]
3168pub struct ConnectionQualityUpdate {
3169 #[prost(message, repeated, tag="1")]
3170 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3171}
3172#[allow(clippy::derive_partial_eq_without_eq)]
3173#[derive(Clone, PartialEq, ::prost::Message)]
3174pub struct StreamStateInfo {
3175 #[prost(string, tag="1")]
3176 pub participant_sid: ::prost::alloc::string::String,
3177 #[prost(string, tag="2")]
3178 pub track_sid: ::prost::alloc::string::String,
3179 #[prost(enumeration="StreamState", tag="3")]
3180 pub state: i32,
3181}
3182#[allow(clippy::derive_partial_eq_without_eq)]
3183#[derive(Clone, PartialEq, ::prost::Message)]
3184pub struct StreamStateUpdate {
3185 #[prost(message, repeated, tag="1")]
3186 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3187}
3188#[allow(clippy::derive_partial_eq_without_eq)]
3189#[derive(Clone, PartialEq, ::prost::Message)]
3190pub struct SubscribedQuality {
3191 #[prost(enumeration="VideoQuality", tag="1")]
3192 pub quality: i32,
3193 #[prost(bool, tag="2")]
3194 pub enabled: bool,
3195}
3196#[allow(clippy::derive_partial_eq_without_eq)]
3197#[derive(Clone, PartialEq, ::prost::Message)]
3198pub struct SubscribedCodec {
3199 #[prost(string, tag="1")]
3200 pub codec: ::prost::alloc::string::String,
3201 #[prost(message, repeated, tag="2")]
3202 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3203}
3204#[allow(clippy::derive_partial_eq_without_eq)]
3205#[derive(Clone, PartialEq, ::prost::Message)]
3206pub struct SubscribedQualityUpdate {
3207 #[prost(string, tag="1")]
3208 pub track_sid: ::prost::alloc::string::String,
3209 #[prost(message, repeated, tag="2")]
3210 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3211 #[prost(message, repeated, tag="3")]
3212 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3213}
3214#[allow(clippy::derive_partial_eq_without_eq)]
3215#[derive(Clone, PartialEq, ::prost::Message)]
3216pub struct TrackPermission {
3217 #[prost(string, tag="1")]
3219 pub participant_sid: ::prost::alloc::string::String,
3220 #[prost(bool, tag="2")]
3221 pub all_tracks: bool,
3222 #[prost(string, repeated, tag="3")]
3223 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3224 #[prost(string, tag="4")]
3225 pub participant_identity: ::prost::alloc::string::String,
3226}
3227#[allow(clippy::derive_partial_eq_without_eq)]
3228#[derive(Clone, PartialEq, ::prost::Message)]
3229pub struct SubscriptionPermission {
3230 #[prost(bool, tag="1")]
3231 pub all_participants: bool,
3232 #[prost(message, repeated, tag="2")]
3233 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3234}
3235#[allow(clippy::derive_partial_eq_without_eq)]
3236#[derive(Clone, PartialEq, ::prost::Message)]
3237pub struct SubscriptionPermissionUpdate {
3238 #[prost(string, tag="1")]
3239 pub participant_sid: ::prost::alloc::string::String,
3240 #[prost(string, tag="2")]
3241 pub track_sid: ::prost::alloc::string::String,
3242 #[prost(bool, tag="3")]
3243 pub allowed: bool,
3244}
3245#[allow(clippy::derive_partial_eq_without_eq)]
3246#[derive(Clone, PartialEq, ::prost::Message)]
3247pub struct SyncState {
3248 #[prost(message, optional, tag="1")]
3250 pub answer: ::core::option::Option<SessionDescription>,
3251 #[prost(message, optional, tag="2")]
3252 pub subscription: ::core::option::Option<UpdateSubscription>,
3253 #[prost(message, repeated, tag="3")]
3254 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3255 #[prost(message, repeated, tag="4")]
3256 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3257 #[prost(message, optional, tag="5")]
3259 pub offer: ::core::option::Option<SessionDescription>,
3260 #[prost(string, repeated, tag="6")]
3261 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3262}
3263#[allow(clippy::derive_partial_eq_without_eq)]
3264#[derive(Clone, PartialEq, ::prost::Message)]
3265pub struct DataChannelInfo {
3266 #[prost(string, tag="1")]
3267 pub label: ::prost::alloc::string::String,
3268 #[prost(uint32, tag="2")]
3269 pub id: u32,
3270 #[prost(enumeration="SignalTarget", tag="3")]
3271 pub target: i32,
3272}
3273#[allow(clippy::derive_partial_eq_without_eq)]
3274#[derive(Clone, PartialEq, ::prost::Message)]
3275pub struct SimulateScenario {
3276 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3277 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3278}
3279pub mod simulate_scenario {
3281 #[allow(clippy::derive_partial_eq_without_eq)]
3282#[derive(Clone, PartialEq, ::prost::Oneof)]
3283 pub enum Scenario {
3284 #[prost(int32, tag="1")]
3286 SpeakerUpdate(i32),
3287 #[prost(bool, tag="2")]
3289 NodeFailure(bool),
3290 #[prost(bool, tag="3")]
3292 Migration(bool),
3293 #[prost(bool, tag="4")]
3295 ServerLeave(bool),
3296 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3298 SwitchCandidateProtocol(i32),
3299 #[prost(int64, tag="6")]
3302 SubscriberBandwidth(i64),
3303 #[prost(bool, tag="7")]
3305 DisconnectSignalOnResume(bool),
3306 #[prost(bool, tag="8")]
3308 DisconnectSignalOnResumeNoMessages(bool),
3309 #[prost(bool, tag="9")]
3311 LeaveRequestFullReconnect(bool),
3312 }
3313}
3314#[allow(clippy::derive_partial_eq_without_eq)]
3315#[derive(Clone, PartialEq, ::prost::Message)]
3316pub struct Ping {
3317 #[prost(int64, tag="1")]
3318 pub timestamp: i64,
3319 #[prost(int64, tag="2")]
3321 pub rtt: i64,
3322}
3323#[allow(clippy::derive_partial_eq_without_eq)]
3324#[derive(Clone, PartialEq, ::prost::Message)]
3325pub struct Pong {
3326 #[prost(int64, tag="1")]
3328 pub last_ping_timestamp: i64,
3329 #[prost(int64, tag="2")]
3330 pub timestamp: i64,
3331}
3332#[allow(clippy::derive_partial_eq_without_eq)]
3333#[derive(Clone, PartialEq, ::prost::Message)]
3334pub struct RegionSettings {
3335 #[prost(message, repeated, tag="1")]
3336 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3337}
3338#[allow(clippy::derive_partial_eq_without_eq)]
3339#[derive(Clone, PartialEq, ::prost::Message)]
3340pub struct RegionInfo {
3341 #[prost(string, tag="1")]
3342 pub region: ::prost::alloc::string::String,
3343 #[prost(string, tag="2")]
3344 pub url: ::prost::alloc::string::String,
3345 #[prost(int64, tag="3")]
3346 pub distance: i64,
3347}
3348#[allow(clippy::derive_partial_eq_without_eq)]
3349#[derive(Clone, PartialEq, ::prost::Message)]
3350pub struct SubscriptionResponse {
3351 #[prost(string, tag="1")]
3352 pub track_sid: ::prost::alloc::string::String,
3353 #[prost(enumeration="SubscriptionError", tag="2")]
3354 pub err: i32,
3355}
3356#[allow(clippy::derive_partial_eq_without_eq)]
3357#[derive(Clone, PartialEq, ::prost::Message)]
3358pub struct RequestResponse {
3359 #[prost(uint32, tag="1")]
3360 pub request_id: u32,
3361 #[prost(enumeration="request_response::Reason", tag="2")]
3362 pub reason: i32,
3363 #[prost(string, tag="3")]
3364 pub message: ::prost::alloc::string::String,
3365}
3366pub mod request_response {
3368 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3369 #[repr(i32)]
3370 pub enum Reason {
3371 Ok = 0,
3372 NotFound = 1,
3373 NotAllowed = 2,
3374 LimitExceeded = 3,
3375 }
3376 impl Reason {
3377 pub fn as_str_name(&self) -> &'static str {
3382 match self {
3383 Reason::Ok => "OK",
3384 Reason::NotFound => "NOT_FOUND",
3385 Reason::NotAllowed => "NOT_ALLOWED",
3386 Reason::LimitExceeded => "LIMIT_EXCEEDED",
3387 }
3388 }
3389 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3391 match value {
3392 "OK" => Some(Self::Ok),
3393 "NOT_FOUND" => Some(Self::NotFound),
3394 "NOT_ALLOWED" => Some(Self::NotAllowed),
3395 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
3396 _ => None,
3397 }
3398 }
3399 }
3400}
3401#[allow(clippy::derive_partial_eq_without_eq)]
3402#[derive(Clone, PartialEq, ::prost::Message)]
3403pub struct TrackSubscribed {
3404 #[prost(string, tag="1")]
3405 pub track_sid: ::prost::alloc::string::String,
3406}
3407#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3408#[repr(i32)]
3409pub enum SignalTarget {
3410 Publisher = 0,
3411 Subscriber = 1,
3412}
3413impl SignalTarget {
3414 pub fn as_str_name(&self) -> &'static str {
3419 match self {
3420 SignalTarget::Publisher => "PUBLISHER",
3421 SignalTarget::Subscriber => "SUBSCRIBER",
3422 }
3423 }
3424 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3426 match value {
3427 "PUBLISHER" => Some(Self::Publisher),
3428 "SUBSCRIBER" => Some(Self::Subscriber),
3429 _ => None,
3430 }
3431 }
3432}
3433#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3434#[repr(i32)]
3435pub enum StreamState {
3436 Active = 0,
3437 Paused = 1,
3438}
3439impl StreamState {
3440 pub fn as_str_name(&self) -> &'static str {
3445 match self {
3446 StreamState::Active => "ACTIVE",
3447 StreamState::Paused => "PAUSED",
3448 }
3449 }
3450 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3452 match value {
3453 "ACTIVE" => Some(Self::Active),
3454 "PAUSED" => Some(Self::Paused),
3455 _ => None,
3456 }
3457 }
3458}
3459#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3460#[repr(i32)]
3461pub enum CandidateProtocol {
3462 Udp = 0,
3463 Tcp = 1,
3464 Tls = 2,
3465}
3466impl CandidateProtocol {
3467 pub fn as_str_name(&self) -> &'static str {
3472 match self {
3473 CandidateProtocol::Udp => "UDP",
3474 CandidateProtocol::Tcp => "TCP",
3475 CandidateProtocol::Tls => "TLS",
3476 }
3477 }
3478 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3480 match value {
3481 "UDP" => Some(Self::Udp),
3482 "TCP" => Some(Self::Tcp),
3483 "TLS" => Some(Self::Tls),
3484 _ => None,
3485 }
3486 }
3487}
3488#[allow(clippy::derive_partial_eq_without_eq)]
3489#[derive(Clone, PartialEq, ::prost::Message)]
3490pub struct Job {
3491 #[prost(string, tag="1")]
3492 pub id: ::prost::alloc::string::String,
3493 #[prost(string, tag="9")]
3494 pub dispatch_id: ::prost::alloc::string::String,
3495 #[prost(enumeration="JobType", tag="2")]
3496 pub r#type: i32,
3497 #[prost(message, optional, tag="3")]
3498 pub room: ::core::option::Option<Room>,
3499 #[prost(message, optional, tag="4")]
3500 pub participant: ::core::option::Option<ParticipantInfo>,
3501 #[deprecated]
3502 #[prost(string, tag="5")]
3503 pub namespace: ::prost::alloc::string::String,
3504 #[prost(string, tag="6")]
3505 pub metadata: ::prost::alloc::string::String,
3506 #[prost(string, tag="7")]
3507 pub agent_name: ::prost::alloc::string::String,
3508 #[prost(message, optional, tag="8")]
3509 pub state: ::core::option::Option<JobState>,
3510}
3511#[allow(clippy::derive_partial_eq_without_eq)]
3512#[derive(Clone, PartialEq, ::prost::Message)]
3513pub struct JobState {
3514 #[prost(enumeration="JobStatus", tag="1")]
3515 pub status: i32,
3516 #[prost(string, tag="2")]
3517 pub error: ::prost::alloc::string::String,
3518 #[prost(int64, tag="3")]
3519 pub started_at: i64,
3520 #[prost(int64, tag="4")]
3521 pub ended_at: i64,
3522 #[prost(int64, tag="5")]
3523 pub updated_at: i64,
3524 #[prost(string, tag="6")]
3525 pub participant_identity: ::prost::alloc::string::String,
3526}
3527#[allow(clippy::derive_partial_eq_without_eq)]
3529#[derive(Clone, PartialEq, ::prost::Message)]
3530pub struct WorkerMessage {
3531 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
3532 pub message: ::core::option::Option<worker_message::Message>,
3533}
3534pub mod worker_message {
3536 #[allow(clippy::derive_partial_eq_without_eq)]
3537#[derive(Clone, PartialEq, ::prost::Oneof)]
3538 pub enum Message {
3539 #[prost(message, tag="1")]
3541 Register(super::RegisterWorkerRequest),
3542 #[prost(message, tag="2")]
3544 Availability(super::AvailabilityResponse),
3545 #[prost(message, tag="3")]
3547 UpdateWorker(super::UpdateWorkerStatus),
3548 #[prost(message, tag="4")]
3550 UpdateJob(super::UpdateJobStatus),
3551 #[prost(message, tag="5")]
3552 Ping(super::WorkerPing),
3553 #[prost(message, tag="6")]
3554 SimulateJob(super::SimulateJobRequest),
3555 #[prost(message, tag="7")]
3556 MigrateJob(super::MigrateJobRequest),
3557 }
3558}
3559#[allow(clippy::derive_partial_eq_without_eq)]
3561#[derive(Clone, PartialEq, ::prost::Message)]
3562pub struct ServerMessage {
3563 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
3564 pub message: ::core::option::Option<server_message::Message>,
3565}
3566pub mod server_message {
3568 #[allow(clippy::derive_partial_eq_without_eq)]
3569#[derive(Clone, PartialEq, ::prost::Oneof)]
3570 pub enum Message {
3571 #[prost(message, tag="1")]
3573 Register(super::RegisterWorkerResponse),
3574 #[prost(message, tag="2")]
3576 Availability(super::AvailabilityRequest),
3577 #[prost(message, tag="3")]
3578 Assignment(super::JobAssignment),
3579 #[prost(message, tag="5")]
3580 Termination(super::JobTermination),
3581 #[prost(message, tag="4")]
3582 Pong(super::WorkerPong),
3583 }
3584}
3585#[allow(clippy::derive_partial_eq_without_eq)]
3586#[derive(Clone, PartialEq, ::prost::Message)]
3587pub struct SimulateJobRequest {
3588 #[prost(enumeration="JobType", tag="1")]
3589 pub r#type: i32,
3590 #[prost(message, optional, tag="2")]
3591 pub room: ::core::option::Option<Room>,
3592 #[prost(message, optional, tag="3")]
3593 pub participant: ::core::option::Option<ParticipantInfo>,
3594}
3595#[allow(clippy::derive_partial_eq_without_eq)]
3596#[derive(Clone, PartialEq, ::prost::Message)]
3597pub struct WorkerPing {
3598 #[prost(int64, tag="1")]
3599 pub timestamp: i64,
3600}
3601#[allow(clippy::derive_partial_eq_without_eq)]
3602#[derive(Clone, PartialEq, ::prost::Message)]
3603pub struct WorkerPong {
3604 #[prost(int64, tag="1")]
3605 pub last_timestamp: i64,
3606 #[prost(int64, tag="2")]
3607 pub timestamp: i64,
3608}
3609#[allow(clippy::derive_partial_eq_without_eq)]
3610#[derive(Clone, PartialEq, ::prost::Message)]
3611pub struct RegisterWorkerRequest {
3612 #[prost(enumeration="JobType", tag="1")]
3613 pub r#type: i32,
3614 #[prost(string, tag="8")]
3615 pub agent_name: ::prost::alloc::string::String,
3616 #[prost(string, tag="3")]
3618 pub version: ::prost::alloc::string::String,
3619 #[prost(uint32, tag="5")]
3621 pub ping_interval: u32,
3622 #[prost(string, optional, tag="6")]
3623 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
3624 #[prost(message, optional, tag="7")]
3625 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
3626}
3627#[allow(clippy::derive_partial_eq_without_eq)]
3628#[derive(Clone, PartialEq, ::prost::Message)]
3629pub struct RegisterWorkerResponse {
3630 #[prost(string, tag="1")]
3631 pub worker_id: ::prost::alloc::string::String,
3632 #[prost(message, optional, tag="3")]
3633 pub server_info: ::core::option::Option<ServerInfo>,
3634}
3635#[allow(clippy::derive_partial_eq_without_eq)]
3636#[derive(Clone, PartialEq, ::prost::Message)]
3637pub struct MigrateJobRequest {
3638 #[prost(string, repeated, tag="2")]
3640 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3641}
3642#[allow(clippy::derive_partial_eq_without_eq)]
3643#[derive(Clone, PartialEq, ::prost::Message)]
3644pub struct AvailabilityRequest {
3645 #[prost(message, optional, tag="1")]
3646 pub job: ::core::option::Option<Job>,
3647 #[prost(bool, tag="2")]
3650 pub resuming: bool,
3651}
3652#[allow(clippy::derive_partial_eq_without_eq)]
3653#[derive(Clone, PartialEq, ::prost::Message)]
3654pub struct AvailabilityResponse {
3655 #[prost(string, tag="1")]
3656 pub job_id: ::prost::alloc::string::String,
3657 #[prost(bool, tag="2")]
3658 pub available: bool,
3659 #[prost(bool, tag="3")]
3660 pub supports_resume: bool,
3661 #[prost(string, tag="4")]
3662 pub participant_name: ::prost::alloc::string::String,
3663 #[prost(string, tag="5")]
3664 pub participant_identity: ::prost::alloc::string::String,
3665 #[prost(string, tag="6")]
3666 pub participant_metadata: ::prost::alloc::string::String,
3667 #[prost(map="string, string", tag="7")]
3668 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3669}
3670#[allow(clippy::derive_partial_eq_without_eq)]
3671#[derive(Clone, PartialEq, ::prost::Message)]
3672pub struct UpdateJobStatus {
3673 #[prost(string, tag="1")]
3674 pub job_id: ::prost::alloc::string::String,
3675 #[prost(enumeration="JobStatus", tag="2")]
3677 pub status: i32,
3678 #[prost(string, tag="3")]
3680 pub error: ::prost::alloc::string::String,
3681}
3682#[allow(clippy::derive_partial_eq_without_eq)]
3683#[derive(Clone, PartialEq, ::prost::Message)]
3684pub struct UpdateWorkerStatus {
3685 #[prost(enumeration="WorkerStatus", optional, tag="1")]
3686 pub status: ::core::option::Option<i32>,
3687 #[prost(float, tag="3")]
3689 pub load: f32,
3690 #[prost(uint32, tag="4")]
3691 pub job_count: u32,
3692}
3693#[allow(clippy::derive_partial_eq_without_eq)]
3694#[derive(Clone, PartialEq, ::prost::Message)]
3695pub struct JobAssignment {
3696 #[prost(message, optional, tag="1")]
3697 pub job: ::core::option::Option<Job>,
3698 #[prost(string, optional, tag="2")]
3699 pub url: ::core::option::Option<::prost::alloc::string::String>,
3700 #[prost(string, tag="3")]
3701 pub token: ::prost::alloc::string::String,
3702}
3703#[allow(clippy::derive_partial_eq_without_eq)]
3704#[derive(Clone, PartialEq, ::prost::Message)]
3705pub struct JobTermination {
3706 #[prost(string, tag="1")]
3707 pub job_id: ::prost::alloc::string::String,
3708}
3709#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3710#[repr(i32)]
3711pub enum JobType {
3712 JtRoom = 0,
3713 JtPublisher = 1,
3714}
3715impl JobType {
3716 pub fn as_str_name(&self) -> &'static str {
3721 match self {
3722 JobType::JtRoom => "JT_ROOM",
3723 JobType::JtPublisher => "JT_PUBLISHER",
3724 }
3725 }
3726 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3728 match value {
3729 "JT_ROOM" => Some(Self::JtRoom),
3730 "JT_PUBLISHER" => Some(Self::JtPublisher),
3731 _ => None,
3732 }
3733 }
3734}
3735#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3736#[repr(i32)]
3737pub enum WorkerStatus {
3738 WsAvailable = 0,
3739 WsFull = 1,
3740}
3741impl WorkerStatus {
3742 pub fn as_str_name(&self) -> &'static str {
3747 match self {
3748 WorkerStatus::WsAvailable => "WS_AVAILABLE",
3749 WorkerStatus::WsFull => "WS_FULL",
3750 }
3751 }
3752 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3754 match value {
3755 "WS_AVAILABLE" => Some(Self::WsAvailable),
3756 "WS_FULL" => Some(Self::WsFull),
3757 _ => None,
3758 }
3759 }
3760}
3761#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3762#[repr(i32)]
3763pub enum JobStatus {
3764 JsPending = 0,
3765 JsRunning = 1,
3766 JsSuccess = 2,
3767 JsFailed = 3,
3768}
3769impl JobStatus {
3770 pub fn as_str_name(&self) -> &'static str {
3775 match self {
3776 JobStatus::JsPending => "JS_PENDING",
3777 JobStatus::JsRunning => "JS_RUNNING",
3778 JobStatus::JsSuccess => "JS_SUCCESS",
3779 JobStatus::JsFailed => "JS_FAILED",
3780 }
3781 }
3782 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3784 match value {
3785 "JS_PENDING" => Some(Self::JsPending),
3786 "JS_RUNNING" => Some(Self::JsRunning),
3787 "JS_SUCCESS" => Some(Self::JsSuccess),
3788 "JS_FAILED" => Some(Self::JsFailed),
3789 _ => None,
3790 }
3791 }
3792}
3793#[allow(clippy::derive_partial_eq_without_eq)]
3794#[derive(Clone, PartialEq, ::prost::Message)]
3795pub struct CreateAgentDispatchRequest {
3796 #[prost(string, tag="1")]
3797 pub agent_name: ::prost::alloc::string::String,
3798 #[prost(string, tag="2")]
3799 pub room: ::prost::alloc::string::String,
3800 #[prost(string, tag="3")]
3801 pub metadata: ::prost::alloc::string::String,
3802}
3803#[allow(clippy::derive_partial_eq_without_eq)]
3804#[derive(Clone, PartialEq, ::prost::Message)]
3805pub struct RoomAgentDispatch {
3806 #[prost(string, tag="1")]
3807 pub agent_name: ::prost::alloc::string::String,
3808 #[prost(string, tag="2")]
3809 pub metadata: ::prost::alloc::string::String,
3810}
3811#[allow(clippy::derive_partial_eq_without_eq)]
3812#[derive(Clone, PartialEq, ::prost::Message)]
3813pub struct DeleteAgentDispatchRequest {
3814 #[prost(string, tag="1")]
3815 pub dispatch_id: ::prost::alloc::string::String,
3816 #[prost(string, tag="2")]
3817 pub room: ::prost::alloc::string::String,
3818}
3819#[allow(clippy::derive_partial_eq_without_eq)]
3820#[derive(Clone, PartialEq, ::prost::Message)]
3821pub struct ListAgentDispatchRequest {
3822 #[prost(string, tag="1")]
3824 pub dispatch_id: ::prost::alloc::string::String,
3825 #[prost(string, tag="2")]
3827 pub room: ::prost::alloc::string::String,
3828}
3829#[allow(clippy::derive_partial_eq_without_eq)]
3830#[derive(Clone, PartialEq, ::prost::Message)]
3831pub struct ListAgentDispatchResponse {
3832 #[prost(message, repeated, tag="1")]
3833 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
3834}
3835#[allow(clippy::derive_partial_eq_without_eq)]
3836#[derive(Clone, PartialEq, ::prost::Message)]
3837pub struct AgentDispatch {
3838 #[prost(string, tag="1")]
3839 pub id: ::prost::alloc::string::String,
3840 #[prost(string, tag="2")]
3841 pub agent_name: ::prost::alloc::string::String,
3842 #[prost(string, tag="3")]
3843 pub room: ::prost::alloc::string::String,
3844 #[prost(string, tag="4")]
3845 pub metadata: ::prost::alloc::string::String,
3846 #[prost(message, optional, tag="5")]
3847 pub state: ::core::option::Option<AgentDispatchState>,
3848}
3849#[allow(clippy::derive_partial_eq_without_eq)]
3850#[derive(Clone, PartialEq, ::prost::Message)]
3851pub struct AgentDispatchState {
3852 #[prost(message, repeated, tag="1")]
3855 pub jobs: ::prost::alloc::vec::Vec<Job>,
3856 #[prost(int64, tag="2")]
3857 pub created_at: i64,
3858 #[prost(int64, tag="3")]
3859 pub deleted_at: i64,
3860}
3861#[allow(clippy::derive_partial_eq_without_eq)]
3862#[derive(Clone, PartialEq, ::prost::Message)]
3863pub struct CreateRoomRequest {
3864 #[prost(string, tag="1")]
3866 pub name: ::prost::alloc::string::String,
3867 #[prost(string, tag="12")]
3869 pub room_preset: ::prost::alloc::string::String,
3870 #[prost(uint32, tag="2")]
3872 pub empty_timeout: u32,
3873 #[prost(uint32, tag="10")]
3875 pub departure_timeout: u32,
3876 #[prost(uint32, tag="3")]
3878 pub max_participants: u32,
3879 #[prost(string, tag="4")]
3881 pub node_id: ::prost::alloc::string::String,
3882 #[prost(string, tag="5")]
3884 pub metadata: ::prost::alloc::string::String,
3885 #[prost(message, optional, tag="6")]
3887 pub egress: ::core::option::Option<RoomEgress>,
3888 #[prost(uint32, tag="7")]
3890 pub min_playout_delay: u32,
3891 #[prost(uint32, tag="8")]
3892 pub max_playout_delay: u32,
3893 #[prost(bool, tag="9")]
3896 pub sync_streams: bool,
3897 #[prost(bool, tag="13")]
3899 pub replay_enabled: bool,
3900 #[prost(message, repeated, tag="14")]
3904 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
3905}
3906#[allow(clippy::derive_partial_eq_without_eq)]
3907#[derive(Clone, PartialEq, ::prost::Message)]
3908pub struct RoomEgress {
3909 #[prost(message, optional, tag="1")]
3910 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
3911 #[prost(message, optional, tag="3")]
3912 pub participant: ::core::option::Option<AutoParticipantEgress>,
3913 #[prost(message, optional, tag="2")]
3914 pub tracks: ::core::option::Option<AutoTrackEgress>,
3915}
3916#[allow(clippy::derive_partial_eq_without_eq)]
3917#[derive(Clone, PartialEq, ::prost::Message)]
3918pub struct RoomAgent {
3919 #[prost(message, repeated, tag="1")]
3920 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
3921}
3922#[allow(clippy::derive_partial_eq_without_eq)]
3923#[derive(Clone, PartialEq, ::prost::Message)]
3924pub struct ListRoomsRequest {
3925 #[prost(string, repeated, tag="1")]
3927 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3928}
3929#[allow(clippy::derive_partial_eq_without_eq)]
3930#[derive(Clone, PartialEq, ::prost::Message)]
3931pub struct ListRoomsResponse {
3932 #[prost(message, repeated, tag="1")]
3933 pub rooms: ::prost::alloc::vec::Vec<Room>,
3934}
3935#[allow(clippy::derive_partial_eq_without_eq)]
3936#[derive(Clone, PartialEq, ::prost::Message)]
3937pub struct DeleteRoomRequest {
3938 #[prost(string, tag="1")]
3940 pub room: ::prost::alloc::string::String,
3941}
3942#[allow(clippy::derive_partial_eq_without_eq)]
3943#[derive(Clone, PartialEq, ::prost::Message)]
3944pub struct DeleteRoomResponse {
3945}
3946#[allow(clippy::derive_partial_eq_without_eq)]
3947#[derive(Clone, PartialEq, ::prost::Message)]
3948pub struct ListParticipantsRequest {
3949 #[prost(string, tag="1")]
3951 pub room: ::prost::alloc::string::String,
3952}
3953#[allow(clippy::derive_partial_eq_without_eq)]
3954#[derive(Clone, PartialEq, ::prost::Message)]
3955pub struct ListParticipantsResponse {
3956 #[prost(message, repeated, tag="1")]
3957 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3958}
3959#[allow(clippy::derive_partial_eq_without_eq)]
3960#[derive(Clone, PartialEq, ::prost::Message)]
3961pub struct RoomParticipantIdentity {
3962 #[prost(string, tag="1")]
3964 pub room: ::prost::alloc::string::String,
3965 #[prost(string, tag="2")]
3967 pub identity: ::prost::alloc::string::String,
3968}
3969#[allow(clippy::derive_partial_eq_without_eq)]
3970#[derive(Clone, PartialEq, ::prost::Message)]
3971pub struct RemoveParticipantResponse {
3972}
3973#[allow(clippy::derive_partial_eq_without_eq)]
3974#[derive(Clone, PartialEq, ::prost::Message)]
3975pub struct MuteRoomTrackRequest {
3976 #[prost(string, tag="1")]
3978 pub room: ::prost::alloc::string::String,
3979 #[prost(string, tag="2")]
3980 pub identity: ::prost::alloc::string::String,
3981 #[prost(string, tag="3")]
3983 pub track_sid: ::prost::alloc::string::String,
3984 #[prost(bool, tag="4")]
3986 pub muted: bool,
3987}
3988#[allow(clippy::derive_partial_eq_without_eq)]
3989#[derive(Clone, PartialEq, ::prost::Message)]
3990pub struct MuteRoomTrackResponse {
3991 #[prost(message, optional, tag="1")]
3992 pub track: ::core::option::Option<TrackInfo>,
3993}
3994#[allow(clippy::derive_partial_eq_without_eq)]
3995#[derive(Clone, PartialEq, ::prost::Message)]
3996pub struct UpdateParticipantRequest {
3997 #[prost(string, tag="1")]
3998 pub room: ::prost::alloc::string::String,
3999 #[prost(string, tag="2")]
4000 pub identity: ::prost::alloc::string::String,
4001 #[prost(string, tag="3")]
4003 pub metadata: ::prost::alloc::string::String,
4004 #[prost(message, optional, tag="4")]
4006 pub permission: ::core::option::Option<ParticipantPermission>,
4007 #[prost(string, tag="5")]
4009 pub name: ::prost::alloc::string::String,
4010 #[prost(map="string, string", tag="6")]
4013 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4014}
4015#[allow(clippy::derive_partial_eq_without_eq)]
4016#[derive(Clone, PartialEq, ::prost::Message)]
4017pub struct UpdateSubscriptionsRequest {
4018 #[prost(string, tag="1")]
4019 pub room: ::prost::alloc::string::String,
4020 #[prost(string, tag="2")]
4021 pub identity: ::prost::alloc::string::String,
4022 #[prost(string, repeated, tag="3")]
4024 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4025 #[prost(bool, tag="4")]
4027 pub subscribe: bool,
4028 #[prost(message, repeated, tag="5")]
4030 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4031}
4032#[allow(clippy::derive_partial_eq_without_eq)]
4034#[derive(Clone, PartialEq, ::prost::Message)]
4035pub struct UpdateSubscriptionsResponse {
4036}
4037#[allow(clippy::derive_partial_eq_without_eq)]
4038#[derive(Clone, PartialEq, ::prost::Message)]
4039pub struct SendDataRequest {
4040 #[prost(string, tag="1")]
4041 pub room: ::prost::alloc::string::String,
4042 #[prost(bytes="vec", tag="2")]
4043 pub data: ::prost::alloc::vec::Vec<u8>,
4044 #[prost(enumeration="data_packet::Kind", tag="3")]
4045 pub kind: i32,
4046 #[deprecated]
4048 #[prost(string, repeated, tag="4")]
4049 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4050 #[prost(string, repeated, tag="6")]
4052 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4053 #[prost(string, optional, tag="5")]
4054 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4055 #[prost(bytes="vec", tag="7")]
4057 pub nonce: ::prost::alloc::vec::Vec<u8>,
4058}
4059#[allow(clippy::derive_partial_eq_without_eq)]
4061#[derive(Clone, PartialEq, ::prost::Message)]
4062pub struct SendDataResponse {
4063}
4064#[allow(clippy::derive_partial_eq_without_eq)]
4065#[derive(Clone, PartialEq, ::prost::Message)]
4066pub struct UpdateRoomMetadataRequest {
4067 #[prost(string, tag="1")]
4068 pub room: ::prost::alloc::string::String,
4069 #[prost(string, tag="2")]
4071 pub metadata: ::prost::alloc::string::String,
4072}
4073#[allow(clippy::derive_partial_eq_without_eq)]
4074#[derive(Clone, PartialEq, ::prost::Message)]
4075pub struct RoomConfiguration {
4076 #[prost(string, tag="1")]
4078 pub name: ::prost::alloc::string::String,
4079 #[prost(uint32, tag="2")]
4081 pub empty_timeout: u32,
4082 #[prost(uint32, tag="3")]
4084 pub departure_timeout: u32,
4085 #[prost(uint32, tag="4")]
4087 pub max_participants: u32,
4088 #[prost(message, optional, tag="5")]
4090 pub egress: ::core::option::Option<RoomEgress>,
4091 #[prost(uint32, tag="7")]
4093 pub min_playout_delay: u32,
4094 #[prost(uint32, tag="8")]
4095 pub max_playout_delay: u32,
4096 #[prost(bool, tag="9")]
4099 pub sync_streams: bool,
4100 #[prost(message, repeated, tag="10")]
4102 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4103}
4104#[allow(clippy::derive_partial_eq_without_eq)]
4105#[derive(Clone, PartialEq, ::prost::Message)]
4106pub struct CreateIngressRequest {
4107 #[prost(enumeration="IngressInput", tag="1")]
4108 pub input_type: i32,
4109 #[prost(string, tag="9")]
4111 pub url: ::prost::alloc::string::String,
4112 #[prost(string, tag="2")]
4114 pub name: ::prost::alloc::string::String,
4115 #[prost(string, tag="3")]
4117 pub room_name: ::prost::alloc::string::String,
4118 #[prost(string, tag="4")]
4120 pub participant_identity: ::prost::alloc::string::String,
4121 #[prost(string, tag="5")]
4123 pub participant_name: ::prost::alloc::string::String,
4124 #[prost(string, tag="10")]
4126 pub participant_metadata: ::prost::alloc::string::String,
4127 #[deprecated]
4129 #[prost(bool, tag="8")]
4130 pub bypass_transcoding: bool,
4131 #[prost(bool, optional, tag="11")]
4133 pub enable_transcoding: ::core::option::Option<bool>,
4134 #[prost(message, optional, tag="6")]
4135 pub audio: ::core::option::Option<IngressAudioOptions>,
4136 #[prost(message, optional, tag="7")]
4137 pub video: ::core::option::Option<IngressVideoOptions>,
4138 #[prost(bool, optional, tag="12")]
4140 pub enabled: ::core::option::Option<bool>,
4141}
4142#[allow(clippy::derive_partial_eq_without_eq)]
4143#[derive(Clone, PartialEq, ::prost::Message)]
4144pub struct IngressAudioOptions {
4145 #[prost(string, tag="1")]
4146 pub name: ::prost::alloc::string::String,
4147 #[prost(enumeration="TrackSource", tag="2")]
4148 pub source: i32,
4149 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4150 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4151}
4152pub mod ingress_audio_options {
4154 #[allow(clippy::derive_partial_eq_without_eq)]
4155#[derive(Clone, PartialEq, ::prost::Oneof)]
4156 pub enum EncodingOptions {
4157 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4158 Preset(i32),
4159 #[prost(message, tag="4")]
4160 Options(super::IngressAudioEncodingOptions),
4161 }
4162}
4163#[allow(clippy::derive_partial_eq_without_eq)]
4164#[derive(Clone, PartialEq, ::prost::Message)]
4165pub struct IngressVideoOptions {
4166 #[prost(string, tag="1")]
4167 pub name: ::prost::alloc::string::String,
4168 #[prost(enumeration="TrackSource", tag="2")]
4169 pub source: i32,
4170 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
4171 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
4172}
4173pub mod ingress_video_options {
4175 #[allow(clippy::derive_partial_eq_without_eq)]
4176#[derive(Clone, PartialEq, ::prost::Oneof)]
4177 pub enum EncodingOptions {
4178 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
4179 Preset(i32),
4180 #[prost(message, tag="4")]
4181 Options(super::IngressVideoEncodingOptions),
4182 }
4183}
4184#[allow(clippy::derive_partial_eq_without_eq)]
4185#[derive(Clone, PartialEq, ::prost::Message)]
4186pub struct IngressAudioEncodingOptions {
4187 #[prost(enumeration="AudioCodec", tag="1")]
4189 pub audio_codec: i32,
4190 #[prost(uint32, tag="2")]
4191 pub bitrate: u32,
4192 #[prost(bool, tag="3")]
4193 pub disable_dtx: bool,
4194 #[prost(uint32, tag="4")]
4195 pub channels: u32,
4196}
4197#[allow(clippy::derive_partial_eq_without_eq)]
4198#[derive(Clone, PartialEq, ::prost::Message)]
4199pub struct IngressVideoEncodingOptions {
4200 #[prost(enumeration="VideoCodec", tag="1")]
4202 pub video_codec: i32,
4203 #[prost(double, tag="2")]
4204 pub frame_rate: f64,
4205 #[prost(message, repeated, tag="3")]
4207 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4208}
4209#[allow(clippy::derive_partial_eq_without_eq)]
4210#[derive(Clone, PartialEq, ::prost::Message)]
4211pub struct IngressInfo {
4212 #[prost(string, tag="1")]
4213 pub ingress_id: ::prost::alloc::string::String,
4214 #[prost(string, tag="2")]
4215 pub name: ::prost::alloc::string::String,
4216 #[prost(string, tag="3")]
4217 pub stream_key: ::prost::alloc::string::String,
4218 #[prost(string, tag="4")]
4220 pub url: ::prost::alloc::string::String,
4221 #[prost(enumeration="IngressInput", tag="5")]
4225 pub input_type: i32,
4226 #[deprecated]
4227 #[prost(bool, tag="13")]
4228 pub bypass_transcoding: bool,
4229 #[prost(bool, optional, tag="15")]
4230 pub enable_transcoding: ::core::option::Option<bool>,
4231 #[prost(message, optional, tag="6")]
4232 pub audio: ::core::option::Option<IngressAudioOptions>,
4233 #[prost(message, optional, tag="7")]
4234 pub video: ::core::option::Option<IngressVideoOptions>,
4235 #[prost(string, tag="8")]
4236 pub room_name: ::prost::alloc::string::String,
4237 #[prost(string, tag="9")]
4238 pub participant_identity: ::prost::alloc::string::String,
4239 #[prost(string, tag="10")]
4240 pub participant_name: ::prost::alloc::string::String,
4241 #[prost(string, tag="14")]
4242 pub participant_metadata: ::prost::alloc::string::String,
4243 #[prost(bool, tag="11")]
4244 pub reusable: bool,
4245 #[prost(message, optional, tag="12")]
4247 pub state: ::core::option::Option<IngressState>,
4248 #[prost(bool, optional, tag="16")]
4250 pub enabled: ::core::option::Option<bool>,
4251}
4252#[allow(clippy::derive_partial_eq_without_eq)]
4253#[derive(Clone, PartialEq, ::prost::Message)]
4254pub struct IngressState {
4255 #[prost(enumeration="ingress_state::Status", tag="1")]
4256 pub status: i32,
4257 #[prost(string, tag="2")]
4259 pub error: ::prost::alloc::string::String,
4260 #[prost(message, optional, tag="3")]
4261 pub video: ::core::option::Option<InputVideoState>,
4262 #[prost(message, optional, tag="4")]
4263 pub audio: ::core::option::Option<InputAudioState>,
4264 #[prost(string, tag="5")]
4266 pub room_id: ::prost::alloc::string::String,
4267 #[prost(int64, tag="7")]
4268 pub started_at: i64,
4269 #[prost(int64, tag="8")]
4270 pub ended_at: i64,
4271 #[prost(int64, tag="10")]
4272 pub updated_at: i64,
4273 #[prost(string, tag="9")]
4274 pub resource_id: ::prost::alloc::string::String,
4275 #[prost(message, repeated, tag="6")]
4276 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
4277}
4278pub mod ingress_state {
4280 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4281 #[repr(i32)]
4282 pub enum Status {
4283 EndpointInactive = 0,
4284 EndpointBuffering = 1,
4285 EndpointPublishing = 2,
4286 EndpointError = 3,
4287 EndpointComplete = 4,
4288 }
4289 impl Status {
4290 pub fn as_str_name(&self) -> &'static str {
4295 match self {
4296 Status::EndpointInactive => "ENDPOINT_INACTIVE",
4297 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
4298 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
4299 Status::EndpointError => "ENDPOINT_ERROR",
4300 Status::EndpointComplete => "ENDPOINT_COMPLETE",
4301 }
4302 }
4303 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4305 match value {
4306 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
4307 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
4308 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
4309 "ENDPOINT_ERROR" => Some(Self::EndpointError),
4310 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
4311 _ => None,
4312 }
4313 }
4314 }
4315}
4316#[allow(clippy::derive_partial_eq_without_eq)]
4317#[derive(Clone, PartialEq, ::prost::Message)]
4318pub struct InputVideoState {
4319 #[prost(string, tag="1")]
4320 pub mime_type: ::prost::alloc::string::String,
4321 #[prost(uint32, tag="2")]
4322 pub average_bitrate: u32,
4323 #[prost(uint32, tag="3")]
4324 pub width: u32,
4325 #[prost(uint32, tag="4")]
4326 pub height: u32,
4327 #[prost(double, tag="5")]
4328 pub framerate: f64,
4329}
4330#[allow(clippy::derive_partial_eq_without_eq)]
4331#[derive(Clone, PartialEq, ::prost::Message)]
4332pub struct InputAudioState {
4333 #[prost(string, tag="1")]
4334 pub mime_type: ::prost::alloc::string::String,
4335 #[prost(uint32, tag="2")]
4336 pub average_bitrate: u32,
4337 #[prost(uint32, tag="3")]
4338 pub channels: u32,
4339 #[prost(uint32, tag="4")]
4340 pub sample_rate: u32,
4341}
4342#[allow(clippy::derive_partial_eq_without_eq)]
4343#[derive(Clone, PartialEq, ::prost::Message)]
4344pub struct UpdateIngressRequest {
4345 #[prost(string, tag="1")]
4346 pub ingress_id: ::prost::alloc::string::String,
4347 #[prost(string, tag="2")]
4348 pub name: ::prost::alloc::string::String,
4349 #[prost(string, tag="3")]
4350 pub room_name: ::prost::alloc::string::String,
4351 #[prost(string, tag="4")]
4352 pub participant_identity: ::prost::alloc::string::String,
4353 #[prost(string, tag="5")]
4354 pub participant_name: ::prost::alloc::string::String,
4355 #[prost(string, tag="9")]
4356 pub participant_metadata: ::prost::alloc::string::String,
4357 #[deprecated]
4358 #[prost(bool, optional, tag="8")]
4359 pub bypass_transcoding: ::core::option::Option<bool>,
4360 #[prost(bool, optional, tag="10")]
4361 pub enable_transcoding: ::core::option::Option<bool>,
4362 #[prost(message, optional, tag="6")]
4363 pub audio: ::core::option::Option<IngressAudioOptions>,
4364 #[prost(message, optional, tag="7")]
4365 pub video: ::core::option::Option<IngressVideoOptions>,
4366 #[prost(bool, optional, tag="11")]
4368 pub enabled: ::core::option::Option<bool>,
4369}
4370#[allow(clippy::derive_partial_eq_without_eq)]
4371#[derive(Clone, PartialEq, ::prost::Message)]
4372pub struct ListIngressRequest {
4373 #[prost(string, tag="1")]
4377 pub room_name: ::prost::alloc::string::String,
4378 #[prost(string, tag="2")]
4380 pub ingress_id: ::prost::alloc::string::String,
4381}
4382#[allow(clippy::derive_partial_eq_without_eq)]
4383#[derive(Clone, PartialEq, ::prost::Message)]
4384pub struct ListIngressResponse {
4385 #[prost(message, repeated, tag="1")]
4386 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
4387}
4388#[allow(clippy::derive_partial_eq_without_eq)]
4389#[derive(Clone, PartialEq, ::prost::Message)]
4390pub struct DeleteIngressRequest {
4391 #[prost(string, tag="1")]
4392 pub ingress_id: ::prost::alloc::string::String,
4393}
4394#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4395#[repr(i32)]
4396pub enum IngressInput {
4397 RtmpInput = 0,
4398 WhipInput = 1,
4399 UrlInput = 2,
4401}
4402impl IngressInput {
4403 pub fn as_str_name(&self) -> &'static str {
4408 match self {
4409 IngressInput::RtmpInput => "RTMP_INPUT",
4410 IngressInput::WhipInput => "WHIP_INPUT",
4411 IngressInput::UrlInput => "URL_INPUT",
4412 }
4413 }
4414 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4416 match value {
4417 "RTMP_INPUT" => Some(Self::RtmpInput),
4418 "WHIP_INPUT" => Some(Self::WhipInput),
4419 "URL_INPUT" => Some(Self::UrlInput),
4420 _ => None,
4421 }
4422 }
4423}
4424#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4425#[repr(i32)]
4426pub enum IngressAudioEncodingPreset {
4427 OpusStereo96kbps = 0,
4429 OpusMono64kbs = 1,
4431}
4432impl IngressAudioEncodingPreset {
4433 pub fn as_str_name(&self) -> &'static str {
4438 match self {
4439 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
4440 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
4441 }
4442 }
4443 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4445 match value {
4446 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
4447 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
4448 _ => None,
4449 }
4450 }
4451}
4452#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4453#[repr(i32)]
4454pub enum IngressVideoEncodingPreset {
4455 H264720p30fps3Layers = 0,
4457 H2641080p30fps3Layers = 1,
4459 H264540p25fps2Layers = 2,
4461 H264720p30fps1Layer = 3,
4463 H2641080p30fps1Layer = 4,
4465 H264720p30fps3LayersHighMotion = 5,
4467 H2641080p30fps3LayersHighMotion = 6,
4469 H264540p25fps2LayersHighMotion = 7,
4471 H264720p30fps1LayerHighMotion = 8,
4473 H2641080p30fps1LayerHighMotion = 9,
4475}
4476impl IngressVideoEncodingPreset {
4477 pub fn as_str_name(&self) -> &'static str {
4482 match self {
4483 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
4484 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
4485 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
4486 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
4487 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
4488 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
4489 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
4490 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
4491 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
4492 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
4493 }
4494 }
4495 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4497 match value {
4498 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
4499 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
4500 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
4501 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
4502 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
4503 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
4504 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
4505 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
4506 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
4507 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
4508 _ => None,
4509 }
4510 }
4511}
4512#[allow(clippy::derive_partial_eq_without_eq)]
4513#[derive(Clone, PartialEq, ::prost::Message)]
4514pub struct WebhookEvent {
4515 #[prost(string, tag="1")]
4519 pub event: ::prost::alloc::string::String,
4520 #[prost(message, optional, tag="2")]
4521 pub room: ::core::option::Option<Room>,
4522 #[prost(message, optional, tag="3")]
4524 pub participant: ::core::option::Option<ParticipantInfo>,
4525 #[prost(message, optional, tag="9")]
4527 pub egress_info: ::core::option::Option<EgressInfo>,
4528 #[prost(message, optional, tag="10")]
4530 pub ingress_info: ::core::option::Option<IngressInfo>,
4531 #[prost(message, optional, tag="8")]
4533 pub track: ::core::option::Option<TrackInfo>,
4534 #[prost(string, tag="6")]
4536 pub id: ::prost::alloc::string::String,
4537 #[prost(int64, tag="7")]
4539 pub created_at: i64,
4540 #[prost(int32, tag="11")]
4541 pub num_dropped: i32,
4542}
4543#[allow(clippy::derive_partial_eq_without_eq)]
4544#[derive(Clone, PartialEq, ::prost::Message)]
4545pub struct CreateSipTrunkRequest {
4546 #[prost(string, repeated, tag="1")]
4549 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4550 #[prost(string, tag="2")]
4552 pub outbound_address: ::prost::alloc::string::String,
4553 #[prost(string, tag="3")]
4555 pub outbound_number: ::prost::alloc::string::String,
4556 #[deprecated]
4557 #[prost(string, repeated, tag="4")]
4558 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4559 #[prost(string, repeated, tag="9")]
4563 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4564 #[prost(string, tag="5")]
4567 pub inbound_username: ::prost::alloc::string::String,
4568 #[prost(string, tag="6")]
4569 pub inbound_password: ::prost::alloc::string::String,
4570 #[prost(string, tag="7")]
4571 pub outbound_username: ::prost::alloc::string::String,
4572 #[prost(string, tag="8")]
4573 pub outbound_password: ::prost::alloc::string::String,
4574 #[prost(string, tag="10")]
4576 pub name: ::prost::alloc::string::String,
4577 #[prost(string, tag="11")]
4579 pub metadata: ::prost::alloc::string::String,
4580}
4581#[allow(clippy::derive_partial_eq_without_eq)]
4582#[derive(Clone, PartialEq, ::prost::Message)]
4583pub struct SipTrunkInfo {
4584 #[prost(string, tag="1")]
4585 pub sip_trunk_id: ::prost::alloc::string::String,
4586 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
4587 pub kind: i32,
4588 #[prost(string, repeated, tag="2")]
4591 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4592 #[prost(string, tag="3")]
4594 pub outbound_address: ::prost::alloc::string::String,
4595 #[prost(string, tag="4")]
4597 pub outbound_number: ::prost::alloc::string::String,
4598 #[prost(enumeration="SipTransport", tag="13")]
4600 pub transport: i32,
4601 #[deprecated]
4602 #[prost(string, repeated, tag="5")]
4603 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4604 #[prost(string, repeated, tag="10")]
4608 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4609 #[prost(string, tag="6")]
4612 pub inbound_username: ::prost::alloc::string::String,
4613 #[prost(string, tag="7")]
4614 pub inbound_password: ::prost::alloc::string::String,
4615 #[prost(string, tag="8")]
4616 pub outbound_username: ::prost::alloc::string::String,
4617 #[prost(string, tag="9")]
4618 pub outbound_password: ::prost::alloc::string::String,
4619 #[prost(string, tag="11")]
4621 pub name: ::prost::alloc::string::String,
4622 #[prost(string, tag="12")]
4624 pub metadata: ::prost::alloc::string::String,
4625}
4626pub mod sip_trunk_info {
4628 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4629 #[repr(i32)]
4630 pub enum TrunkKind {
4631 TrunkLegacy = 0,
4632 TrunkInbound = 1,
4633 TrunkOutbound = 2,
4634 }
4635 impl TrunkKind {
4636 pub fn as_str_name(&self) -> &'static str {
4641 match self {
4642 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
4643 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
4644 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
4645 }
4646 }
4647 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4649 match value {
4650 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
4651 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
4652 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
4653 _ => None,
4654 }
4655 }
4656 }
4657}
4658#[allow(clippy::derive_partial_eq_without_eq)]
4659#[derive(Clone, PartialEq, ::prost::Message)]
4660pub struct CreateSipInboundTrunkRequest {
4661 #[prost(message, optional, tag="1")]
4663 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
4664}
4665#[allow(clippy::derive_partial_eq_without_eq)]
4666#[derive(Clone, PartialEq, ::prost::Message)]
4667pub struct SipInboundTrunkInfo {
4668 #[prost(string, tag="1")]
4669 pub sip_trunk_id: ::prost::alloc::string::String,
4670 #[prost(string, tag="2")]
4672 pub name: ::prost::alloc::string::String,
4673 #[prost(string, tag="3")]
4675 pub metadata: ::prost::alloc::string::String,
4676 #[prost(string, repeated, tag="4")]
4679 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4680 #[prost(string, repeated, tag="5")]
4683 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4684 #[prost(string, repeated, tag="6")]
4687 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4688 #[prost(string, tag="7")]
4691 pub auth_username: ::prost::alloc::string::String,
4692 #[prost(string, tag="8")]
4693 pub auth_password: ::prost::alloc::string::String,
4694 #[prost(map="string, string", tag="9")]
4696 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4697 #[prost(map="string, string", tag="10")]
4699 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4700 #[prost(map="string, string", tag="14")]
4703 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4704 #[prost(enumeration="SipHeaderOptions", tag="15")]
4711 pub include_headers: i32,
4712 #[prost(message, optional, tag="11")]
4714 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
4715 #[prost(message, optional, tag="12")]
4717 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
4718 #[prost(bool, tag="13")]
4719 pub krisp_enabled: bool,
4720 #[prost(enumeration="SipMediaEncryption", tag="16")]
4721 pub media_encryption: i32,
4722}
4723#[allow(clippy::derive_partial_eq_without_eq)]
4724#[derive(Clone, PartialEq, ::prost::Message)]
4725pub struct CreateSipOutboundTrunkRequest {
4726 #[prost(message, optional, tag="1")]
4728 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
4729}
4730#[allow(clippy::derive_partial_eq_without_eq)]
4731#[derive(Clone, PartialEq, ::prost::Message)]
4732pub struct SipOutboundTrunkInfo {
4733 #[prost(string, tag="1")]
4734 pub sip_trunk_id: ::prost::alloc::string::String,
4735 #[prost(string, tag="2")]
4737 pub name: ::prost::alloc::string::String,
4738 #[prost(string, tag="3")]
4740 pub metadata: ::prost::alloc::string::String,
4741 #[prost(string, tag="4")]
4744 pub address: ::prost::alloc::string::String,
4745 #[prost(enumeration="SipTransport", tag="5")]
4747 pub transport: i32,
4748 #[prost(string, repeated, tag="6")]
4750 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4751 #[prost(string, tag="7")]
4754 pub auth_username: ::prost::alloc::string::String,
4755 #[prost(string, tag="8")]
4756 pub auth_password: ::prost::alloc::string::String,
4757 #[prost(map="string, string", tag="9")]
4760 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4761 #[prost(map="string, string", tag="10")]
4764 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4765 #[prost(map="string, string", tag="11")]
4768 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4769 #[prost(enumeration="SipHeaderOptions", tag="12")]
4776 pub include_headers: i32,
4777 #[prost(enumeration="SipMediaEncryption", tag="13")]
4778 pub media_encryption: i32,
4779}
4780#[allow(clippy::derive_partial_eq_without_eq)]
4781#[derive(Clone, PartialEq, ::prost::Message)]
4782pub struct GetSipInboundTrunkRequest {
4783 #[prost(string, tag="1")]
4784 pub sip_trunk_id: ::prost::alloc::string::String,
4785}
4786#[allow(clippy::derive_partial_eq_without_eq)]
4787#[derive(Clone, PartialEq, ::prost::Message)]
4788pub struct GetSipInboundTrunkResponse {
4789 #[prost(message, optional, tag="1")]
4790 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
4791}
4792#[allow(clippy::derive_partial_eq_without_eq)]
4793#[derive(Clone, PartialEq, ::prost::Message)]
4794pub struct GetSipOutboundTrunkRequest {
4795 #[prost(string, tag="1")]
4796 pub sip_trunk_id: ::prost::alloc::string::String,
4797}
4798#[allow(clippy::derive_partial_eq_without_eq)]
4799#[derive(Clone, PartialEq, ::prost::Message)]
4800pub struct GetSipOutboundTrunkResponse {
4801 #[prost(message, optional, tag="1")]
4802 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
4803}
4804#[allow(clippy::derive_partial_eq_without_eq)]
4805#[derive(Clone, PartialEq, ::prost::Message)]
4806pub struct ListSipTrunkRequest {
4807 #[prost(message, optional, tag="1")]
4808 pub page: ::core::option::Option<Pagination>,
4809}
4810#[allow(clippy::derive_partial_eq_without_eq)]
4811#[derive(Clone, PartialEq, ::prost::Message)]
4812pub struct ListSipTrunkResponse {
4813 #[prost(message, repeated, tag="1")]
4814 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
4815}
4816#[allow(clippy::derive_partial_eq_without_eq)]
4818#[derive(Clone, PartialEq, ::prost::Message)]
4819pub struct ListSipInboundTrunkRequest {
4820 #[prost(message, optional, tag="3")]
4821 pub page: ::core::option::Option<Pagination>,
4822 #[prost(string, repeated, tag="1")]
4825 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4826 #[prost(string, repeated, tag="2")]
4828 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4829}
4830#[allow(clippy::derive_partial_eq_without_eq)]
4831#[derive(Clone, PartialEq, ::prost::Message)]
4832pub struct ListSipInboundTrunkResponse {
4833 #[prost(message, repeated, tag="1")]
4834 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
4835}
4836#[allow(clippy::derive_partial_eq_without_eq)]
4838#[derive(Clone, PartialEq, ::prost::Message)]
4839pub struct ListSipOutboundTrunkRequest {
4840 #[prost(message, optional, tag="3")]
4841 pub page: ::core::option::Option<Pagination>,
4842 #[prost(string, repeated, tag="1")]
4845 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4846 #[prost(string, repeated, tag="2")]
4848 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4849}
4850#[allow(clippy::derive_partial_eq_without_eq)]
4851#[derive(Clone, PartialEq, ::prost::Message)]
4852pub struct ListSipOutboundTrunkResponse {
4853 #[prost(message, repeated, tag="1")]
4854 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
4855}
4856#[allow(clippy::derive_partial_eq_without_eq)]
4857#[derive(Clone, PartialEq, ::prost::Message)]
4858pub struct DeleteSipTrunkRequest {
4859 #[prost(string, tag="1")]
4860 pub sip_trunk_id: ::prost::alloc::string::String,
4861}
4862#[allow(clippy::derive_partial_eq_without_eq)]
4863#[derive(Clone, PartialEq, ::prost::Message)]
4864pub struct SipDispatchRuleDirect {
4865 #[prost(string, tag="1")]
4867 pub room_name: ::prost::alloc::string::String,
4868 #[prost(string, tag="2")]
4870 pub pin: ::prost::alloc::string::String,
4871}
4872#[allow(clippy::derive_partial_eq_without_eq)]
4873#[derive(Clone, PartialEq, ::prost::Message)]
4874pub struct SipDispatchRuleIndividual {
4875 #[prost(string, tag="1")]
4877 pub room_prefix: ::prost::alloc::string::String,
4878 #[prost(string, tag="2")]
4880 pub pin: ::prost::alloc::string::String,
4881}
4882#[allow(clippy::derive_partial_eq_without_eq)]
4883#[derive(Clone, PartialEq, ::prost::Message)]
4884pub struct SipDispatchRuleCallee {
4885 #[prost(string, tag="1")]
4887 pub room_prefix: ::prost::alloc::string::String,
4888 #[prost(string, tag="2")]
4890 pub pin: ::prost::alloc::string::String,
4891 #[prost(bool, tag="3")]
4893 pub randomize: bool,
4894}
4895#[allow(clippy::derive_partial_eq_without_eq)]
4896#[derive(Clone, PartialEq, ::prost::Message)]
4897pub struct SipDispatchRule {
4898 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
4899 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
4900}
4901pub mod sip_dispatch_rule {
4903 #[allow(clippy::derive_partial_eq_without_eq)]
4904#[derive(Clone, PartialEq, ::prost::Oneof)]
4905 pub enum Rule {
4906 #[prost(message, tag="1")]
4910 DispatchRuleDirect(super::SipDispatchRuleDirect),
4911 #[prost(message, tag="2")]
4913 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
4914 #[prost(message, tag="3")]
4916 DispatchRuleCallee(super::SipDispatchRuleCallee),
4917 }
4918}
4919#[allow(clippy::derive_partial_eq_without_eq)]
4920#[derive(Clone, PartialEq, ::prost::Message)]
4921pub struct CreateSipDispatchRuleRequest {
4922 #[prost(message, optional, tag="1")]
4923 pub rule: ::core::option::Option<SipDispatchRule>,
4924 #[prost(string, repeated, tag="2")]
4927 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4928 #[prost(bool, tag="3")]
4931 pub hide_phone_number: bool,
4932 #[prost(string, repeated, tag="6")]
4934 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4935 #[prost(string, tag="4")]
4937 pub name: ::prost::alloc::string::String,
4938 #[prost(string, tag="5")]
4941 pub metadata: ::prost::alloc::string::String,
4942 #[prost(map="string, string", tag="7")]
4945 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4946 #[prost(string, tag="8")]
4948 pub room_preset: ::prost::alloc::string::String,
4949 #[prost(message, optional, tag="9")]
4951 pub room_config: ::core::option::Option<RoomConfiguration>,
4952}
4953#[allow(clippy::derive_partial_eq_without_eq)]
4954#[derive(Clone, PartialEq, ::prost::Message)]
4955pub struct SipDispatchRuleInfo {
4956 #[prost(string, tag="1")]
4957 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
4958 #[prost(message, optional, tag="2")]
4959 pub rule: ::core::option::Option<SipDispatchRule>,
4960 #[prost(string, repeated, tag="3")]
4961 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4962 #[prost(bool, tag="4")]
4963 pub hide_phone_number: bool,
4964 #[prost(string, repeated, tag="7")]
4966 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4967 #[prost(string, tag="5")]
4969 pub name: ::prost::alloc::string::String,
4970 #[prost(string, tag="6")]
4973 pub metadata: ::prost::alloc::string::String,
4974 #[prost(map="string, string", tag="8")]
4977 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4978 #[prost(string, tag="9")]
4980 pub room_preset: ::prost::alloc::string::String,
4981 #[prost(message, optional, tag="10")]
4983 pub room_config: ::core::option::Option<RoomConfiguration>,
4984 #[prost(bool, tag="11")]
4985 pub krisp_enabled: bool,
4986 #[prost(enumeration="SipMediaEncryption", tag="12")]
4988 pub media_encryption: i32,
4989}
4990#[allow(clippy::derive_partial_eq_without_eq)]
4992#[derive(Clone, PartialEq, ::prost::Message)]
4993pub struct ListSipDispatchRuleRequest {
4994 #[prost(message, optional, tag="3")]
4995 pub page: ::core::option::Option<Pagination>,
4996 #[prost(string, repeated, tag="1")]
4999 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5000 #[prost(string, repeated, tag="2")]
5002 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5003}
5004#[allow(clippy::derive_partial_eq_without_eq)]
5005#[derive(Clone, PartialEq, ::prost::Message)]
5006pub struct ListSipDispatchRuleResponse {
5007 #[prost(message, repeated, tag="1")]
5008 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
5009}
5010#[allow(clippy::derive_partial_eq_without_eq)]
5011#[derive(Clone, PartialEq, ::prost::Message)]
5012pub struct DeleteSipDispatchRuleRequest {
5013 #[prost(string, tag="1")]
5014 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5015}
5016#[allow(clippy::derive_partial_eq_without_eq)]
5019#[derive(Clone, PartialEq, ::prost::Message)]
5020pub struct CreateSipParticipantRequest {
5021 #[prost(string, tag="1")]
5023 pub sip_trunk_id: ::prost::alloc::string::String,
5024 #[prost(string, tag="2")]
5026 pub sip_call_to: ::prost::alloc::string::String,
5027 #[prost(string, tag="15")]
5029 pub sip_number: ::prost::alloc::string::String,
5030 #[prost(string, tag="3")]
5032 pub room_name: ::prost::alloc::string::String,
5033 #[prost(string, tag="4")]
5035 pub participant_identity: ::prost::alloc::string::String,
5036 #[prost(string, tag="7")]
5038 pub participant_name: ::prost::alloc::string::String,
5039 #[prost(string, tag="8")]
5041 pub participant_metadata: ::prost::alloc::string::String,
5042 #[prost(map="string, string", tag="9")]
5044 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5045 #[prost(string, tag="5")]
5048 pub dtmf: ::prost::alloc::string::String,
5049 #[deprecated]
5051 #[prost(bool, tag="6")]
5052 pub play_ringtone: bool,
5053 #[prost(bool, tag="13")]
5054 pub play_dialtone: bool,
5055 #[prost(bool, tag="10")]
5058 pub hide_phone_number: bool,
5059 #[prost(map="string, string", tag="16")]
5061 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5062 #[prost(enumeration="SipHeaderOptions", tag="17")]
5069 pub include_headers: i32,
5070 #[prost(message, optional, tag="11")]
5072 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5073 #[prost(message, optional, tag="12")]
5075 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5076 #[prost(bool, tag="14")]
5078 pub krisp_enabled: bool,
5079 #[prost(enumeration="SipMediaEncryption", tag="18")]
5081 pub media_encryption: i32,
5082}
5083#[allow(clippy::derive_partial_eq_without_eq)]
5084#[derive(Clone, PartialEq, ::prost::Message)]
5085pub struct SipParticipantInfo {
5086 #[prost(string, tag="1")]
5087 pub participant_id: ::prost::alloc::string::String,
5088 #[prost(string, tag="2")]
5089 pub participant_identity: ::prost::alloc::string::String,
5090 #[prost(string, tag="3")]
5091 pub room_name: ::prost::alloc::string::String,
5092 #[prost(string, tag="4")]
5093 pub sip_call_id: ::prost::alloc::string::String,
5094}
5095#[allow(clippy::derive_partial_eq_without_eq)]
5096#[derive(Clone, PartialEq, ::prost::Message)]
5097pub struct TransferSipParticipantRequest {
5098 #[prost(string, tag="1")]
5099 pub participant_identity: ::prost::alloc::string::String,
5100 #[prost(string, tag="2")]
5101 pub room_name: ::prost::alloc::string::String,
5102 #[prost(string, tag="3")]
5103 pub transfer_to: ::prost::alloc::string::String,
5104 #[prost(bool, tag="4")]
5106 pub play_dialtone: bool,
5107 #[prost(map="string, string", tag="5")]
5109 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5110}
5111#[allow(clippy::derive_partial_eq_without_eq)]
5112#[derive(Clone, PartialEq, ::prost::Message)]
5113pub struct SipCallInfo {
5114 #[prost(string, tag="1")]
5115 pub call_id: ::prost::alloc::string::String,
5116 #[prost(string, tag="2")]
5117 pub trunk_id: ::prost::alloc::string::String,
5118 #[prost(string, tag="3")]
5119 pub room_name: ::prost::alloc::string::String,
5120 #[prost(string, tag="4")]
5122 pub room_id: ::prost::alloc::string::String,
5123 #[prost(string, tag="5")]
5124 pub participant_identity: ::prost::alloc::string::String,
5125 #[prost(message, optional, tag="6")]
5126 pub from_uri: ::core::option::Option<SipUri>,
5127 #[prost(message, optional, tag="7")]
5128 pub to_uri: ::core::option::Option<SipUri>,
5129 #[prost(enumeration="SipFeature", repeated, tag="14")]
5130 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
5131 #[prost(enumeration="SipCallDirection", tag="15")]
5132 pub call_direction: i32,
5133 #[prost(enumeration="SipCallStatus", tag="8")]
5134 pub call_status: i32,
5135 #[prost(int64, tag="9")]
5136 pub created_at: i64,
5137 #[prost(int64, tag="10")]
5138 pub started_at: i64,
5139 #[prost(int64, tag="11")]
5140 pub ended_at: i64,
5141 #[prost(enumeration="DisconnectReason", tag="12")]
5142 pub disconnect_reason: i32,
5143 #[prost(string, tag="13")]
5144 pub error: ::prost::alloc::string::String,
5145}
5146#[allow(clippy::derive_partial_eq_without_eq)]
5147#[derive(Clone, PartialEq, ::prost::Message)]
5148pub struct SipUri {
5149 #[prost(string, tag="1")]
5150 pub user: ::prost::alloc::string::String,
5151 #[prost(string, tag="2")]
5152 pub host: ::prost::alloc::string::String,
5153 #[prost(string, tag="3")]
5154 pub ip: ::prost::alloc::string::String,
5155 #[prost(uint32, tag="4")]
5156 pub port: u32,
5157 #[prost(enumeration="SipTransport", tag="5")]
5158 pub transport: i32,
5159}
5160#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5161#[repr(i32)]
5162pub enum SipTransport {
5163 Auto = 0,
5164 Udp = 1,
5165 Tcp = 2,
5166 Tls = 3,
5167}
5168impl SipTransport {
5169 pub fn as_str_name(&self) -> &'static str {
5174 match self {
5175 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
5176 SipTransport::Udp => "SIP_TRANSPORT_UDP",
5177 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
5178 SipTransport::Tls => "SIP_TRANSPORT_TLS",
5179 }
5180 }
5181 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5183 match value {
5184 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
5185 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
5186 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
5187 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
5188 _ => None,
5189 }
5190 }
5191}
5192#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5193#[repr(i32)]
5194pub enum SipHeaderOptions {
5195 SipNoHeaders = 0,
5197 SipXHeaders = 1,
5199 SipAllHeaders = 2,
5201}
5202impl SipHeaderOptions {
5203 pub fn as_str_name(&self) -> &'static str {
5208 match self {
5209 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
5210 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
5211 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
5212 }
5213 }
5214 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5216 match value {
5217 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
5218 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
5219 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
5220 _ => None,
5221 }
5222 }
5223}
5224#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5225#[repr(i32)]
5226pub enum SipMediaEncryption {
5227 SipMediaEncryptDisable = 0,
5229 SipMediaEncryptAllow = 1,
5231 SipMediaEncryptRequire = 2,
5233}
5234impl SipMediaEncryption {
5235 pub fn as_str_name(&self) -> &'static str {
5240 match self {
5241 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
5242 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
5243 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
5244 }
5245 }
5246 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5248 match value {
5249 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
5250 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
5251 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
5252 _ => None,
5253 }
5254 }
5255}
5256#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5257#[repr(i32)]
5258pub enum SipCallStatus {
5259 ScsCallIncoming = 0,
5261 ScsParticipantJoined = 1,
5263 ScsActive = 2,
5265 ScsDisconnected = 3,
5267 ScsError = 4,
5269}
5270impl SipCallStatus {
5271 pub fn as_str_name(&self) -> &'static str {
5276 match self {
5277 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
5278 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
5279 SipCallStatus::ScsActive => "SCS_ACTIVE",
5280 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
5281 SipCallStatus::ScsError => "SCS_ERROR",
5282 }
5283 }
5284 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5286 match value {
5287 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
5288 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
5289 "SCS_ACTIVE" => Some(Self::ScsActive),
5290 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
5291 "SCS_ERROR" => Some(Self::ScsError),
5292 _ => None,
5293 }
5294 }
5295}
5296#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5297#[repr(i32)]
5298pub enum SipFeature {
5299 None = 0,
5300 KrispEnabled = 1,
5301}
5302impl SipFeature {
5303 pub fn as_str_name(&self) -> &'static str {
5308 match self {
5309 SipFeature::None => "NONE",
5310 SipFeature::KrispEnabled => "KRISP_ENABLED",
5311 }
5312 }
5313 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5315 match value {
5316 "NONE" => Some(Self::None),
5317 "KRISP_ENABLED" => Some(Self::KrispEnabled),
5318 _ => None,
5319 }
5320 }
5321}
5322#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5323#[repr(i32)]
5324pub enum SipCallDirection {
5325 ScdUnknown = 0,
5326 ScdInbound = 1,
5327 ScdOutbound = 2,
5328}
5329impl SipCallDirection {
5330 pub fn as_str_name(&self) -> &'static str {
5335 match self {
5336 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
5337 SipCallDirection::ScdInbound => "SCD_INBOUND",
5338 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
5339 }
5340 }
5341 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5343 match value {
5344 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
5345 "SCD_INBOUND" => Some(Self::ScdInbound),
5346 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
5347 _ => None,
5348 }
5349 }
5350}
5351include!("livekit.serde.rs");
5352