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 TokenPagination {
205 #[prost(string, tag="1")]
206 pub token: ::prost::alloc::string::String,
207}
208#[allow(clippy::derive_partial_eq_without_eq)]
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct ListUpdate {
212 #[prost(string, repeated, tag="1")]
214 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
215 #[prost(string, repeated, tag="2")]
217 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
218 #[prost(string, repeated, tag="3")]
220 pub del: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
221 #[prost(bool, tag="4")]
223 pub clear: bool,
224}
225#[allow(clippy::derive_partial_eq_without_eq)]
226#[derive(Clone, PartialEq, ::prost::Message)]
227pub struct Room {
228 #[prost(string, tag="1")]
229 pub sid: ::prost::alloc::string::String,
230 #[prost(string, tag="2")]
231 pub name: ::prost::alloc::string::String,
232 #[prost(uint32, tag="3")]
233 pub empty_timeout: u32,
234 #[prost(uint32, tag="14")]
235 pub departure_timeout: u32,
236 #[prost(uint32, tag="4")]
237 pub max_participants: u32,
238 #[prost(int64, tag="5")]
239 pub creation_time: i64,
240 #[prost(int64, tag="15")]
241 pub creation_time_ms: i64,
242 #[prost(string, tag="6")]
243 pub turn_password: ::prost::alloc::string::String,
244 #[prost(message, repeated, tag="7")]
245 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
246 #[prost(string, tag="8")]
247 pub metadata: ::prost::alloc::string::String,
248 #[prost(uint32, tag="9")]
249 pub num_participants: u32,
250 #[prost(uint32, tag="11")]
251 pub num_publishers: u32,
252 #[prost(bool, tag="10")]
253 pub active_recording: bool,
254 #[prost(message, optional, tag="13")]
255 pub version: ::core::option::Option<TimedVersion>,
256}
257#[allow(clippy::derive_partial_eq_without_eq)]
258#[derive(Clone, PartialEq, ::prost::Message)]
259pub struct Codec {
260 #[prost(string, tag="1")]
261 pub mime: ::prost::alloc::string::String,
262 #[prost(string, tag="2")]
263 pub fmtp_line: ::prost::alloc::string::String,
264}
265#[allow(clippy::derive_partial_eq_without_eq)]
266#[derive(Clone, PartialEq, ::prost::Message)]
267pub struct PlayoutDelay {
268 #[prost(bool, tag="1")]
269 pub enabled: bool,
270 #[prost(uint32, tag="2")]
271 pub min: u32,
272 #[prost(uint32, tag="3")]
273 pub max: u32,
274}
275#[allow(clippy::derive_partial_eq_without_eq)]
276#[derive(Clone, PartialEq, ::prost::Message)]
277pub struct ParticipantPermission {
278 #[prost(bool, tag="1")]
280 pub can_subscribe: bool,
281 #[prost(bool, tag="2")]
283 pub can_publish: bool,
284 #[prost(bool, tag="3")]
286 pub can_publish_data: bool,
287 #[prost(enumeration="TrackSource", repeated, tag="9")]
289 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
290 #[prost(bool, tag="7")]
292 pub hidden: bool,
293 #[deprecated]
296 #[prost(bool, tag="8")]
297 pub recorder: bool,
298 #[prost(bool, tag="10")]
300 pub can_update_metadata: bool,
301 #[deprecated]
304 #[prost(bool, tag="11")]
305 pub agent: bool,
306 #[prost(bool, tag="12")]
308 pub can_subscribe_metrics: bool,
309}
310#[allow(clippy::derive_partial_eq_without_eq)]
311#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct ParticipantInfo {
313 #[prost(string, tag="1")]
314 pub sid: ::prost::alloc::string::String,
315 #[prost(string, tag="2")]
316 pub identity: ::prost::alloc::string::String,
317 #[prost(enumeration="participant_info::State", tag="3")]
318 pub state: i32,
319 #[prost(message, repeated, tag="4")]
320 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
321 #[prost(string, tag="5")]
322 pub metadata: ::prost::alloc::string::String,
323 #[prost(int64, tag="6")]
325 pub joined_at: i64,
326 #[prost(int64, tag="17")]
328 pub joined_at_ms: i64,
329 #[prost(string, tag="9")]
330 pub name: ::prost::alloc::string::String,
331 #[prost(uint32, tag="10")]
332 pub version: u32,
333 #[prost(message, optional, tag="11")]
334 pub permission: ::core::option::Option<ParticipantPermission>,
335 #[prost(string, tag="12")]
336 pub region: ::prost::alloc::string::String,
337 #[prost(bool, tag="13")]
340 pub is_publisher: bool,
341 #[prost(enumeration="participant_info::Kind", tag="14")]
342 pub kind: i32,
343 #[prost(map="string, string", tag="15")]
344 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
345 #[prost(enumeration="DisconnectReason", tag="16")]
346 pub disconnect_reason: i32,
347 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
348 pub kind_details: ::prost::alloc::vec::Vec<i32>,
349}
350pub mod participant_info {
352 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
353 #[repr(i32)]
354 pub enum State {
355 Joining = 0,
357 Joined = 1,
359 Active = 2,
361 Disconnected = 3,
363 }
364 impl State {
365 pub fn as_str_name(&self) -> &'static str {
370 match self {
371 State::Joining => "JOINING",
372 State::Joined => "JOINED",
373 State::Active => "ACTIVE",
374 State::Disconnected => "DISCONNECTED",
375 }
376 }
377 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
379 match value {
380 "JOINING" => Some(Self::Joining),
381 "JOINED" => Some(Self::Joined),
382 "ACTIVE" => Some(Self::Active),
383 "DISCONNECTED" => Some(Self::Disconnected),
384 _ => None,
385 }
386 }
387 }
388 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
389 #[repr(i32)]
390 pub enum Kind {
391 Standard = 0,
393 Ingress = 1,
395 Egress = 2,
397 Sip = 3,
399 Agent = 4,
401 }
402 impl Kind {
403 pub fn as_str_name(&self) -> &'static str {
408 match self {
409 Kind::Standard => "STANDARD",
410 Kind::Ingress => "INGRESS",
411 Kind::Egress => "EGRESS",
412 Kind::Sip => "SIP",
413 Kind::Agent => "AGENT",
414 }
415 }
416 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
418 match value {
419 "STANDARD" => Some(Self::Standard),
420 "INGRESS" => Some(Self::Ingress),
421 "EGRESS" => Some(Self::Egress),
422 "SIP" => Some(Self::Sip),
423 "AGENT" => Some(Self::Agent),
424 _ => None,
425 }
426 }
427 }
428 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
429 #[repr(i32)]
430 pub enum KindDetail {
431 CloudAgent = 0,
432 Forwarded = 1,
433 }
434 impl KindDetail {
435 pub fn as_str_name(&self) -> &'static str {
440 match self {
441 KindDetail::CloudAgent => "CLOUD_AGENT",
442 KindDetail::Forwarded => "FORWARDED",
443 }
444 }
445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
447 match value {
448 "CLOUD_AGENT" => Some(Self::CloudAgent),
449 "FORWARDED" => Some(Self::Forwarded),
450 _ => None,
451 }
452 }
453 }
454}
455#[allow(clippy::derive_partial_eq_without_eq)]
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct Encryption {
458}
459pub mod encryption {
461 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
462 #[repr(i32)]
463 pub enum Type {
464 None = 0,
465 Gcm = 1,
466 Custom = 2,
467 }
468 impl Type {
469 pub fn as_str_name(&self) -> &'static str {
474 match self {
475 Type::None => "NONE",
476 Type::Gcm => "GCM",
477 Type::Custom => "CUSTOM",
478 }
479 }
480 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
482 match value {
483 "NONE" => Some(Self::None),
484 "GCM" => Some(Self::Gcm),
485 "CUSTOM" => Some(Self::Custom),
486 _ => None,
487 }
488 }
489 }
490}
491#[allow(clippy::derive_partial_eq_without_eq)]
492#[derive(Clone, PartialEq, ::prost::Message)]
493pub struct SimulcastCodecInfo {
494 #[prost(string, tag="1")]
495 pub mime_type: ::prost::alloc::string::String,
496 #[prost(string, tag="2")]
497 pub mid: ::prost::alloc::string::String,
498 #[prost(string, tag="3")]
499 pub cid: ::prost::alloc::string::String,
500 #[prost(message, repeated, tag="4")]
501 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
502 #[prost(enumeration="video_layer::Mode", tag="5")]
503 pub video_layer_mode: i32,
504 #[prost(string, tag="6")]
509 pub sdp_cid: ::prost::alloc::string::String,
510}
511#[allow(clippy::derive_partial_eq_without_eq)]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct TrackInfo {
514 #[prost(string, tag="1")]
515 pub sid: ::prost::alloc::string::String,
516 #[prost(enumeration="TrackType", tag="2")]
517 pub r#type: i32,
518 #[prost(string, tag="3")]
519 pub name: ::prost::alloc::string::String,
520 #[prost(bool, tag="4")]
521 pub muted: bool,
522 #[deprecated]
525 #[prost(uint32, tag="5")]
526 pub width: u32,
527 #[deprecated]
529 #[prost(uint32, tag="6")]
530 pub height: u32,
531 #[deprecated]
535 #[prost(bool, tag="7")]
536 pub simulcast: bool,
537 #[deprecated]
541 #[prost(bool, tag="8")]
542 pub disable_dtx: bool,
543 #[prost(enumeration="TrackSource", tag="9")]
545 pub source: i32,
546 #[deprecated]
548 #[prost(message, repeated, tag="10")]
549 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
550 #[prost(string, tag="11")]
552 pub mime_type: ::prost::alloc::string::String,
553 #[prost(string, tag="12")]
554 pub mid: ::prost::alloc::string::String,
555 #[prost(message, repeated, tag="13")]
556 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
557 #[deprecated]
559 #[prost(bool, tag="14")]
560 pub stereo: bool,
561 #[prost(bool, tag="15")]
563 pub disable_red: bool,
564 #[prost(enumeration="encryption::Type", tag="16")]
565 pub encryption: i32,
566 #[prost(string, tag="17")]
567 pub stream: ::prost::alloc::string::String,
568 #[prost(message, optional, tag="18")]
569 pub version: ::core::option::Option<TimedVersion>,
570 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
571 pub audio_features: ::prost::alloc::vec::Vec<i32>,
572 #[prost(enumeration="BackupCodecPolicy", tag="20")]
573 pub backup_codec_policy: i32,
574}
575#[allow(clippy::derive_partial_eq_without_eq)]
577#[derive(Clone, PartialEq, ::prost::Message)]
578pub struct VideoLayer {
579 #[prost(enumeration="VideoQuality", tag="1")]
581 pub quality: i32,
582 #[prost(uint32, tag="2")]
583 pub width: u32,
584 #[prost(uint32, tag="3")]
585 pub height: u32,
586 #[prost(uint32, tag="4")]
588 pub bitrate: u32,
589 #[prost(uint32, tag="5")]
590 pub ssrc: u32,
591 #[prost(int32, tag="6")]
592 pub spatial_layer: i32,
593 #[prost(string, tag="7")]
594 pub rid: ::prost::alloc::string::String,
595}
596pub mod video_layer {
598 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
599 #[repr(i32)]
600 pub enum Mode {
601 Unused = 0,
602 OneSpatialLayerPerStream = 1,
603 MultipleSpatialLayersPerStream = 2,
604 }
605 impl Mode {
606 pub fn as_str_name(&self) -> &'static str {
611 match self {
612 Mode::Unused => "MODE_UNUSED",
613 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
614 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
615 }
616 }
617 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
619 match value {
620 "MODE_UNUSED" => Some(Self::Unused),
621 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
622 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
623 _ => None,
624 }
625 }
626 }
627}
628#[allow(clippy::derive_partial_eq_without_eq)]
630#[derive(Clone, PartialEq, ::prost::Message)]
631pub struct DataPacket {
632 #[deprecated]
633 #[prost(enumeration="data_packet::Kind", tag="1")]
634 pub kind: i32,
635 #[prost(string, tag="4")]
637 pub participant_identity: ::prost::alloc::string::String,
638 #[prost(string, repeated, tag="5")]
640 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
641 #[prost(uint32, tag="16")]
643 pub sequence: u32,
644 #[prost(string, tag="17")]
646 pub participant_sid: ::prost::alloc::string::String,
647 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
648 pub value: ::core::option::Option<data_packet::Value>,
649}
650pub mod data_packet {
652 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
653 #[repr(i32)]
654 pub enum Kind {
655 Reliable = 0,
656 Lossy = 1,
657 }
658 impl Kind {
659 pub fn as_str_name(&self) -> &'static str {
664 match self {
665 Kind::Reliable => "RELIABLE",
666 Kind::Lossy => "LOSSY",
667 }
668 }
669 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
671 match value {
672 "RELIABLE" => Some(Self::Reliable),
673 "LOSSY" => Some(Self::Lossy),
674 _ => None,
675 }
676 }
677 }
678 #[allow(clippy::derive_partial_eq_without_eq)]
679#[derive(Clone, PartialEq, ::prost::Oneof)]
680 pub enum Value {
681 #[prost(message, tag="2")]
682 User(super::UserPacket),
683 #[prost(message, tag="3")]
684 Speaker(super::ActiveSpeakerUpdate),
685 #[prost(message, tag="6")]
686 SipDtmf(super::SipDtmf),
687 #[prost(message, tag="7")]
688 Transcription(super::Transcription),
689 #[prost(message, tag="8")]
690 Metrics(super::MetricsBatch),
691 #[prost(message, tag="9")]
692 ChatMessage(super::ChatMessage),
693 #[prost(message, tag="10")]
694 RpcRequest(super::RpcRequest),
695 #[prost(message, tag="11")]
696 RpcAck(super::RpcAck),
697 #[prost(message, tag="12")]
698 RpcResponse(super::RpcResponse),
699 #[prost(message, tag="13")]
700 StreamHeader(super::data_stream::Header),
701 #[prost(message, tag="14")]
702 StreamChunk(super::data_stream::Chunk),
703 #[prost(message, tag="15")]
704 StreamTrailer(super::data_stream::Trailer),
705 #[prost(message, tag="18")]
706 EncryptedPacket(super::EncryptedPacket),
707 }
708}
709#[allow(clippy::derive_partial_eq_without_eq)]
710#[derive(Clone, PartialEq, ::prost::Message)]
711pub struct EncryptedPacket {
712 #[prost(enumeration="encryption::Type", tag="1")]
713 pub encryption_type: i32,
714 #[prost(bytes="vec", tag="2")]
715 pub iv: ::prost::alloc::vec::Vec<u8>,
716 #[prost(uint32, tag="3")]
717 pub key_index: u32,
718 #[prost(bytes="vec", tag="4")]
720 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
721}
722#[allow(clippy::derive_partial_eq_without_eq)]
723#[derive(Clone, PartialEq, ::prost::Message)]
724pub struct EncryptedPacketPayload {
725 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
726 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
727}
728pub mod encrypted_packet_payload {
730 #[allow(clippy::derive_partial_eq_without_eq)]
731#[derive(Clone, PartialEq, ::prost::Oneof)]
732 pub enum Value {
733 #[prost(message, tag="1")]
734 User(super::UserPacket),
735 #[prost(message, tag="3")]
736 ChatMessage(super::ChatMessage),
737 #[prost(message, tag="4")]
738 RpcRequest(super::RpcRequest),
739 #[prost(message, tag="5")]
740 RpcAck(super::RpcAck),
741 #[prost(message, tag="6")]
742 RpcResponse(super::RpcResponse),
743 #[prost(message, tag="7")]
744 StreamHeader(super::data_stream::Header),
745 #[prost(message, tag="8")]
746 StreamChunk(super::data_stream::Chunk),
747 #[prost(message, tag="9")]
748 StreamTrailer(super::data_stream::Trailer),
749 }
750}
751#[allow(clippy::derive_partial_eq_without_eq)]
752#[derive(Clone, PartialEq, ::prost::Message)]
753pub struct ActiveSpeakerUpdate {
754 #[prost(message, repeated, tag="1")]
755 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
756}
757#[allow(clippy::derive_partial_eq_without_eq)]
758#[derive(Clone, PartialEq, ::prost::Message)]
759pub struct SpeakerInfo {
760 #[prost(string, tag="1")]
761 pub sid: ::prost::alloc::string::String,
762 #[prost(float, tag="2")]
764 pub level: f32,
765 #[prost(bool, tag="3")]
767 pub active: bool,
768}
769#[allow(clippy::derive_partial_eq_without_eq)]
770#[derive(Clone, PartialEq, ::prost::Message)]
771pub struct UserPacket {
772 #[deprecated]
774 #[prost(string, tag="1")]
775 pub participant_sid: ::prost::alloc::string::String,
776 #[deprecated]
777 #[prost(string, tag="5")]
778 pub participant_identity: ::prost::alloc::string::String,
779 #[prost(bytes="vec", tag="2")]
781 pub payload: ::prost::alloc::vec::Vec<u8>,
782 #[deprecated]
784 #[prost(string, repeated, tag="3")]
785 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
786 #[deprecated]
788 #[prost(string, repeated, tag="6")]
789 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
790 #[prost(string, optional, tag="4")]
792 pub topic: ::core::option::Option<::prost::alloc::string::String>,
793 #[prost(string, optional, tag="8")]
795 pub id: ::core::option::Option<::prost::alloc::string::String>,
796 #[prost(uint64, optional, tag="9")]
798 pub start_time: ::core::option::Option<u64>,
799 #[prost(uint64, optional, tag="10")]
800 pub end_time: ::core::option::Option<u64>,
801 #[prost(bytes="vec", tag="11")]
803 pub nonce: ::prost::alloc::vec::Vec<u8>,
804}
805#[allow(clippy::derive_partial_eq_without_eq)]
806#[derive(Clone, PartialEq, ::prost::Message)]
807pub struct SipDtmf {
808 #[prost(uint32, tag="3")]
809 pub code: u32,
810 #[prost(string, tag="4")]
811 pub digit: ::prost::alloc::string::String,
812}
813#[allow(clippy::derive_partial_eq_without_eq)]
814#[derive(Clone, PartialEq, ::prost::Message)]
815pub struct Transcription {
816 #[prost(string, tag="2")]
818 pub transcribed_participant_identity: ::prost::alloc::string::String,
819 #[prost(string, tag="3")]
820 pub track_id: ::prost::alloc::string::String,
821 #[prost(message, repeated, tag="4")]
822 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
823}
824#[allow(clippy::derive_partial_eq_without_eq)]
825#[derive(Clone, PartialEq, ::prost::Message)]
826pub struct TranscriptionSegment {
827 #[prost(string, tag="1")]
828 pub id: ::prost::alloc::string::String,
829 #[prost(string, tag="2")]
830 pub text: ::prost::alloc::string::String,
831 #[prost(uint64, tag="3")]
832 pub start_time: u64,
833 #[prost(uint64, tag="4")]
834 pub end_time: u64,
835 #[prost(bool, tag="5")]
836 pub r#final: bool,
837 #[prost(string, tag="6")]
838 pub language: ::prost::alloc::string::String,
839}
840#[allow(clippy::derive_partial_eq_without_eq)]
841#[derive(Clone, PartialEq, ::prost::Message)]
842pub struct ChatMessage {
843 #[prost(string, tag="1")]
845 pub id: ::prost::alloc::string::String,
846 #[prost(int64, tag="2")]
847 pub timestamp: i64,
848 #[prost(int64, optional, tag="3")]
850 pub edit_timestamp: ::core::option::Option<i64>,
851 #[prost(string, tag="4")]
852 pub message: ::prost::alloc::string::String,
853 #[prost(bool, tag="5")]
855 pub deleted: bool,
856 #[prost(bool, tag="6")]
858 pub generated: bool,
859}
860#[allow(clippy::derive_partial_eq_without_eq)]
861#[derive(Clone, PartialEq, ::prost::Message)]
862pub struct RpcRequest {
863 #[prost(string, tag="1")]
864 pub id: ::prost::alloc::string::String,
865 #[prost(string, tag="2")]
866 pub method: ::prost::alloc::string::String,
867 #[prost(string, tag="3")]
868 pub payload: ::prost::alloc::string::String,
869 #[prost(uint32, tag="4")]
870 pub response_timeout_ms: u32,
871 #[prost(uint32, tag="5")]
872 pub version: u32,
873}
874#[allow(clippy::derive_partial_eq_without_eq)]
875#[derive(Clone, PartialEq, ::prost::Message)]
876pub struct RpcAck {
877 #[prost(string, tag="1")]
878 pub request_id: ::prost::alloc::string::String,
879}
880#[allow(clippy::derive_partial_eq_without_eq)]
881#[derive(Clone, PartialEq, ::prost::Message)]
882pub struct RpcResponse {
883 #[prost(string, tag="1")]
884 pub request_id: ::prost::alloc::string::String,
885 #[prost(oneof="rpc_response::Value", tags="2, 3")]
886 pub value: ::core::option::Option<rpc_response::Value>,
887}
888pub mod rpc_response {
890 #[allow(clippy::derive_partial_eq_without_eq)]
891#[derive(Clone, PartialEq, ::prost::Oneof)]
892 pub enum Value {
893 #[prost(string, tag="2")]
894 Payload(::prost::alloc::string::String),
895 #[prost(message, tag="3")]
896 Error(super::RpcError),
897 }
898}
899#[allow(clippy::derive_partial_eq_without_eq)]
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct RpcError {
902 #[prost(uint32, tag="1")]
903 pub code: u32,
904 #[prost(string, tag="2")]
905 pub message: ::prost::alloc::string::String,
906 #[prost(string, tag="3")]
907 pub data: ::prost::alloc::string::String,
908}
909#[allow(clippy::derive_partial_eq_without_eq)]
910#[derive(Clone, PartialEq, ::prost::Message)]
911pub struct ParticipantTracks {
912 #[prost(string, tag="1")]
914 pub participant_sid: ::prost::alloc::string::String,
915 #[prost(string, repeated, tag="2")]
916 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
917}
918#[allow(clippy::derive_partial_eq_without_eq)]
920#[derive(Clone, PartialEq, ::prost::Message)]
921pub struct ServerInfo {
922 #[prost(enumeration="server_info::Edition", tag="1")]
923 pub edition: i32,
924 #[prost(string, tag="2")]
925 pub version: ::prost::alloc::string::String,
926 #[prost(int32, tag="3")]
927 pub protocol: i32,
928 #[prost(string, tag="4")]
929 pub region: ::prost::alloc::string::String,
930 #[prost(string, tag="5")]
931 pub node_id: ::prost::alloc::string::String,
932 #[prost(string, tag="6")]
934 pub debug_info: ::prost::alloc::string::String,
935 #[prost(int32, tag="7")]
936 pub agent_protocol: i32,
937}
938pub mod server_info {
940 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
941 #[repr(i32)]
942 pub enum Edition {
943 Standard = 0,
944 Cloud = 1,
945 }
946 impl Edition {
947 pub fn as_str_name(&self) -> &'static str {
952 match self {
953 Edition::Standard => "Standard",
954 Edition::Cloud => "Cloud",
955 }
956 }
957 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
959 match value {
960 "Standard" => Some(Self::Standard),
961 "Cloud" => Some(Self::Cloud),
962 _ => None,
963 }
964 }
965 }
966}
967#[allow(clippy::derive_partial_eq_without_eq)]
969#[derive(Clone, PartialEq, ::prost::Message)]
970pub struct ClientInfo {
971 #[prost(enumeration="client_info::Sdk", tag="1")]
972 pub sdk: i32,
973 #[prost(string, tag="2")]
974 pub version: ::prost::alloc::string::String,
975 #[prost(int32, tag="3")]
976 pub protocol: i32,
977 #[prost(string, tag="4")]
978 pub os: ::prost::alloc::string::String,
979 #[prost(string, tag="5")]
980 pub os_version: ::prost::alloc::string::String,
981 #[prost(string, tag="6")]
982 pub device_model: ::prost::alloc::string::String,
983 #[prost(string, tag="7")]
984 pub browser: ::prost::alloc::string::String,
985 #[prost(string, tag="8")]
986 pub browser_version: ::prost::alloc::string::String,
987 #[prost(string, tag="9")]
988 pub address: ::prost::alloc::string::String,
989 #[prost(string, tag="10")]
991 pub network: ::prost::alloc::string::String,
992 #[prost(string, tag="11")]
995 pub other_sdks: ::prost::alloc::string::String,
996}
997pub mod client_info {
999 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1000 #[repr(i32)]
1001 pub enum Sdk {
1002 Unknown = 0,
1003 Js = 1,
1004 Swift = 2,
1005 Android = 3,
1006 Flutter = 4,
1007 Go = 5,
1008 Unity = 6,
1009 ReactNative = 7,
1010 Rust = 8,
1011 Python = 9,
1012 Cpp = 10,
1013 UnityWeb = 11,
1014 Node = 12,
1015 Unreal = 13,
1016 Esp32 = 14,
1017 }
1018 impl Sdk {
1019 pub fn as_str_name(&self) -> &'static str {
1024 match self {
1025 Sdk::Unknown => "UNKNOWN",
1026 Sdk::Js => "JS",
1027 Sdk::Swift => "SWIFT",
1028 Sdk::Android => "ANDROID",
1029 Sdk::Flutter => "FLUTTER",
1030 Sdk::Go => "GO",
1031 Sdk::Unity => "UNITY",
1032 Sdk::ReactNative => "REACT_NATIVE",
1033 Sdk::Rust => "RUST",
1034 Sdk::Python => "PYTHON",
1035 Sdk::Cpp => "CPP",
1036 Sdk::UnityWeb => "UNITY_WEB",
1037 Sdk::Node => "NODE",
1038 Sdk::Unreal => "UNREAL",
1039 Sdk::Esp32 => "ESP32",
1040 }
1041 }
1042 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1044 match value {
1045 "UNKNOWN" => Some(Self::Unknown),
1046 "JS" => Some(Self::Js),
1047 "SWIFT" => Some(Self::Swift),
1048 "ANDROID" => Some(Self::Android),
1049 "FLUTTER" => Some(Self::Flutter),
1050 "GO" => Some(Self::Go),
1051 "UNITY" => Some(Self::Unity),
1052 "REACT_NATIVE" => Some(Self::ReactNative),
1053 "RUST" => Some(Self::Rust),
1054 "PYTHON" => Some(Self::Python),
1055 "CPP" => Some(Self::Cpp),
1056 "UNITY_WEB" => Some(Self::UnityWeb),
1057 "NODE" => Some(Self::Node),
1058 "UNREAL" => Some(Self::Unreal),
1059 "ESP32" => Some(Self::Esp32),
1060 _ => None,
1061 }
1062 }
1063 }
1064}
1065#[allow(clippy::derive_partial_eq_without_eq)]
1067#[derive(Clone, PartialEq, ::prost::Message)]
1068pub struct ClientConfiguration {
1069 #[prost(message, optional, tag="1")]
1070 pub video: ::core::option::Option<VideoConfiguration>,
1071 #[prost(message, optional, tag="2")]
1072 pub screen: ::core::option::Option<VideoConfiguration>,
1073 #[prost(enumeration="ClientConfigSetting", tag="3")]
1074 pub resume_connection: i32,
1075 #[prost(message, optional, tag="4")]
1076 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1077 #[prost(enumeration="ClientConfigSetting", tag="5")]
1078 pub force_relay: i32,
1079}
1080#[allow(clippy::derive_partial_eq_without_eq)]
1081#[derive(Clone, PartialEq, ::prost::Message)]
1082pub struct VideoConfiguration {
1083 #[prost(enumeration="ClientConfigSetting", tag="1")]
1084 pub hardware_encoder: i32,
1085}
1086#[allow(clippy::derive_partial_eq_without_eq)]
1087#[derive(Clone, PartialEq, ::prost::Message)]
1088pub struct DisabledCodecs {
1089 #[prost(message, repeated, tag="1")]
1091 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1092 #[prost(message, repeated, tag="2")]
1094 pub publish: ::prost::alloc::vec::Vec<Codec>,
1095}
1096#[allow(clippy::derive_partial_eq_without_eq)]
1097#[derive(Clone, PartialEq, ::prost::Message)]
1098pub struct RtpDrift {
1099 #[prost(message, optional, tag="1")]
1100 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1101 #[prost(message, optional, tag="2")]
1102 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1103 #[prost(double, tag="3")]
1104 pub duration: f64,
1105 #[prost(uint64, tag="4")]
1106 pub start_timestamp: u64,
1107 #[prost(uint64, tag="5")]
1108 pub end_timestamp: u64,
1109 #[prost(uint64, tag="6")]
1110 pub rtp_clock_ticks: u64,
1111 #[prost(int64, tag="7")]
1112 pub drift_samples: i64,
1113 #[prost(double, tag="8")]
1114 pub drift_ms: f64,
1115 #[prost(double, tag="9")]
1116 pub clock_rate: f64,
1117}
1118#[allow(clippy::derive_partial_eq_without_eq)]
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct RtpStats {
1121 #[prost(message, optional, tag="1")]
1122 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1123 #[prost(message, optional, tag="2")]
1124 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1125 #[prost(double, tag="3")]
1126 pub duration: f64,
1127 #[prost(uint32, tag="4")]
1128 pub packets: u32,
1129 #[prost(double, tag="5")]
1130 pub packet_rate: f64,
1131 #[prost(uint64, tag="6")]
1132 pub bytes: u64,
1133 #[prost(uint64, tag="39")]
1134 pub header_bytes: u64,
1135 #[prost(double, tag="7")]
1136 pub bitrate: f64,
1137 #[prost(uint32, tag="8")]
1138 pub packets_lost: u32,
1139 #[prost(double, tag="9")]
1140 pub packet_loss_rate: f64,
1141 #[prost(float, tag="10")]
1142 pub packet_loss_percentage: f32,
1143 #[prost(uint32, tag="11")]
1144 pub packets_duplicate: u32,
1145 #[prost(double, tag="12")]
1146 pub packet_duplicate_rate: f64,
1147 #[prost(uint64, tag="13")]
1148 pub bytes_duplicate: u64,
1149 #[prost(uint64, tag="40")]
1150 pub header_bytes_duplicate: u64,
1151 #[prost(double, tag="14")]
1152 pub bitrate_duplicate: f64,
1153 #[prost(uint32, tag="15")]
1154 pub packets_padding: u32,
1155 #[prost(double, tag="16")]
1156 pub packet_padding_rate: f64,
1157 #[prost(uint64, tag="17")]
1158 pub bytes_padding: u64,
1159 #[prost(uint64, tag="41")]
1160 pub header_bytes_padding: u64,
1161 #[prost(double, tag="18")]
1162 pub bitrate_padding: f64,
1163 #[prost(uint32, tag="19")]
1164 pub packets_out_of_order: u32,
1165 #[prost(uint32, tag="20")]
1166 pub frames: u32,
1167 #[prost(double, tag="21")]
1168 pub frame_rate: f64,
1169 #[prost(double, tag="22")]
1170 pub jitter_current: f64,
1171 #[prost(double, tag="23")]
1172 pub jitter_max: f64,
1173 #[prost(map="int32, uint32", tag="24")]
1174 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1175 #[prost(uint32, tag="25")]
1176 pub nacks: u32,
1177 #[prost(uint32, tag="37")]
1178 pub nack_acks: u32,
1179 #[prost(uint32, tag="26")]
1180 pub nack_misses: u32,
1181 #[prost(uint32, tag="38")]
1182 pub nack_repeated: u32,
1183 #[prost(uint32, tag="27")]
1184 pub plis: u32,
1185 #[prost(message, optional, tag="28")]
1186 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1187 #[prost(uint32, tag="29")]
1188 pub firs: u32,
1189 #[prost(message, optional, tag="30")]
1190 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1191 #[prost(uint32, tag="31")]
1192 pub rtt_current: u32,
1193 #[prost(uint32, tag="32")]
1194 pub rtt_max: u32,
1195 #[prost(uint32, tag="33")]
1196 pub key_frames: u32,
1197 #[prost(message, optional, tag="34")]
1198 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1199 #[prost(uint32, tag="35")]
1200 pub layer_lock_plis: u32,
1201 #[prost(message, optional, tag="36")]
1202 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1203 #[prost(message, optional, tag="44")]
1204 pub packet_drift: ::core::option::Option<RtpDrift>,
1205 #[prost(message, optional, tag="45")]
1206 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1207 #[prost(message, optional, tag="46")]
1208 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1209 #[prost(message, optional, tag="47")]
1211 pub received_report_drift: ::core::option::Option<RtpDrift>,
1212}
1213#[allow(clippy::derive_partial_eq_without_eq)]
1214#[derive(Clone, PartialEq, ::prost::Message)]
1215pub struct RtcpSenderReportState {
1216 #[prost(uint32, tag="1")]
1217 pub rtp_timestamp: u32,
1218 #[prost(uint64, tag="2")]
1219 pub rtp_timestamp_ext: u64,
1220 #[prost(uint64, tag="3")]
1221 pub ntp_timestamp: u64,
1222 #[prost(int64, tag="4")]
1224 pub at: i64,
1225 #[prost(int64, tag="5")]
1226 pub at_adjusted: i64,
1227 #[prost(uint32, tag="6")]
1228 pub packets: u32,
1229 #[prost(uint64, tag="7")]
1230 pub octets: u64,
1231}
1232#[allow(clippy::derive_partial_eq_without_eq)]
1233#[derive(Clone, PartialEq, ::prost::Message)]
1234pub struct RtpForwarderState {
1235 #[prost(bool, tag="1")]
1236 pub started: bool,
1237 #[prost(int32, tag="2")]
1238 pub reference_layer_spatial: i32,
1239 #[prost(int64, tag="3")]
1240 pub pre_start_time: i64,
1241 #[prost(uint64, tag="4")]
1242 pub ext_first_timestamp: u64,
1243 #[prost(uint64, tag="5")]
1244 pub dummy_start_timestamp_offset: u64,
1245 #[prost(message, optional, tag="6")]
1246 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1247 #[prost(message, repeated, tag="8")]
1248 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1249 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1250 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1251}
1252pub mod rtp_forwarder_state {
1254 #[allow(clippy::derive_partial_eq_without_eq)]
1255#[derive(Clone, PartialEq, ::prost::Oneof)]
1256 pub enum CodecMunger {
1257 #[prost(message, tag="7")]
1258 Vp8Munger(super::Vp8MungerState),
1259 }
1260}
1261#[allow(clippy::derive_partial_eq_without_eq)]
1262#[derive(Clone, PartialEq, ::prost::Message)]
1263pub struct RtpMungerState {
1264 #[prost(uint64, tag="1")]
1265 pub ext_last_sequence_number: u64,
1266 #[prost(uint64, tag="2")]
1267 pub ext_second_last_sequence_number: u64,
1268 #[prost(uint64, tag="3")]
1269 pub ext_last_timestamp: u64,
1270 #[prost(uint64, tag="4")]
1271 pub ext_second_last_timestamp: u64,
1272 #[prost(bool, tag="5")]
1273 pub last_marker: bool,
1274 #[prost(bool, tag="6")]
1275 pub second_last_marker: bool,
1276}
1277#[allow(clippy::derive_partial_eq_without_eq)]
1278#[derive(Clone, PartialEq, ::prost::Message)]
1279pub struct Vp8MungerState {
1280 #[prost(int32, tag="1")]
1281 pub ext_last_picture_id: i32,
1282 #[prost(bool, tag="2")]
1283 pub picture_id_used: bool,
1284 #[prost(uint32, tag="3")]
1285 pub last_tl0_pic_idx: u32,
1286 #[prost(bool, tag="4")]
1287 pub tl0_pic_idx_used: bool,
1288 #[prost(bool, tag="5")]
1289 pub tid_used: bool,
1290 #[prost(uint32, tag="6")]
1291 pub last_key_idx: u32,
1292 #[prost(bool, tag="7")]
1293 pub key_idx_used: bool,
1294}
1295#[allow(clippy::derive_partial_eq_without_eq)]
1296#[derive(Clone, PartialEq, ::prost::Message)]
1297pub struct TimedVersion {
1298 #[prost(int64, tag="1")]
1299 pub unix_micro: i64,
1300 #[prost(int32, tag="2")]
1301 pub ticks: i32,
1302}
1303#[allow(clippy::derive_partial_eq_without_eq)]
1304#[derive(Clone, PartialEq, ::prost::Message)]
1305pub struct DataStream {
1306}
1307pub mod data_stream {
1309 #[allow(clippy::derive_partial_eq_without_eq)]
1311#[derive(Clone, PartialEq, ::prost::Message)]
1312 pub struct TextHeader {
1313 #[prost(enumeration="OperationType", tag="1")]
1314 pub operation_type: i32,
1315 #[prost(int32, tag="2")]
1317 pub version: i32,
1318 #[prost(string, tag="3")]
1320 pub reply_to_stream_id: ::prost::alloc::string::String,
1321 #[prost(string, repeated, tag="4")]
1323 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1324 #[prost(bool, tag="5")]
1326 pub generated: bool,
1327 }
1328 #[allow(clippy::derive_partial_eq_without_eq)]
1330#[derive(Clone, PartialEq, ::prost::Message)]
1331 pub struct ByteHeader {
1332 #[prost(string, tag="1")]
1333 pub name: ::prost::alloc::string::String,
1334 }
1335 #[allow(clippy::derive_partial_eq_without_eq)]
1337#[derive(Clone, PartialEq, ::prost::Message)]
1338 pub struct Header {
1339 #[prost(string, tag="1")]
1341 pub stream_id: ::prost::alloc::string::String,
1342 #[prost(int64, tag="2")]
1344 pub timestamp: i64,
1345 #[prost(string, tag="3")]
1346 pub topic: ::prost::alloc::string::String,
1347 #[prost(string, tag="4")]
1348 pub mime_type: ::prost::alloc::string::String,
1349 #[prost(uint64, optional, tag="5")]
1351 pub total_length: ::core::option::Option<u64>,
1352 #[deprecated]
1354 #[prost(enumeration="super::encryption::Type", tag="7")]
1355 pub encryption_type: i32,
1356 #[prost(map="string, string", tag="8")]
1358 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1359 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1361 pub content_header: ::core::option::Option<header::ContentHeader>,
1362 }
1363 pub mod header {
1365 #[allow(clippy::derive_partial_eq_without_eq)]
1367#[derive(Clone, PartialEq, ::prost::Oneof)]
1368 pub enum ContentHeader {
1369 #[prost(message, tag="9")]
1370 TextHeader(super::TextHeader),
1371 #[prost(message, tag="10")]
1372 ByteHeader(super::ByteHeader),
1373 }
1374 }
1375 #[allow(clippy::derive_partial_eq_without_eq)]
1376#[derive(Clone, PartialEq, ::prost::Message)]
1377 pub struct Chunk {
1378 #[prost(string, tag="1")]
1380 pub stream_id: ::prost::alloc::string::String,
1381 #[prost(uint64, tag="2")]
1382 pub chunk_index: u64,
1383 #[prost(bytes="vec", tag="3")]
1385 pub content: ::prost::alloc::vec::Vec<u8>,
1386 #[prost(int32, tag="4")]
1388 pub version: i32,
1389 #[deprecated]
1391 #[prost(bytes="vec", optional, tag="5")]
1392 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1393 }
1394 #[allow(clippy::derive_partial_eq_without_eq)]
1395#[derive(Clone, PartialEq, ::prost::Message)]
1396 pub struct Trailer {
1397 #[prost(string, tag="1")]
1399 pub stream_id: ::prost::alloc::string::String,
1400 #[prost(string, tag="2")]
1402 pub reason: ::prost::alloc::string::String,
1403 #[prost(map="string, string", tag="3")]
1405 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1406 }
1407 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1409 #[repr(i32)]
1410 pub enum OperationType {
1411 Create = 0,
1412 Update = 1,
1413 Delete = 2,
1414 Reaction = 3,
1415 }
1416 impl OperationType {
1417 pub fn as_str_name(&self) -> &'static str {
1422 match self {
1423 OperationType::Create => "CREATE",
1424 OperationType::Update => "UPDATE",
1425 OperationType::Delete => "DELETE",
1426 OperationType::Reaction => "REACTION",
1427 }
1428 }
1429 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1431 match value {
1432 "CREATE" => Some(Self::Create),
1433 "UPDATE" => Some(Self::Update),
1434 "DELETE" => Some(Self::Delete),
1435 "REACTION" => Some(Self::Reaction),
1436 _ => None,
1437 }
1438 }
1439 }
1440}
1441#[allow(clippy::derive_partial_eq_without_eq)]
1442#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct WebhookConfig {
1444 #[prost(string, tag="1")]
1445 pub url: ::prost::alloc::string::String,
1446 #[prost(string, tag="2")]
1447 pub signing_key: ::prost::alloc::string::String,
1448}
1449#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1450#[repr(i32)]
1451pub enum AudioCodec {
1452 DefaultAc = 0,
1453 Opus = 1,
1454 Aac = 2,
1455}
1456impl AudioCodec {
1457 pub fn as_str_name(&self) -> &'static str {
1462 match self {
1463 AudioCodec::DefaultAc => "DEFAULT_AC",
1464 AudioCodec::Opus => "OPUS",
1465 AudioCodec::Aac => "AAC",
1466 }
1467 }
1468 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1470 match value {
1471 "DEFAULT_AC" => Some(Self::DefaultAc),
1472 "OPUS" => Some(Self::Opus),
1473 "AAC" => Some(Self::Aac),
1474 _ => None,
1475 }
1476 }
1477}
1478#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1479#[repr(i32)]
1480pub enum VideoCodec {
1481 DefaultVc = 0,
1482 H264Baseline = 1,
1483 H264Main = 2,
1484 H264High = 3,
1485 Vp8 = 4,
1486}
1487impl VideoCodec {
1488 pub fn as_str_name(&self) -> &'static str {
1493 match self {
1494 VideoCodec::DefaultVc => "DEFAULT_VC",
1495 VideoCodec::H264Baseline => "H264_BASELINE",
1496 VideoCodec::H264Main => "H264_MAIN",
1497 VideoCodec::H264High => "H264_HIGH",
1498 VideoCodec::Vp8 => "VP8",
1499 }
1500 }
1501 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1503 match value {
1504 "DEFAULT_VC" => Some(Self::DefaultVc),
1505 "H264_BASELINE" => Some(Self::H264Baseline),
1506 "H264_MAIN" => Some(Self::H264Main),
1507 "H264_HIGH" => Some(Self::H264High),
1508 "VP8" => Some(Self::Vp8),
1509 _ => None,
1510 }
1511 }
1512}
1513#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1514#[repr(i32)]
1515pub enum ImageCodec {
1516 IcDefault = 0,
1517 IcJpeg = 1,
1518}
1519impl ImageCodec {
1520 pub fn as_str_name(&self) -> &'static str {
1525 match self {
1526 ImageCodec::IcDefault => "IC_DEFAULT",
1527 ImageCodec::IcJpeg => "IC_JPEG",
1528 }
1529 }
1530 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1532 match value {
1533 "IC_DEFAULT" => Some(Self::IcDefault),
1534 "IC_JPEG" => Some(Self::IcJpeg),
1535 _ => None,
1536 }
1537 }
1538}
1539#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1541#[repr(i32)]
1542pub enum BackupCodecPolicy {
1543 PreferRegression = 0,
1546 Simulcast = 1,
1548 Regression = 2,
1550}
1551impl BackupCodecPolicy {
1552 pub fn as_str_name(&self) -> &'static str {
1557 match self {
1558 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1559 BackupCodecPolicy::Simulcast => "SIMULCAST",
1560 BackupCodecPolicy::Regression => "REGRESSION",
1561 }
1562 }
1563 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1565 match value {
1566 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1567 "SIMULCAST" => Some(Self::Simulcast),
1568 "REGRESSION" => Some(Self::Regression),
1569 _ => None,
1570 }
1571 }
1572}
1573#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1574#[repr(i32)]
1575pub enum TrackType {
1576 Audio = 0,
1577 Video = 1,
1578 Data = 2,
1579}
1580impl TrackType {
1581 pub fn as_str_name(&self) -> &'static str {
1586 match self {
1587 TrackType::Audio => "AUDIO",
1588 TrackType::Video => "VIDEO",
1589 TrackType::Data => "DATA",
1590 }
1591 }
1592 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1594 match value {
1595 "AUDIO" => Some(Self::Audio),
1596 "VIDEO" => Some(Self::Video),
1597 "DATA" => Some(Self::Data),
1598 _ => None,
1599 }
1600 }
1601}
1602#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1603#[repr(i32)]
1604pub enum TrackSource {
1605 Unknown = 0,
1606 Camera = 1,
1607 Microphone = 2,
1608 ScreenShare = 3,
1609 ScreenShareAudio = 4,
1610}
1611impl TrackSource {
1612 pub fn as_str_name(&self) -> &'static str {
1617 match self {
1618 TrackSource::Unknown => "UNKNOWN",
1619 TrackSource::Camera => "CAMERA",
1620 TrackSource::Microphone => "MICROPHONE",
1621 TrackSource::ScreenShare => "SCREEN_SHARE",
1622 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1623 }
1624 }
1625 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1627 match value {
1628 "UNKNOWN" => Some(Self::Unknown),
1629 "CAMERA" => Some(Self::Camera),
1630 "MICROPHONE" => Some(Self::Microphone),
1631 "SCREEN_SHARE" => Some(Self::ScreenShare),
1632 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1633 _ => None,
1634 }
1635 }
1636}
1637#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1638#[repr(i32)]
1639pub enum VideoQuality {
1640 Low = 0,
1641 Medium = 1,
1642 High = 2,
1643 Off = 3,
1644}
1645impl VideoQuality {
1646 pub fn as_str_name(&self) -> &'static str {
1651 match self {
1652 VideoQuality::Low => "LOW",
1653 VideoQuality::Medium => "MEDIUM",
1654 VideoQuality::High => "HIGH",
1655 VideoQuality::Off => "OFF",
1656 }
1657 }
1658 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1660 match value {
1661 "LOW" => Some(Self::Low),
1662 "MEDIUM" => Some(Self::Medium),
1663 "HIGH" => Some(Self::High),
1664 "OFF" => Some(Self::Off),
1665 _ => None,
1666 }
1667 }
1668}
1669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1670#[repr(i32)]
1671pub enum ConnectionQuality {
1672 Poor = 0,
1673 Good = 1,
1674 Excellent = 2,
1675 Lost = 3,
1676}
1677impl ConnectionQuality {
1678 pub fn as_str_name(&self) -> &'static str {
1683 match self {
1684 ConnectionQuality::Poor => "POOR",
1685 ConnectionQuality::Good => "GOOD",
1686 ConnectionQuality::Excellent => "EXCELLENT",
1687 ConnectionQuality::Lost => "LOST",
1688 }
1689 }
1690 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1692 match value {
1693 "POOR" => Some(Self::Poor),
1694 "GOOD" => Some(Self::Good),
1695 "EXCELLENT" => Some(Self::Excellent),
1696 "LOST" => Some(Self::Lost),
1697 _ => None,
1698 }
1699 }
1700}
1701#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1702#[repr(i32)]
1703pub enum ClientConfigSetting {
1704 Unset = 0,
1705 Disabled = 1,
1706 Enabled = 2,
1707}
1708impl ClientConfigSetting {
1709 pub fn as_str_name(&self) -> &'static str {
1714 match self {
1715 ClientConfigSetting::Unset => "UNSET",
1716 ClientConfigSetting::Disabled => "DISABLED",
1717 ClientConfigSetting::Enabled => "ENABLED",
1718 }
1719 }
1720 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1722 match value {
1723 "UNSET" => Some(Self::Unset),
1724 "DISABLED" => Some(Self::Disabled),
1725 "ENABLED" => Some(Self::Enabled),
1726 _ => None,
1727 }
1728 }
1729}
1730#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1731#[repr(i32)]
1732pub enum DisconnectReason {
1733 UnknownReason = 0,
1734 ClientInitiated = 1,
1736 DuplicateIdentity = 2,
1738 ServerShutdown = 3,
1740 ParticipantRemoved = 4,
1742 RoomDeleted = 5,
1744 StateMismatch = 6,
1746 JoinFailure = 7,
1748 Migration = 8,
1750 SignalClose = 9,
1752 RoomClosed = 10,
1754 UserUnavailable = 11,
1756 UserRejected = 12,
1758 SipTrunkFailure = 13,
1760 ConnectionTimeout = 14,
1762 MediaFailure = 15,
1764}
1765impl DisconnectReason {
1766 pub fn as_str_name(&self) -> &'static str {
1771 match self {
1772 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1773 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1774 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1775 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1776 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1777 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1778 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1779 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1780 DisconnectReason::Migration => "MIGRATION",
1781 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1782 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1783 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1784 DisconnectReason::UserRejected => "USER_REJECTED",
1785 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1786 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1787 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1788 }
1789 }
1790 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1792 match value {
1793 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1794 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1795 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1796 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1797 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1798 "ROOM_DELETED" => Some(Self::RoomDeleted),
1799 "STATE_MISMATCH" => Some(Self::StateMismatch),
1800 "JOIN_FAILURE" => Some(Self::JoinFailure),
1801 "MIGRATION" => Some(Self::Migration),
1802 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1803 "ROOM_CLOSED" => Some(Self::RoomClosed),
1804 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1805 "USER_REJECTED" => Some(Self::UserRejected),
1806 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1807 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1808 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1809 _ => None,
1810 }
1811 }
1812}
1813#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1814#[repr(i32)]
1815pub enum ReconnectReason {
1816 RrUnknown = 0,
1817 RrSignalDisconnected = 1,
1818 RrPublisherFailed = 2,
1819 RrSubscriberFailed = 3,
1820 RrSwitchCandidate = 4,
1821}
1822impl ReconnectReason {
1823 pub fn as_str_name(&self) -> &'static str {
1828 match self {
1829 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1830 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1831 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1832 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1833 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1834 }
1835 }
1836 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1838 match value {
1839 "RR_UNKNOWN" => Some(Self::RrUnknown),
1840 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1841 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1842 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1843 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1844 _ => None,
1845 }
1846 }
1847}
1848#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1849#[repr(i32)]
1850pub enum SubscriptionError {
1851 SeUnknown = 0,
1852 SeCodecUnsupported = 1,
1853 SeTrackNotfound = 2,
1854}
1855impl SubscriptionError {
1856 pub fn as_str_name(&self) -> &'static str {
1861 match self {
1862 SubscriptionError::SeUnknown => "SE_UNKNOWN",
1863 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
1864 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
1865 }
1866 }
1867 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1869 match value {
1870 "SE_UNKNOWN" => Some(Self::SeUnknown),
1871 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
1872 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
1873 _ => None,
1874 }
1875 }
1876}
1877#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1878#[repr(i32)]
1879pub enum AudioTrackFeature {
1880 TfStereo = 0,
1881 TfNoDtx = 1,
1882 TfAutoGainControl = 2,
1883 TfEchoCancellation = 3,
1884 TfNoiseSuppression = 4,
1885 TfEnhancedNoiseCancellation = 5,
1886 TfPreconnectBuffer = 6,
1888}
1889impl AudioTrackFeature {
1890 pub fn as_str_name(&self) -> &'static str {
1895 match self {
1896 AudioTrackFeature::TfStereo => "TF_STEREO",
1897 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
1898 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
1899 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
1900 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
1901 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
1902 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
1903 }
1904 }
1905 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1907 match value {
1908 "TF_STEREO" => Some(Self::TfStereo),
1909 "TF_NO_DTX" => Some(Self::TfNoDtx),
1910 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
1911 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
1912 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
1913 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
1914 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
1915 _ => None,
1916 }
1917 }
1918}
1919#[allow(clippy::derive_partial_eq_without_eq)]
1921#[derive(Clone, PartialEq, ::prost::Message)]
1922pub struct RoomCompositeEgressRequest {
1923 #[prost(string, tag="1")]
1925 pub room_name: ::prost::alloc::string::String,
1926 #[prost(string, tag="2")]
1928 pub layout: ::prost::alloc::string::String,
1929 #[prost(bool, tag="3")]
1931 pub audio_only: bool,
1932 #[prost(enumeration="AudioMixing", tag="15")]
1934 pub audio_mixing: i32,
1935 #[prost(bool, tag="4")]
1937 pub video_only: bool,
1938 #[prost(string, tag="5")]
1940 pub custom_base_url: ::prost::alloc::string::String,
1941 #[prost(message, repeated, tag="11")]
1942 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1943 #[prost(message, repeated, tag="12")]
1944 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1945 #[prost(message, repeated, tag="13")]
1946 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1947 #[prost(message, repeated, tag="14")]
1948 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1949 #[prost(message, repeated, tag="16")]
1951 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1952 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
1954 pub output: ::core::option::Option<room_composite_egress_request::Output>,
1955 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
1956 pub options: ::core::option::Option<room_composite_egress_request::Options>,
1957}
1958pub mod room_composite_egress_request {
1960 #[allow(clippy::derive_partial_eq_without_eq)]
1962#[derive(Clone, PartialEq, ::prost::Oneof)]
1963 pub enum Output {
1964 #[prost(message, tag="6")]
1965 File(super::EncodedFileOutput),
1966 #[prost(message, tag="7")]
1967 Stream(super::StreamOutput),
1968 #[prost(message, tag="10")]
1969 Segments(super::SegmentedFileOutput),
1970 }
1971 #[allow(clippy::derive_partial_eq_without_eq)]
1972#[derive(Clone, PartialEq, ::prost::Oneof)]
1973 pub enum Options {
1974 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
1976 Preset(i32),
1977 #[prost(message, tag="9")]
1979 Advanced(super::EncodingOptions),
1980 }
1981}
1982#[allow(clippy::derive_partial_eq_without_eq)]
1984#[derive(Clone, PartialEq, ::prost::Message)]
1985pub struct WebEgressRequest {
1986 #[prost(string, tag="1")]
1987 pub url: ::prost::alloc::string::String,
1988 #[prost(bool, tag="2")]
1989 pub audio_only: bool,
1990 #[prost(bool, tag="3")]
1991 pub video_only: bool,
1992 #[prost(bool, tag="12")]
1993 pub await_start_signal: bool,
1994 #[prost(message, repeated, tag="9")]
1995 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1996 #[prost(message, repeated, tag="10")]
1997 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1998 #[prost(message, repeated, tag="11")]
1999 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2000 #[prost(message, repeated, tag="13")]
2001 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2002 #[prost(message, repeated, tag="14")]
2004 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2005 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2007 pub output: ::core::option::Option<web_egress_request::Output>,
2008 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2009 pub options: ::core::option::Option<web_egress_request::Options>,
2010}
2011pub mod web_egress_request {
2013 #[allow(clippy::derive_partial_eq_without_eq)]
2015#[derive(Clone, PartialEq, ::prost::Oneof)]
2016 pub enum Output {
2017 #[prost(message, tag="4")]
2018 File(super::EncodedFileOutput),
2019 #[prost(message, tag="5")]
2020 Stream(super::StreamOutput),
2021 #[prost(message, tag="6")]
2022 Segments(super::SegmentedFileOutput),
2023 }
2024 #[allow(clippy::derive_partial_eq_without_eq)]
2025#[derive(Clone, PartialEq, ::prost::Oneof)]
2026 pub enum Options {
2027 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2028 Preset(i32),
2029 #[prost(message, tag="8")]
2030 Advanced(super::EncodingOptions),
2031 }
2032}
2033#[allow(clippy::derive_partial_eq_without_eq)]
2035#[derive(Clone, PartialEq, ::prost::Message)]
2036pub struct ParticipantEgressRequest {
2037 #[prost(string, tag="1")]
2039 pub room_name: ::prost::alloc::string::String,
2040 #[prost(string, tag="2")]
2042 pub identity: ::prost::alloc::string::String,
2043 #[prost(bool, tag="3")]
2045 pub screen_share: bool,
2046 #[prost(message, repeated, tag="6")]
2047 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2048 #[prost(message, repeated, tag="7")]
2049 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2050 #[prost(message, repeated, tag="8")]
2051 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2052 #[prost(message, repeated, tag="9")]
2053 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2054 #[prost(message, repeated, tag="10")]
2056 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2057 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
2058 pub options: ::core::option::Option<participant_egress_request::Options>,
2059}
2060pub mod participant_egress_request {
2062 #[allow(clippy::derive_partial_eq_without_eq)]
2063#[derive(Clone, PartialEq, ::prost::Oneof)]
2064 pub enum Options {
2065 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
2067 Preset(i32),
2068 #[prost(message, tag="5")]
2070 Advanced(super::EncodingOptions),
2071 }
2072}
2073#[allow(clippy::derive_partial_eq_without_eq)]
2075#[derive(Clone, PartialEq, ::prost::Message)]
2076pub struct TrackCompositeEgressRequest {
2077 #[prost(string, tag="1")]
2079 pub room_name: ::prost::alloc::string::String,
2080 #[prost(string, tag="2")]
2082 pub audio_track_id: ::prost::alloc::string::String,
2083 #[prost(string, tag="3")]
2085 pub video_track_id: ::prost::alloc::string::String,
2086 #[prost(message, repeated, tag="11")]
2087 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2088 #[prost(message, repeated, tag="12")]
2089 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2090 #[prost(message, repeated, tag="13")]
2091 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2092 #[prost(message, repeated, tag="14")]
2093 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2094 #[prost(message, repeated, tag="15")]
2096 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2097 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
2099 pub output: ::core::option::Option<track_composite_egress_request::Output>,
2100 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
2101 pub options: ::core::option::Option<track_composite_egress_request::Options>,
2102}
2103pub mod track_composite_egress_request {
2105 #[allow(clippy::derive_partial_eq_without_eq)]
2107#[derive(Clone, PartialEq, ::prost::Oneof)]
2108 pub enum Output {
2109 #[prost(message, tag="4")]
2110 File(super::EncodedFileOutput),
2111 #[prost(message, tag="5")]
2112 Stream(super::StreamOutput),
2113 #[prost(message, tag="8")]
2114 Segments(super::SegmentedFileOutput),
2115 }
2116 #[allow(clippy::derive_partial_eq_without_eq)]
2117#[derive(Clone, PartialEq, ::prost::Oneof)]
2118 pub enum Options {
2119 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
2121 Preset(i32),
2122 #[prost(message, tag="7")]
2124 Advanced(super::EncodingOptions),
2125 }
2126}
2127#[allow(clippy::derive_partial_eq_without_eq)]
2129#[derive(Clone, PartialEq, ::prost::Message)]
2130pub struct TrackEgressRequest {
2131 #[prost(string, tag="1")]
2133 pub room_name: ::prost::alloc::string::String,
2134 #[prost(string, tag="2")]
2136 pub track_id: ::prost::alloc::string::String,
2137 #[prost(message, repeated, tag="5")]
2139 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2140 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
2142 pub output: ::core::option::Option<track_egress_request::Output>,
2143}
2144pub mod track_egress_request {
2146 #[allow(clippy::derive_partial_eq_without_eq)]
2148#[derive(Clone, PartialEq, ::prost::Oneof)]
2149 pub enum Output {
2150 #[prost(message, tag="3")]
2151 File(super::DirectFileOutput),
2152 #[prost(string, tag="4")]
2153 WebsocketUrl(::prost::alloc::string::String),
2154 }
2155}
2156#[allow(clippy::derive_partial_eq_without_eq)]
2157#[derive(Clone, PartialEq, ::prost::Message)]
2158pub struct EncodedFileOutput {
2159 #[prost(enumeration="EncodedFileType", tag="1")]
2161 pub file_type: i32,
2162 #[prost(string, tag="2")]
2164 pub filepath: ::prost::alloc::string::String,
2165 #[prost(bool, tag="6")]
2167 pub disable_manifest: bool,
2168 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
2169 pub output: ::core::option::Option<encoded_file_output::Output>,
2170}
2171pub mod encoded_file_output {
2173 #[allow(clippy::derive_partial_eq_without_eq)]
2174#[derive(Clone, PartialEq, ::prost::Oneof)]
2175 pub enum Output {
2176 #[prost(message, tag="3")]
2177 S3(super::S3Upload),
2178 #[prost(message, tag="4")]
2179 Gcp(super::GcpUpload),
2180 #[prost(message, tag="5")]
2181 Azure(super::AzureBlobUpload),
2182 #[prost(message, tag="7")]
2183 AliOss(super::AliOssUpload),
2184 }
2185}
2186#[allow(clippy::derive_partial_eq_without_eq)]
2188#[derive(Clone, PartialEq, ::prost::Message)]
2189pub struct SegmentedFileOutput {
2190 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2192 pub protocol: i32,
2193 #[prost(string, tag="2")]
2195 pub filename_prefix: ::prost::alloc::string::String,
2196 #[prost(string, tag="3")]
2198 pub playlist_name: ::prost::alloc::string::String,
2199 #[prost(string, tag="11")]
2201 pub live_playlist_name: ::prost::alloc::string::String,
2202 #[prost(uint32, tag="4")]
2204 pub segment_duration: u32,
2205 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2207 pub filename_suffix: i32,
2208 #[prost(bool, tag="8")]
2210 pub disable_manifest: bool,
2211 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2213 pub output: ::core::option::Option<segmented_file_output::Output>,
2214}
2215pub mod segmented_file_output {
2217 #[allow(clippy::derive_partial_eq_without_eq)]
2219#[derive(Clone, PartialEq, ::prost::Oneof)]
2220 pub enum Output {
2221 #[prost(message, tag="5")]
2222 S3(super::S3Upload),
2223 #[prost(message, tag="6")]
2224 Gcp(super::GcpUpload),
2225 #[prost(message, tag="7")]
2226 Azure(super::AzureBlobUpload),
2227 #[prost(message, tag="9")]
2228 AliOss(super::AliOssUpload),
2229 }
2230}
2231#[allow(clippy::derive_partial_eq_without_eq)]
2232#[derive(Clone, PartialEq, ::prost::Message)]
2233pub struct DirectFileOutput {
2234 #[prost(string, tag="1")]
2236 pub filepath: ::prost::alloc::string::String,
2237 #[prost(bool, tag="5")]
2239 pub disable_manifest: bool,
2240 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2241 pub output: ::core::option::Option<direct_file_output::Output>,
2242}
2243pub mod direct_file_output {
2245 #[allow(clippy::derive_partial_eq_without_eq)]
2246#[derive(Clone, PartialEq, ::prost::Oneof)]
2247 pub enum Output {
2248 #[prost(message, tag="2")]
2249 S3(super::S3Upload),
2250 #[prost(message, tag="3")]
2251 Gcp(super::GcpUpload),
2252 #[prost(message, tag="4")]
2253 Azure(super::AzureBlobUpload),
2254 #[prost(message, tag="6")]
2255 AliOss(super::AliOssUpload),
2256 }
2257}
2258#[allow(clippy::derive_partial_eq_without_eq)]
2259#[derive(Clone, PartialEq, ::prost::Message)]
2260pub struct ImageOutput {
2261 #[prost(uint32, tag="1")]
2263 pub capture_interval: u32,
2264 #[prost(int32, tag="2")]
2266 pub width: i32,
2267 #[prost(int32, tag="3")]
2269 pub height: i32,
2270 #[prost(string, tag="4")]
2272 pub filename_prefix: ::prost::alloc::string::String,
2273 #[prost(enumeration="ImageFileSuffix", tag="5")]
2275 pub filename_suffix: i32,
2276 #[prost(enumeration="ImageCodec", tag="6")]
2278 pub image_codec: i32,
2279 #[prost(bool, tag="7")]
2281 pub disable_manifest: bool,
2282 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2284 pub output: ::core::option::Option<image_output::Output>,
2285}
2286pub mod image_output {
2288 #[allow(clippy::derive_partial_eq_without_eq)]
2290#[derive(Clone, PartialEq, ::prost::Oneof)]
2291 pub enum Output {
2292 #[prost(message, tag="8")]
2293 S3(super::S3Upload),
2294 #[prost(message, tag="9")]
2295 Gcp(super::GcpUpload),
2296 #[prost(message, tag="10")]
2297 Azure(super::AzureBlobUpload),
2298 #[prost(message, tag="11")]
2299 AliOss(super::AliOssUpload),
2300 }
2301}
2302#[allow(clippy::derive_partial_eq_without_eq)]
2303#[derive(Clone, PartialEq, ::prost::Message)]
2304pub struct S3Upload {
2305 #[prost(string, tag="1")]
2306 pub access_key: ::prost::alloc::string::String,
2307 #[prost(string, tag="2")]
2308 pub secret: ::prost::alloc::string::String,
2309 #[prost(string, tag="11")]
2310 pub session_token: ::prost::alloc::string::String,
2311 #[prost(string, tag="12")]
2313 pub assume_role_arn: ::prost::alloc::string::String,
2314 #[prost(string, tag="13")]
2316 pub assume_role_external_id: ::prost::alloc::string::String,
2317 #[prost(string, tag="3")]
2318 pub region: ::prost::alloc::string::String,
2319 #[prost(string, tag="4")]
2320 pub endpoint: ::prost::alloc::string::String,
2321 #[prost(string, tag="5")]
2322 pub bucket: ::prost::alloc::string::String,
2323 #[prost(bool, tag="6")]
2324 pub force_path_style: bool,
2325 #[prost(map="string, string", tag="7")]
2326 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2327 #[prost(string, tag="8")]
2328 pub tagging: ::prost::alloc::string::String,
2329 #[prost(string, tag="9")]
2331 pub content_disposition: ::prost::alloc::string::String,
2332 #[prost(message, optional, tag="10")]
2333 pub proxy: ::core::option::Option<ProxyConfig>,
2334}
2335#[allow(clippy::derive_partial_eq_without_eq)]
2336#[derive(Clone, PartialEq, ::prost::Message)]
2337pub struct GcpUpload {
2338 #[prost(string, tag="1")]
2340 pub credentials: ::prost::alloc::string::String,
2341 #[prost(string, tag="2")]
2342 pub bucket: ::prost::alloc::string::String,
2343 #[prost(message, optional, tag="3")]
2344 pub proxy: ::core::option::Option<ProxyConfig>,
2345}
2346#[allow(clippy::derive_partial_eq_without_eq)]
2347#[derive(Clone, PartialEq, ::prost::Message)]
2348pub struct AzureBlobUpload {
2349 #[prost(string, tag="1")]
2350 pub account_name: ::prost::alloc::string::String,
2351 #[prost(string, tag="2")]
2352 pub account_key: ::prost::alloc::string::String,
2353 #[prost(string, tag="3")]
2354 pub container_name: ::prost::alloc::string::String,
2355}
2356#[allow(clippy::derive_partial_eq_without_eq)]
2357#[derive(Clone, PartialEq, ::prost::Message)]
2358pub struct AliOssUpload {
2359 #[prost(string, tag="1")]
2360 pub access_key: ::prost::alloc::string::String,
2361 #[prost(string, tag="2")]
2362 pub secret: ::prost::alloc::string::String,
2363 #[prost(string, tag="3")]
2364 pub region: ::prost::alloc::string::String,
2365 #[prost(string, tag="4")]
2366 pub endpoint: ::prost::alloc::string::String,
2367 #[prost(string, tag="5")]
2368 pub bucket: ::prost::alloc::string::String,
2369}
2370#[allow(clippy::derive_partial_eq_without_eq)]
2371#[derive(Clone, PartialEq, ::prost::Message)]
2372pub struct ProxyConfig {
2373 #[prost(string, tag="1")]
2374 pub url: ::prost::alloc::string::String,
2375 #[prost(string, tag="2")]
2376 pub username: ::prost::alloc::string::String,
2377 #[prost(string, tag="3")]
2378 pub password: ::prost::alloc::string::String,
2379}
2380#[allow(clippy::derive_partial_eq_without_eq)]
2381#[derive(Clone, PartialEq, ::prost::Message)]
2382pub struct StreamOutput {
2383 #[prost(enumeration="StreamProtocol", tag="1")]
2385 pub protocol: i32,
2386 #[prost(string, repeated, tag="2")]
2388 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2389}
2390#[allow(clippy::derive_partial_eq_without_eq)]
2391#[derive(Clone, PartialEq, ::prost::Message)]
2392pub struct EncodingOptions {
2393 #[prost(int32, tag="1")]
2395 pub width: i32,
2396 #[prost(int32, tag="2")]
2398 pub height: i32,
2399 #[prost(int32, tag="3")]
2401 pub depth: i32,
2402 #[prost(int32, tag="4")]
2404 pub framerate: i32,
2405 #[prost(enumeration="AudioCodec", tag="5")]
2407 pub audio_codec: i32,
2408 #[prost(int32, tag="6")]
2410 pub audio_bitrate: i32,
2411 #[prost(int32, tag="11")]
2413 pub audio_quality: i32,
2414 #[prost(int32, tag="7")]
2416 pub audio_frequency: i32,
2417 #[prost(enumeration="VideoCodec", tag="8")]
2419 pub video_codec: i32,
2420 #[prost(int32, tag="9")]
2422 pub video_bitrate: i32,
2423 #[prost(int32, tag="12")]
2425 pub video_quality: i32,
2426 #[prost(double, tag="10")]
2428 pub key_frame_interval: f64,
2429}
2430#[allow(clippy::derive_partial_eq_without_eq)]
2431#[derive(Clone, PartialEq, ::prost::Message)]
2432pub struct UpdateLayoutRequest {
2433 #[prost(string, tag="1")]
2434 pub egress_id: ::prost::alloc::string::String,
2435 #[prost(string, tag="2")]
2436 pub layout: ::prost::alloc::string::String,
2437}
2438#[allow(clippy::derive_partial_eq_without_eq)]
2439#[derive(Clone, PartialEq, ::prost::Message)]
2440pub struct UpdateStreamRequest {
2441 #[prost(string, tag="1")]
2442 pub egress_id: ::prost::alloc::string::String,
2443 #[prost(string, repeated, tag="2")]
2444 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2445 #[prost(string, repeated, tag="3")]
2446 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2447}
2448#[allow(clippy::derive_partial_eq_without_eq)]
2449#[derive(Clone, PartialEq, ::prost::Message)]
2450pub struct ListEgressRequest {
2451 #[prost(string, tag="1")]
2453 pub room_name: ::prost::alloc::string::String,
2454 #[prost(string, tag="2")]
2456 pub egress_id: ::prost::alloc::string::String,
2457 #[prost(bool, tag="3")]
2459 pub active: bool,
2460}
2461#[allow(clippy::derive_partial_eq_without_eq)]
2462#[derive(Clone, PartialEq, ::prost::Message)]
2463pub struct ListEgressResponse {
2464 #[prost(message, repeated, tag="1")]
2465 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2466}
2467#[allow(clippy::derive_partial_eq_without_eq)]
2468#[derive(Clone, PartialEq, ::prost::Message)]
2469pub struct StopEgressRequest {
2470 #[prost(string, tag="1")]
2471 pub egress_id: ::prost::alloc::string::String,
2472}
2473#[allow(clippy::derive_partial_eq_without_eq)]
2474#[derive(Clone, PartialEq, ::prost::Message)]
2475pub struct EgressInfo {
2476 #[prost(string, tag="1")]
2477 pub egress_id: ::prost::alloc::string::String,
2478 #[prost(string, tag="2")]
2479 pub room_id: ::prost::alloc::string::String,
2480 #[prost(string, tag="13")]
2481 pub room_name: ::prost::alloc::string::String,
2482 #[prost(enumeration="EgressSourceType", tag="26")]
2483 pub source_type: i32,
2484 #[prost(enumeration="EgressStatus", tag="3")]
2485 pub status: i32,
2486 #[prost(int64, tag="10")]
2487 pub started_at: i64,
2488 #[prost(int64, tag="11")]
2489 pub ended_at: i64,
2490 #[prost(int64, tag="18")]
2491 pub updated_at: i64,
2492 #[prost(string, tag="21")]
2493 pub details: ::prost::alloc::string::String,
2494 #[prost(string, tag="9")]
2495 pub error: ::prost::alloc::string::String,
2496 #[prost(int32, tag="22")]
2497 pub error_code: i32,
2498 #[prost(message, repeated, tag="15")]
2499 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2500 #[prost(message, repeated, tag="16")]
2501 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2502 #[prost(message, repeated, tag="17")]
2503 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2504 #[prost(message, repeated, tag="20")]
2505 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2506 #[prost(string, tag="23")]
2507 pub manifest_location: ::prost::alloc::string::String,
2508 #[prost(bool, tag="25")]
2510 pub backup_storage_used: bool,
2511 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2512 pub request: ::core::option::Option<egress_info::Request>,
2513 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2515 pub result: ::core::option::Option<egress_info::Result>,
2516}
2517pub mod egress_info {
2519 #[allow(clippy::derive_partial_eq_without_eq)]
2520#[derive(Clone, PartialEq, ::prost::Oneof)]
2521 pub enum Request {
2522 #[prost(message, tag="4")]
2523 RoomComposite(super::RoomCompositeEgressRequest),
2524 #[prost(message, tag="14")]
2525 Web(super::WebEgressRequest),
2526 #[prost(message, tag="19")]
2527 Participant(super::ParticipantEgressRequest),
2528 #[prost(message, tag="5")]
2529 TrackComposite(super::TrackCompositeEgressRequest),
2530 #[prost(message, tag="6")]
2531 Track(super::TrackEgressRequest),
2532 }
2533 #[allow(clippy::derive_partial_eq_without_eq)]
2535#[derive(Clone, PartialEq, ::prost::Oneof)]
2536 pub enum Result {
2537 #[prost(message, tag="7")]
2538 Stream(super::StreamInfoList),
2539 #[prost(message, tag="8")]
2540 File(super::FileInfo),
2541 #[prost(message, tag="12")]
2542 Segments(super::SegmentsInfo),
2543 }
2544}
2545#[allow(clippy::derive_partial_eq_without_eq)]
2546#[derive(Clone, PartialEq, ::prost::Message)]
2547pub struct StreamInfoList {
2548 #[prost(message, repeated, tag="1")]
2549 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2550}
2551#[allow(clippy::derive_partial_eq_without_eq)]
2552#[derive(Clone, PartialEq, ::prost::Message)]
2553pub struct StreamInfo {
2554 #[prost(string, tag="1")]
2555 pub url: ::prost::alloc::string::String,
2556 #[prost(int64, tag="2")]
2557 pub started_at: i64,
2558 #[prost(int64, tag="3")]
2559 pub ended_at: i64,
2560 #[prost(int64, tag="4")]
2561 pub duration: i64,
2562 #[prost(enumeration="stream_info::Status", tag="5")]
2563 pub status: i32,
2564 #[prost(string, tag="6")]
2565 pub error: ::prost::alloc::string::String,
2566}
2567pub mod stream_info {
2569 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2570 #[repr(i32)]
2571 pub enum Status {
2572 Active = 0,
2573 Finished = 1,
2574 Failed = 2,
2575 }
2576 impl Status {
2577 pub fn as_str_name(&self) -> &'static str {
2582 match self {
2583 Status::Active => "ACTIVE",
2584 Status::Finished => "FINISHED",
2585 Status::Failed => "FAILED",
2586 }
2587 }
2588 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2590 match value {
2591 "ACTIVE" => Some(Self::Active),
2592 "FINISHED" => Some(Self::Finished),
2593 "FAILED" => Some(Self::Failed),
2594 _ => None,
2595 }
2596 }
2597 }
2598}
2599#[allow(clippy::derive_partial_eq_without_eq)]
2600#[derive(Clone, PartialEq, ::prost::Message)]
2601pub struct FileInfo {
2602 #[prost(string, tag="1")]
2603 pub filename: ::prost::alloc::string::String,
2604 #[prost(int64, tag="2")]
2605 pub started_at: i64,
2606 #[prost(int64, tag="3")]
2607 pub ended_at: i64,
2608 #[prost(int64, tag="6")]
2609 pub duration: i64,
2610 #[prost(int64, tag="4")]
2611 pub size: i64,
2612 #[prost(string, tag="5")]
2613 pub location: ::prost::alloc::string::String,
2614}
2615#[allow(clippy::derive_partial_eq_without_eq)]
2616#[derive(Clone, PartialEq, ::prost::Message)]
2617pub struct SegmentsInfo {
2618 #[prost(string, tag="1")]
2619 pub playlist_name: ::prost::alloc::string::String,
2620 #[prost(string, tag="8")]
2621 pub live_playlist_name: ::prost::alloc::string::String,
2622 #[prost(int64, tag="2")]
2623 pub duration: i64,
2624 #[prost(int64, tag="3")]
2625 pub size: i64,
2626 #[prost(string, tag="4")]
2627 pub playlist_location: ::prost::alloc::string::String,
2628 #[prost(string, tag="9")]
2629 pub live_playlist_location: ::prost::alloc::string::String,
2630 #[prost(int64, tag="5")]
2631 pub segment_count: i64,
2632 #[prost(int64, tag="6")]
2633 pub started_at: i64,
2634 #[prost(int64, tag="7")]
2635 pub ended_at: i64,
2636}
2637#[allow(clippy::derive_partial_eq_without_eq)]
2638#[derive(Clone, PartialEq, ::prost::Message)]
2639pub struct ImagesInfo {
2640 #[prost(string, tag="4")]
2641 pub filename_prefix: ::prost::alloc::string::String,
2642 #[prost(int64, tag="1")]
2643 pub image_count: i64,
2644 #[prost(int64, tag="2")]
2645 pub started_at: i64,
2646 #[prost(int64, tag="3")]
2647 pub ended_at: i64,
2648}
2649#[allow(clippy::derive_partial_eq_without_eq)]
2650#[derive(Clone, PartialEq, ::prost::Message)]
2651pub struct AutoParticipantEgress {
2652 #[prost(message, repeated, tag="3")]
2653 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2654 #[prost(message, repeated, tag="4")]
2655 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2656 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2657 pub options: ::core::option::Option<auto_participant_egress::Options>,
2658}
2659pub mod auto_participant_egress {
2661 #[allow(clippy::derive_partial_eq_without_eq)]
2662#[derive(Clone, PartialEq, ::prost::Oneof)]
2663 pub enum Options {
2664 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2666 Preset(i32),
2667 #[prost(message, tag="2")]
2669 Advanced(super::EncodingOptions),
2670 }
2671}
2672#[allow(clippy::derive_partial_eq_without_eq)]
2673#[derive(Clone, PartialEq, ::prost::Message)]
2674pub struct AutoTrackEgress {
2675 #[prost(string, tag="1")]
2677 pub filepath: ::prost::alloc::string::String,
2678 #[prost(bool, tag="5")]
2680 pub disable_manifest: bool,
2681 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2682 pub output: ::core::option::Option<auto_track_egress::Output>,
2683}
2684pub mod auto_track_egress {
2686 #[allow(clippy::derive_partial_eq_without_eq)]
2687#[derive(Clone, PartialEq, ::prost::Oneof)]
2688 pub enum Output {
2689 #[prost(message, tag="2")]
2690 S3(super::S3Upload),
2691 #[prost(message, tag="3")]
2692 Gcp(super::GcpUpload),
2693 #[prost(message, tag="4")]
2694 Azure(super::AzureBlobUpload),
2695 #[prost(message, tag="6")]
2696 AliOss(super::AliOssUpload),
2697 }
2698}
2699#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2700#[repr(i32)]
2701pub enum EncodedFileType {
2702 DefaultFiletype = 0,
2704 Mp4 = 1,
2705 Ogg = 2,
2706}
2707impl EncodedFileType {
2708 pub fn as_str_name(&self) -> &'static str {
2713 match self {
2714 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2715 EncodedFileType::Mp4 => "MP4",
2716 EncodedFileType::Ogg => "OGG",
2717 }
2718 }
2719 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2721 match value {
2722 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2723 "MP4" => Some(Self::Mp4),
2724 "OGG" => Some(Self::Ogg),
2725 _ => None,
2726 }
2727 }
2728}
2729#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2730#[repr(i32)]
2731pub enum SegmentedFileProtocol {
2732 DefaultSegmentedFileProtocol = 0,
2733 HlsProtocol = 1,
2734}
2735impl SegmentedFileProtocol {
2736 pub fn as_str_name(&self) -> &'static str {
2741 match self {
2742 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2743 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2744 }
2745 }
2746 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2748 match value {
2749 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2750 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2751 _ => None,
2752 }
2753 }
2754}
2755#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2756#[repr(i32)]
2757pub enum SegmentedFileSuffix {
2758 Index = 0,
2759 Timestamp = 1,
2760}
2761impl SegmentedFileSuffix {
2762 pub fn as_str_name(&self) -> &'static str {
2767 match self {
2768 SegmentedFileSuffix::Index => "INDEX",
2769 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2770 }
2771 }
2772 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2774 match value {
2775 "INDEX" => Some(Self::Index),
2776 "TIMESTAMP" => Some(Self::Timestamp),
2777 _ => None,
2778 }
2779 }
2780}
2781#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2782#[repr(i32)]
2783pub enum ImageFileSuffix {
2784 ImageSuffixIndex = 0,
2785 ImageSuffixTimestamp = 1,
2786 ImageSuffixNoneOverwrite = 2,
2788}
2789impl ImageFileSuffix {
2790 pub fn as_str_name(&self) -> &'static str {
2795 match self {
2796 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2797 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2798 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
2799 }
2800 }
2801 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2803 match value {
2804 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2805 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2806 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
2807 _ => None,
2808 }
2809 }
2810}
2811#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2812#[repr(i32)]
2813pub enum StreamProtocol {
2814 DefaultProtocol = 0,
2816 Rtmp = 1,
2817 Srt = 2,
2818}
2819impl StreamProtocol {
2820 pub fn as_str_name(&self) -> &'static str {
2825 match self {
2826 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2827 StreamProtocol::Rtmp => "RTMP",
2828 StreamProtocol::Srt => "SRT",
2829 }
2830 }
2831 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2833 match value {
2834 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
2835 "RTMP" => Some(Self::Rtmp),
2836 "SRT" => Some(Self::Srt),
2837 _ => None,
2838 }
2839 }
2840}
2841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2842#[repr(i32)]
2843pub enum AudioMixing {
2844 DefaultMixing = 0,
2846 DualChannelAgent = 1,
2848 DualChannelAlternate = 2,
2850}
2851impl AudioMixing {
2852 pub fn as_str_name(&self) -> &'static str {
2857 match self {
2858 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
2859 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
2860 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
2861 }
2862 }
2863 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2865 match value {
2866 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
2867 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
2868 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
2869 _ => None,
2870 }
2871 }
2872}
2873#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2874#[repr(i32)]
2875pub enum EncodingOptionsPreset {
2876 H264720p30 = 0,
2878 H264720p60 = 1,
2880 H2641080p30 = 2,
2882 H2641080p60 = 3,
2884 PortraitH264720p30 = 4,
2886 PortraitH264720p60 = 5,
2888 PortraitH2641080p30 = 6,
2890 PortraitH2641080p60 = 7,
2892}
2893impl EncodingOptionsPreset {
2894 pub fn as_str_name(&self) -> &'static str {
2899 match self {
2900 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
2901 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
2902 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
2903 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
2904 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
2905 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
2906 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
2907 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
2908 }
2909 }
2910 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2912 match value {
2913 "H264_720P_30" => Some(Self::H264720p30),
2914 "H264_720P_60" => Some(Self::H264720p60),
2915 "H264_1080P_30" => Some(Self::H2641080p30),
2916 "H264_1080P_60" => Some(Self::H2641080p60),
2917 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
2918 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
2919 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
2920 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
2921 _ => None,
2922 }
2923 }
2924}
2925#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2926#[repr(i32)]
2927pub enum EgressStatus {
2928 EgressStarting = 0,
2929 EgressActive = 1,
2930 EgressEnding = 2,
2931 EgressComplete = 3,
2932 EgressFailed = 4,
2933 EgressAborted = 5,
2934 EgressLimitReached = 6,
2935}
2936impl EgressStatus {
2937 pub fn as_str_name(&self) -> &'static str {
2942 match self {
2943 EgressStatus::EgressStarting => "EGRESS_STARTING",
2944 EgressStatus::EgressActive => "EGRESS_ACTIVE",
2945 EgressStatus::EgressEnding => "EGRESS_ENDING",
2946 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
2947 EgressStatus::EgressFailed => "EGRESS_FAILED",
2948 EgressStatus::EgressAborted => "EGRESS_ABORTED",
2949 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
2950 }
2951 }
2952 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2954 match value {
2955 "EGRESS_STARTING" => Some(Self::EgressStarting),
2956 "EGRESS_ACTIVE" => Some(Self::EgressActive),
2957 "EGRESS_ENDING" => Some(Self::EgressEnding),
2958 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
2959 "EGRESS_FAILED" => Some(Self::EgressFailed),
2960 "EGRESS_ABORTED" => Some(Self::EgressAborted),
2961 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
2962 _ => None,
2963 }
2964 }
2965}
2966#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2967#[repr(i32)]
2968pub enum EgressSourceType {
2969 Web = 0,
2970 Sdk = 1,
2971}
2972impl EgressSourceType {
2973 pub fn as_str_name(&self) -> &'static str {
2978 match self {
2979 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
2980 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
2981 }
2982 }
2983 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2985 match value {
2986 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
2987 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
2988 _ => None,
2989 }
2990 }
2991}
2992#[allow(clippy::derive_partial_eq_without_eq)]
2993#[derive(Clone, PartialEq, ::prost::Message)]
2994pub struct SignalRequest {
2995 #[prost(oneof="signal_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18")]
2996 pub message: ::core::option::Option<signal_request::Message>,
2997}
2998pub mod signal_request {
3000 #[allow(clippy::derive_partial_eq_without_eq)]
3001#[derive(Clone, PartialEq, ::prost::Oneof)]
3002 pub enum Message {
3003 #[prost(message, tag="1")]
3005 Offer(super::SessionDescription),
3006 #[prost(message, tag="2")]
3008 Answer(super::SessionDescription),
3009 #[prost(message, tag="3")]
3010 Trickle(super::TrickleRequest),
3011 #[prost(message, tag="4")]
3012 AddTrack(super::AddTrackRequest),
3013 #[prost(message, tag="5")]
3015 Mute(super::MuteTrackRequest),
3016 #[prost(message, tag="6")]
3018 Subscription(super::UpdateSubscription),
3019 #[prost(message, tag="7")]
3021 TrackSetting(super::UpdateTrackSettings),
3022 #[prost(message, tag="8")]
3024 Leave(super::LeaveRequest),
3025 #[prost(message, tag="10")]
3027 UpdateLayers(super::UpdateVideoLayers),
3028 #[prost(message, tag="11")]
3030 SubscriptionPermission(super::SubscriptionPermission),
3031 #[prost(message, tag="12")]
3033 SyncState(super::SyncState),
3034 #[prost(message, tag="13")]
3036 Simulate(super::SimulateScenario),
3037 #[prost(int64, tag="14")]
3041 Ping(i64),
3042 #[prost(message, tag="15")]
3045 UpdateMetadata(super::UpdateParticipantMetadata),
3046 #[prost(message, tag="16")]
3047 PingReq(super::Ping),
3048 #[prost(message, tag="17")]
3050 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3051 #[prost(message, tag="18")]
3053 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3054 }
3055}
3056#[allow(clippy::derive_partial_eq_without_eq)]
3057#[derive(Clone, PartialEq, ::prost::Message)]
3058pub struct SignalResponse {
3059 #[prost(oneof="signal_response::Message", tags="1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25")]
3060 pub message: ::core::option::Option<signal_response::Message>,
3061}
3062pub mod signal_response {
3064 #[allow(clippy::derive_partial_eq_without_eq)]
3065#[derive(Clone, PartialEq, ::prost::Oneof)]
3066 pub enum Message {
3067 #[prost(message, tag="1")]
3069 Join(super::JoinResponse),
3070 #[prost(message, tag="2")]
3072 Answer(super::SessionDescription),
3073 #[prost(message, tag="3")]
3075 Offer(super::SessionDescription),
3076 #[prost(message, tag="4")]
3078 Trickle(super::TrickleRequest),
3079 #[prost(message, tag="5")]
3081 Update(super::ParticipantUpdate),
3082 #[prost(message, tag="6")]
3084 TrackPublished(super::TrackPublishedResponse),
3085 #[prost(message, tag="8")]
3087 Leave(super::LeaveRequest),
3088 #[prost(message, tag="9")]
3090 Mute(super::MuteTrackRequest),
3091 #[prost(message, tag="10")]
3093 SpeakersChanged(super::SpeakersChanged),
3094 #[prost(message, tag="11")]
3096 RoomUpdate(super::RoomUpdate),
3097 #[prost(message, tag="12")]
3099 ConnectionQuality(super::ConnectionQualityUpdate),
3100 #[prost(message, tag="13")]
3103 StreamStateUpdate(super::StreamStateUpdate),
3104 #[prost(message, tag="14")]
3106 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3107 #[prost(message, tag="15")]
3109 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3110 #[prost(string, tag="16")]
3112 RefreshToken(::prost::alloc::string::String),
3113 #[prost(message, tag="17")]
3115 TrackUnpublished(super::TrackUnpublishedResponse),
3116 #[prost(int64, tag="18")]
3120 Pong(i64),
3121 #[prost(message, tag="19")]
3123 Reconnect(super::ReconnectResponse),
3124 #[prost(message, tag="20")]
3126 PongResp(super::Pong),
3127 #[prost(message, tag="21")]
3129 SubscriptionResponse(super::SubscriptionResponse),
3130 #[prost(message, tag="22")]
3132 RequestResponse(super::RequestResponse),
3133 #[prost(message, tag="23")]
3135 TrackSubscribed(super::TrackSubscribed),
3136 #[prost(message, tag="24")]
3138 RoomMoved(super::RoomMovedResponse),
3139 #[prost(message, tag="25")]
3141 MediaSectionsRequirement(super::MediaSectionsRequirement),
3142 }
3143}
3144#[allow(clippy::derive_partial_eq_without_eq)]
3145#[derive(Clone, PartialEq, ::prost::Message)]
3146pub struct SimulcastCodec {
3147 #[prost(string, tag="1")]
3148 pub codec: ::prost::alloc::string::String,
3149 #[prost(string, tag="2")]
3150 pub cid: ::prost::alloc::string::String,
3151 #[prost(message, repeated, tag="4")]
3152 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3153 #[prost(enumeration="video_layer::Mode", tag="5")]
3154 pub video_layer_mode: i32,
3155}
3156#[allow(clippy::derive_partial_eq_without_eq)]
3157#[derive(Clone, PartialEq, ::prost::Message)]
3158pub struct AddTrackRequest {
3159 #[prost(string, tag="1")]
3161 pub cid: ::prost::alloc::string::String,
3162 #[prost(string, tag="2")]
3163 pub name: ::prost::alloc::string::String,
3164 #[prost(enumeration="TrackType", tag="3")]
3165 pub r#type: i32,
3166 #[prost(uint32, tag="4")]
3167 pub width: u32,
3168 #[prost(uint32, tag="5")]
3169 pub height: u32,
3170 #[prost(bool, tag="6")]
3172 pub muted: bool,
3173 #[deprecated]
3177 #[prost(bool, tag="7")]
3178 pub disable_dtx: bool,
3179 #[prost(enumeration="TrackSource", tag="8")]
3180 pub source: i32,
3181 #[prost(message, repeated, tag="9")]
3182 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3183 #[prost(message, repeated, tag="10")]
3184 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3185 #[prost(string, tag="11")]
3187 pub sid: ::prost::alloc::string::String,
3188 #[deprecated]
3190 #[prost(bool, tag="12")]
3191 pub stereo: bool,
3192 #[prost(bool, tag="13")]
3194 pub disable_red: bool,
3195 #[prost(enumeration="encryption::Type", tag="14")]
3196 pub encryption: i32,
3197 #[prost(string, tag="15")]
3200 pub stream: ::prost::alloc::string::String,
3201 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3202 pub backup_codec_policy: i32,
3203 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3204 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3205}
3206#[allow(clippy::derive_partial_eq_without_eq)]
3207#[derive(Clone, PartialEq, ::prost::Message)]
3208pub struct TrickleRequest {
3209 #[prost(string, tag="1")]
3210 pub candidate_init: ::prost::alloc::string::String,
3211 #[prost(enumeration="SignalTarget", tag="2")]
3212 pub target: i32,
3213 #[prost(bool, tag="3")]
3214 pub r#final: bool,
3215}
3216#[allow(clippy::derive_partial_eq_without_eq)]
3217#[derive(Clone, PartialEq, ::prost::Message)]
3218pub struct MuteTrackRequest {
3219 #[prost(string, tag="1")]
3220 pub sid: ::prost::alloc::string::String,
3221 #[prost(bool, tag="2")]
3222 pub muted: bool,
3223}
3224#[allow(clippy::derive_partial_eq_without_eq)]
3225#[derive(Clone, PartialEq, ::prost::Message)]
3226pub struct JoinResponse {
3227 #[prost(message, optional, tag="1")]
3228 pub room: ::core::option::Option<Room>,
3229 #[prost(message, optional, tag="2")]
3230 pub participant: ::core::option::Option<ParticipantInfo>,
3231 #[prost(message, repeated, tag="3")]
3232 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3233 #[prost(string, tag="4")]
3235 pub server_version: ::prost::alloc::string::String,
3236 #[prost(message, repeated, tag="5")]
3237 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3238 #[prost(bool, tag="6")]
3240 pub subscriber_primary: bool,
3241 #[prost(string, tag="7")]
3244 pub alternative_url: ::prost::alloc::string::String,
3245 #[prost(message, optional, tag="8")]
3246 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3247 #[prost(string, tag="9")]
3249 pub server_region: ::prost::alloc::string::String,
3250 #[prost(int32, tag="10")]
3251 pub ping_timeout: i32,
3252 #[prost(int32, tag="11")]
3253 pub ping_interval: i32,
3254 #[prost(message, optional, tag="12")]
3255 pub server_info: ::core::option::Option<ServerInfo>,
3256 #[prost(bytes="vec", tag="13")]
3258 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3259 #[prost(message, repeated, tag="14")]
3260 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3261 #[prost(bool, tag="15")]
3263 pub fast_publish: bool,
3264}
3265#[allow(clippy::derive_partial_eq_without_eq)]
3266#[derive(Clone, PartialEq, ::prost::Message)]
3267pub struct ReconnectResponse {
3268 #[prost(message, repeated, tag="1")]
3269 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3270 #[prost(message, optional, tag="2")]
3271 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3272 #[prost(message, optional, tag="3")]
3273 pub server_info: ::core::option::Option<ServerInfo>,
3274 #[prost(uint32, tag="4")]
3276 pub last_message_seq: u32,
3277}
3278#[allow(clippy::derive_partial_eq_without_eq)]
3279#[derive(Clone, PartialEq, ::prost::Message)]
3280pub struct TrackPublishedResponse {
3281 #[prost(string, tag="1")]
3282 pub cid: ::prost::alloc::string::String,
3283 #[prost(message, optional, tag="2")]
3284 pub track: ::core::option::Option<TrackInfo>,
3285}
3286#[allow(clippy::derive_partial_eq_without_eq)]
3287#[derive(Clone, PartialEq, ::prost::Message)]
3288pub struct TrackUnpublishedResponse {
3289 #[prost(string, tag="1")]
3290 pub track_sid: ::prost::alloc::string::String,
3291}
3292#[allow(clippy::derive_partial_eq_without_eq)]
3293#[derive(Clone, PartialEq, ::prost::Message)]
3294pub struct SessionDescription {
3295 #[prost(string, tag="1")]
3297 pub r#type: ::prost::alloc::string::String,
3298 #[prost(string, tag="2")]
3299 pub sdp: ::prost::alloc::string::String,
3300 #[prost(uint32, tag="3")]
3301 pub id: u32,
3302}
3303#[allow(clippy::derive_partial_eq_without_eq)]
3304#[derive(Clone, PartialEq, ::prost::Message)]
3305pub struct ParticipantUpdate {
3306 #[prost(message, repeated, tag="1")]
3307 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3308}
3309#[allow(clippy::derive_partial_eq_without_eq)]
3310#[derive(Clone, PartialEq, ::prost::Message)]
3311pub struct UpdateSubscription {
3312 #[prost(string, repeated, tag="1")]
3313 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3314 #[prost(bool, tag="2")]
3315 pub subscribe: bool,
3316 #[prost(message, repeated, tag="3")]
3317 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3318}
3319#[allow(clippy::derive_partial_eq_without_eq)]
3320#[derive(Clone, PartialEq, ::prost::Message)]
3321pub struct UpdateTrackSettings {
3322 #[prost(string, repeated, tag="1")]
3323 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3324 #[prost(bool, tag="3")]
3326 pub disabled: bool,
3327 #[prost(enumeration="VideoQuality", tag="4")]
3329 pub quality: i32,
3330 #[prost(uint32, tag="5")]
3332 pub width: u32,
3333 #[prost(uint32, tag="6")]
3335 pub height: u32,
3336 #[prost(uint32, tag="7")]
3337 pub fps: u32,
3338 #[prost(uint32, tag="8")]
3346 pub priority: u32,
3347}
3348#[allow(clippy::derive_partial_eq_without_eq)]
3349#[derive(Clone, PartialEq, ::prost::Message)]
3350pub struct UpdateLocalAudioTrack {
3351 #[prost(string, tag="1")]
3352 pub track_sid: ::prost::alloc::string::String,
3353 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3354 pub features: ::prost::alloc::vec::Vec<i32>,
3355}
3356#[allow(clippy::derive_partial_eq_without_eq)]
3357#[derive(Clone, PartialEq, ::prost::Message)]
3358pub struct UpdateLocalVideoTrack {
3359 #[prost(string, tag="1")]
3360 pub track_sid: ::prost::alloc::string::String,
3361 #[prost(uint32, tag="2")]
3362 pub width: u32,
3363 #[prost(uint32, tag="3")]
3364 pub height: u32,
3365}
3366#[allow(clippy::derive_partial_eq_without_eq)]
3367#[derive(Clone, PartialEq, ::prost::Message)]
3368pub struct LeaveRequest {
3369 #[prost(bool, tag="1")]
3373 pub can_reconnect: bool,
3374 #[prost(enumeration="DisconnectReason", tag="2")]
3375 pub reason: i32,
3376 #[prost(enumeration="leave_request::Action", tag="3")]
3377 pub action: i32,
3378 #[prost(message, optional, tag="4")]
3379 pub regions: ::core::option::Option<RegionSettings>,
3380}
3381pub mod leave_request {
3383 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3385 #[repr(i32)]
3386 pub enum Action {
3387 Disconnect = 0,
3389 Resume = 1,
3391 Reconnect = 2,
3393 }
3394 impl Action {
3395 pub fn as_str_name(&self) -> &'static str {
3400 match self {
3401 Action::Disconnect => "DISCONNECT",
3402 Action::Resume => "RESUME",
3403 Action::Reconnect => "RECONNECT",
3404 }
3405 }
3406 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3408 match value {
3409 "DISCONNECT" => Some(Self::Disconnect),
3410 "RESUME" => Some(Self::Resume),
3411 "RECONNECT" => Some(Self::Reconnect),
3412 _ => None,
3413 }
3414 }
3415 }
3416}
3417#[allow(clippy::derive_partial_eq_without_eq)]
3419#[derive(Clone, PartialEq, ::prost::Message)]
3420pub struct UpdateVideoLayers {
3421 #[prost(string, tag="1")]
3422 pub track_sid: ::prost::alloc::string::String,
3423 #[prost(message, repeated, tag="2")]
3424 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3425}
3426#[allow(clippy::derive_partial_eq_without_eq)]
3427#[derive(Clone, PartialEq, ::prost::Message)]
3428pub struct UpdateParticipantMetadata {
3429 #[prost(string, tag="1")]
3430 pub metadata: ::prost::alloc::string::String,
3431 #[prost(string, tag="2")]
3432 pub name: ::prost::alloc::string::String,
3433 #[prost(map="string, string", tag="3")]
3436 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3437 #[prost(uint32, tag="4")]
3438 pub request_id: u32,
3439}
3440#[allow(clippy::derive_partial_eq_without_eq)]
3441#[derive(Clone, PartialEq, ::prost::Message)]
3442pub struct IceServer {
3443 #[prost(string, repeated, tag="1")]
3444 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3445 #[prost(string, tag="2")]
3446 pub username: ::prost::alloc::string::String,
3447 #[prost(string, tag="3")]
3448 pub credential: ::prost::alloc::string::String,
3449}
3450#[allow(clippy::derive_partial_eq_without_eq)]
3451#[derive(Clone, PartialEq, ::prost::Message)]
3452pub struct SpeakersChanged {
3453 #[prost(message, repeated, tag="1")]
3454 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3455}
3456#[allow(clippy::derive_partial_eq_without_eq)]
3457#[derive(Clone, PartialEq, ::prost::Message)]
3458pub struct RoomUpdate {
3459 #[prost(message, optional, tag="1")]
3460 pub room: ::core::option::Option<Room>,
3461}
3462#[allow(clippy::derive_partial_eq_without_eq)]
3463#[derive(Clone, PartialEq, ::prost::Message)]
3464pub struct ConnectionQualityInfo {
3465 #[prost(string, tag="1")]
3466 pub participant_sid: ::prost::alloc::string::String,
3467 #[prost(enumeration="ConnectionQuality", tag="2")]
3468 pub quality: i32,
3469 #[prost(float, tag="3")]
3470 pub score: f32,
3471}
3472#[allow(clippy::derive_partial_eq_without_eq)]
3473#[derive(Clone, PartialEq, ::prost::Message)]
3474pub struct ConnectionQualityUpdate {
3475 #[prost(message, repeated, tag="1")]
3476 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3477}
3478#[allow(clippy::derive_partial_eq_without_eq)]
3479#[derive(Clone, PartialEq, ::prost::Message)]
3480pub struct StreamStateInfo {
3481 #[prost(string, tag="1")]
3482 pub participant_sid: ::prost::alloc::string::String,
3483 #[prost(string, tag="2")]
3484 pub track_sid: ::prost::alloc::string::String,
3485 #[prost(enumeration="StreamState", tag="3")]
3486 pub state: i32,
3487}
3488#[allow(clippy::derive_partial_eq_without_eq)]
3489#[derive(Clone, PartialEq, ::prost::Message)]
3490pub struct StreamStateUpdate {
3491 #[prost(message, repeated, tag="1")]
3492 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3493}
3494#[allow(clippy::derive_partial_eq_without_eq)]
3495#[derive(Clone, PartialEq, ::prost::Message)]
3496pub struct SubscribedQuality {
3497 #[prost(enumeration="VideoQuality", tag="1")]
3498 pub quality: i32,
3499 #[prost(bool, tag="2")]
3500 pub enabled: bool,
3501}
3502#[allow(clippy::derive_partial_eq_without_eq)]
3503#[derive(Clone, PartialEq, ::prost::Message)]
3504pub struct SubscribedCodec {
3505 #[prost(string, tag="1")]
3506 pub codec: ::prost::alloc::string::String,
3507 #[prost(message, repeated, tag="2")]
3508 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3509}
3510#[allow(clippy::derive_partial_eq_without_eq)]
3511#[derive(Clone, PartialEq, ::prost::Message)]
3512pub struct SubscribedQualityUpdate {
3513 #[prost(string, tag="1")]
3514 pub track_sid: ::prost::alloc::string::String,
3515 #[deprecated]
3516 #[prost(message, repeated, tag="2")]
3517 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3518 #[prost(message, repeated, tag="3")]
3519 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3520}
3521#[allow(clippy::derive_partial_eq_without_eq)]
3522#[derive(Clone, PartialEq, ::prost::Message)]
3523pub struct TrackPermission {
3524 #[prost(string, tag="1")]
3526 pub participant_sid: ::prost::alloc::string::String,
3527 #[prost(bool, tag="2")]
3528 pub all_tracks: bool,
3529 #[prost(string, repeated, tag="3")]
3530 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3531 #[prost(string, tag="4")]
3532 pub participant_identity: ::prost::alloc::string::String,
3533}
3534#[allow(clippy::derive_partial_eq_without_eq)]
3535#[derive(Clone, PartialEq, ::prost::Message)]
3536pub struct SubscriptionPermission {
3537 #[prost(bool, tag="1")]
3538 pub all_participants: bool,
3539 #[prost(message, repeated, tag="2")]
3540 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3541}
3542#[allow(clippy::derive_partial_eq_without_eq)]
3543#[derive(Clone, PartialEq, ::prost::Message)]
3544pub struct SubscriptionPermissionUpdate {
3545 #[prost(string, tag="1")]
3546 pub participant_sid: ::prost::alloc::string::String,
3547 #[prost(string, tag="2")]
3548 pub track_sid: ::prost::alloc::string::String,
3549 #[prost(bool, tag="3")]
3550 pub allowed: bool,
3551}
3552#[allow(clippy::derive_partial_eq_without_eq)]
3553#[derive(Clone, PartialEq, ::prost::Message)]
3554pub struct RoomMovedResponse {
3555 #[prost(message, optional, tag="1")]
3557 pub room: ::core::option::Option<Room>,
3558 #[prost(string, tag="2")]
3560 pub token: ::prost::alloc::string::String,
3561 #[prost(message, optional, tag="3")]
3562 pub participant: ::core::option::Option<ParticipantInfo>,
3563 #[prost(message, repeated, tag="4")]
3564 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3565}
3566#[allow(clippy::derive_partial_eq_without_eq)]
3567#[derive(Clone, PartialEq, ::prost::Message)]
3568pub struct SyncState {
3569 #[prost(message, optional, tag="1")]
3573 pub answer: ::core::option::Option<SessionDescription>,
3574 #[prost(message, optional, tag="2")]
3575 pub subscription: ::core::option::Option<UpdateSubscription>,
3576 #[prost(message, repeated, tag="3")]
3577 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3578 #[prost(message, repeated, tag="4")]
3579 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3580 #[prost(message, optional, tag="5")]
3584 pub offer: ::core::option::Option<SessionDescription>,
3585 #[prost(string, repeated, tag="6")]
3586 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3587 #[prost(message, repeated, tag="7")]
3588 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
3589}
3590#[allow(clippy::derive_partial_eq_without_eq)]
3591#[derive(Clone, PartialEq, ::prost::Message)]
3592pub struct DataChannelReceiveState {
3593 #[prost(string, tag="1")]
3594 pub publisher_sid: ::prost::alloc::string::String,
3595 #[prost(uint32, tag="2")]
3596 pub last_seq: u32,
3597}
3598#[allow(clippy::derive_partial_eq_without_eq)]
3599#[derive(Clone, PartialEq, ::prost::Message)]
3600pub struct DataChannelInfo {
3601 #[prost(string, tag="1")]
3602 pub label: ::prost::alloc::string::String,
3603 #[prost(uint32, tag="2")]
3604 pub id: u32,
3605 #[prost(enumeration="SignalTarget", tag="3")]
3606 pub target: i32,
3607}
3608#[allow(clippy::derive_partial_eq_without_eq)]
3609#[derive(Clone, PartialEq, ::prost::Message)]
3610pub struct SimulateScenario {
3611 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3612 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3613}
3614pub mod simulate_scenario {
3616 #[allow(clippy::derive_partial_eq_without_eq)]
3617#[derive(Clone, PartialEq, ::prost::Oneof)]
3618 pub enum Scenario {
3619 #[prost(int32, tag="1")]
3621 SpeakerUpdate(i32),
3622 #[prost(bool, tag="2")]
3624 NodeFailure(bool),
3625 #[prost(bool, tag="3")]
3627 Migration(bool),
3628 #[prost(bool, tag="4")]
3630 ServerLeave(bool),
3631 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3633 SwitchCandidateProtocol(i32),
3634 #[prost(int64, tag="6")]
3637 SubscriberBandwidth(i64),
3638 #[prost(bool, tag="7")]
3640 DisconnectSignalOnResume(bool),
3641 #[prost(bool, tag="8")]
3643 DisconnectSignalOnResumeNoMessages(bool),
3644 #[prost(bool, tag="9")]
3646 LeaveRequestFullReconnect(bool),
3647 }
3648}
3649#[allow(clippy::derive_partial_eq_without_eq)]
3650#[derive(Clone, PartialEq, ::prost::Message)]
3651pub struct Ping {
3652 #[prost(int64, tag="1")]
3653 pub timestamp: i64,
3654 #[prost(int64, tag="2")]
3656 pub rtt: i64,
3657}
3658#[allow(clippy::derive_partial_eq_without_eq)]
3659#[derive(Clone, PartialEq, ::prost::Message)]
3660pub struct Pong {
3661 #[prost(int64, tag="1")]
3663 pub last_ping_timestamp: i64,
3664 #[prost(int64, tag="2")]
3665 pub timestamp: i64,
3666}
3667#[allow(clippy::derive_partial_eq_without_eq)]
3668#[derive(Clone, PartialEq, ::prost::Message)]
3669pub struct RegionSettings {
3670 #[prost(message, repeated, tag="1")]
3671 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3672}
3673#[allow(clippy::derive_partial_eq_without_eq)]
3674#[derive(Clone, PartialEq, ::prost::Message)]
3675pub struct RegionInfo {
3676 #[prost(string, tag="1")]
3677 pub region: ::prost::alloc::string::String,
3678 #[prost(string, tag="2")]
3679 pub url: ::prost::alloc::string::String,
3680 #[prost(int64, tag="3")]
3681 pub distance: i64,
3682}
3683#[allow(clippy::derive_partial_eq_without_eq)]
3684#[derive(Clone, PartialEq, ::prost::Message)]
3685pub struct SubscriptionResponse {
3686 #[prost(string, tag="1")]
3687 pub track_sid: ::prost::alloc::string::String,
3688 #[prost(enumeration="SubscriptionError", tag="2")]
3689 pub err: i32,
3690}
3691#[allow(clippy::derive_partial_eq_without_eq)]
3692#[derive(Clone, PartialEq, ::prost::Message)]
3693pub struct RequestResponse {
3694 #[prost(uint32, tag="1")]
3695 pub request_id: u32,
3696 #[prost(enumeration="request_response::Reason", tag="2")]
3697 pub reason: i32,
3698 #[prost(string, tag="3")]
3699 pub message: ::prost::alloc::string::String,
3700}
3701pub mod request_response {
3703 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3704 #[repr(i32)]
3705 pub enum Reason {
3706 Ok = 0,
3707 NotFound = 1,
3708 NotAllowed = 2,
3709 LimitExceeded = 3,
3710 }
3711 impl Reason {
3712 pub fn as_str_name(&self) -> &'static str {
3717 match self {
3718 Reason::Ok => "OK",
3719 Reason::NotFound => "NOT_FOUND",
3720 Reason::NotAllowed => "NOT_ALLOWED",
3721 Reason::LimitExceeded => "LIMIT_EXCEEDED",
3722 }
3723 }
3724 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3726 match value {
3727 "OK" => Some(Self::Ok),
3728 "NOT_FOUND" => Some(Self::NotFound),
3729 "NOT_ALLOWED" => Some(Self::NotAllowed),
3730 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
3731 _ => None,
3732 }
3733 }
3734 }
3735}
3736#[allow(clippy::derive_partial_eq_without_eq)]
3737#[derive(Clone, PartialEq, ::prost::Message)]
3738pub struct TrackSubscribed {
3739 #[prost(string, tag="1")]
3740 pub track_sid: ::prost::alloc::string::String,
3741}
3742#[allow(clippy::derive_partial_eq_without_eq)]
3743#[derive(Clone, PartialEq, ::prost::Message)]
3744pub struct ConnectionSettings {
3745 #[prost(bool, tag="1")]
3746 pub auto_subscribe: bool,
3747 #[prost(bool, tag="2")]
3748 pub adaptive_stream: bool,
3749 #[prost(bool, optional, tag="3")]
3750 pub subscriber_allow_pause: ::core::option::Option<bool>,
3751 #[prost(bool, tag="4")]
3752 pub disable_ice_lite: bool,
3753}
3754#[allow(clippy::derive_partial_eq_without_eq)]
3755#[derive(Clone, PartialEq, ::prost::Message)]
3756pub struct JoinRequest {
3757 #[prost(message, optional, tag="1")]
3758 pub client_info: ::core::option::Option<ClientInfo>,
3759 #[prost(message, optional, tag="2")]
3760 pub connection_settings: ::core::option::Option<ConnectionSettings>,
3761 #[prost(string, tag="3")]
3763 pub metadata: ::prost::alloc::string::String,
3764 #[prost(map="string, string", tag="4")]
3768 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3769 #[prost(message, repeated, tag="5")]
3770 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
3771 #[prost(message, optional, tag="6")]
3772 pub publisher_offer: ::core::option::Option<SessionDescription>,
3773 #[prost(bool, tag="7")]
3774 pub reconnect: bool,
3775 #[prost(enumeration="ReconnectReason", tag="8")]
3776 pub reconnect_reason: i32,
3777 #[prost(string, tag="9")]
3778 pub participant_sid: ::prost::alloc::string::String,
3779 #[prost(message, optional, tag="10")]
3780 pub sync_state: ::core::option::Option<SyncState>,
3781}
3782#[allow(clippy::derive_partial_eq_without_eq)]
3783#[derive(Clone, PartialEq, ::prost::Message)]
3784pub struct WrappedJoinRequest {
3785 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
3786 pub compression: i32,
3787 #[prost(bytes="vec", tag="2")]
3789 pub join_request: ::prost::alloc::vec::Vec<u8>,
3790}
3791pub mod wrapped_join_request {
3793 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3794 #[repr(i32)]
3795 pub enum Compression {
3796 None = 0,
3797 Gzip = 1,
3798 }
3799 impl Compression {
3800 pub fn as_str_name(&self) -> &'static str {
3805 match self {
3806 Compression::None => "NONE",
3807 Compression::Gzip => "GZIP",
3808 }
3809 }
3810 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3812 match value {
3813 "NONE" => Some(Self::None),
3814 "GZIP" => Some(Self::Gzip),
3815 _ => None,
3816 }
3817 }
3818 }
3819}
3820#[allow(clippy::derive_partial_eq_without_eq)]
3821#[derive(Clone, PartialEq, ::prost::Message)]
3822pub struct MediaSectionsRequirement {
3823 #[prost(uint32, tag="1")]
3824 pub num_audios: u32,
3825 #[prost(uint32, tag="2")]
3826 pub num_videos: u32,
3827}
3828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3829#[repr(i32)]
3830pub enum SignalTarget {
3831 Publisher = 0,
3832 Subscriber = 1,
3833}
3834impl SignalTarget {
3835 pub fn as_str_name(&self) -> &'static str {
3840 match self {
3841 SignalTarget::Publisher => "PUBLISHER",
3842 SignalTarget::Subscriber => "SUBSCRIBER",
3843 }
3844 }
3845 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3847 match value {
3848 "PUBLISHER" => Some(Self::Publisher),
3849 "SUBSCRIBER" => Some(Self::Subscriber),
3850 _ => None,
3851 }
3852 }
3853}
3854#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3855#[repr(i32)]
3856pub enum StreamState {
3857 Active = 0,
3858 Paused = 1,
3859}
3860impl StreamState {
3861 pub fn as_str_name(&self) -> &'static str {
3866 match self {
3867 StreamState::Active => "ACTIVE",
3868 StreamState::Paused => "PAUSED",
3869 }
3870 }
3871 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3873 match value {
3874 "ACTIVE" => Some(Self::Active),
3875 "PAUSED" => Some(Self::Paused),
3876 _ => None,
3877 }
3878 }
3879}
3880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3881#[repr(i32)]
3882pub enum CandidateProtocol {
3883 Udp = 0,
3884 Tcp = 1,
3885 Tls = 2,
3886}
3887impl CandidateProtocol {
3888 pub fn as_str_name(&self) -> &'static str {
3893 match self {
3894 CandidateProtocol::Udp => "UDP",
3895 CandidateProtocol::Tcp => "TCP",
3896 CandidateProtocol::Tls => "TLS",
3897 }
3898 }
3899 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3901 match value {
3902 "UDP" => Some(Self::Udp),
3903 "TCP" => Some(Self::Tcp),
3904 "TLS" => Some(Self::Tls),
3905 _ => None,
3906 }
3907 }
3908}
3909#[allow(clippy::derive_partial_eq_without_eq)]
3910#[derive(Clone, PartialEq, ::prost::Message)]
3911pub struct Job {
3912 #[prost(string, tag="1")]
3913 pub id: ::prost::alloc::string::String,
3914 #[prost(string, tag="9")]
3915 pub dispatch_id: ::prost::alloc::string::String,
3916 #[prost(enumeration="JobType", tag="2")]
3917 pub r#type: i32,
3918 #[prost(message, optional, tag="3")]
3919 pub room: ::core::option::Option<Room>,
3920 #[prost(message, optional, tag="4")]
3921 pub participant: ::core::option::Option<ParticipantInfo>,
3922 #[deprecated]
3923 #[prost(string, tag="5")]
3924 pub namespace: ::prost::alloc::string::String,
3925 #[prost(string, tag="6")]
3926 pub metadata: ::prost::alloc::string::String,
3927 #[prost(string, tag="7")]
3928 pub agent_name: ::prost::alloc::string::String,
3929 #[prost(message, optional, tag="8")]
3930 pub state: ::core::option::Option<JobState>,
3931}
3932#[allow(clippy::derive_partial_eq_without_eq)]
3933#[derive(Clone, PartialEq, ::prost::Message)]
3934pub struct JobState {
3935 #[prost(enumeration="JobStatus", tag="1")]
3936 pub status: i32,
3937 #[prost(string, tag="2")]
3938 pub error: ::prost::alloc::string::String,
3939 #[prost(int64, tag="3")]
3940 pub started_at: i64,
3941 #[prost(int64, tag="4")]
3942 pub ended_at: i64,
3943 #[prost(int64, tag="5")]
3944 pub updated_at: i64,
3945 #[prost(string, tag="6")]
3946 pub participant_identity: ::prost::alloc::string::String,
3947 #[prost(string, tag="7")]
3948 pub worker_id: ::prost::alloc::string::String,
3949 #[prost(string, tag="8")]
3950 pub agent_id: ::prost::alloc::string::String,
3951}
3952#[allow(clippy::derive_partial_eq_without_eq)]
3954#[derive(Clone, PartialEq, ::prost::Message)]
3955pub struct WorkerMessage {
3956 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
3957 pub message: ::core::option::Option<worker_message::Message>,
3958}
3959pub mod worker_message {
3961 #[allow(clippy::derive_partial_eq_without_eq)]
3962#[derive(Clone, PartialEq, ::prost::Oneof)]
3963 pub enum Message {
3964 #[prost(message, tag="1")]
3966 Register(super::RegisterWorkerRequest),
3967 #[prost(message, tag="2")]
3969 Availability(super::AvailabilityResponse),
3970 #[prost(message, tag="3")]
3972 UpdateWorker(super::UpdateWorkerStatus),
3973 #[prost(message, tag="4")]
3975 UpdateJob(super::UpdateJobStatus),
3976 #[prost(message, tag="5")]
3977 Ping(super::WorkerPing),
3978 #[prost(message, tag="6")]
3979 SimulateJob(super::SimulateJobRequest),
3980 #[prost(message, tag="7")]
3981 MigrateJob(super::MigrateJobRequest),
3982 }
3983}
3984#[allow(clippy::derive_partial_eq_without_eq)]
3986#[derive(Clone, PartialEq, ::prost::Message)]
3987pub struct ServerMessage {
3988 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
3989 pub message: ::core::option::Option<server_message::Message>,
3990}
3991pub mod server_message {
3993 #[allow(clippy::derive_partial_eq_without_eq)]
3994#[derive(Clone, PartialEq, ::prost::Oneof)]
3995 pub enum Message {
3996 #[prost(message, tag="1")]
3998 Register(super::RegisterWorkerResponse),
3999 #[prost(message, tag="2")]
4001 Availability(super::AvailabilityRequest),
4002 #[prost(message, tag="3")]
4003 Assignment(super::JobAssignment),
4004 #[prost(message, tag="5")]
4005 Termination(super::JobTermination),
4006 #[prost(message, tag="4")]
4007 Pong(super::WorkerPong),
4008 }
4009}
4010#[allow(clippy::derive_partial_eq_without_eq)]
4011#[derive(Clone, PartialEq, ::prost::Message)]
4012pub struct SimulateJobRequest {
4013 #[prost(enumeration="JobType", tag="1")]
4014 pub r#type: i32,
4015 #[prost(message, optional, tag="2")]
4016 pub room: ::core::option::Option<Room>,
4017 #[prost(message, optional, tag="3")]
4018 pub participant: ::core::option::Option<ParticipantInfo>,
4019}
4020#[allow(clippy::derive_partial_eq_without_eq)]
4021#[derive(Clone, PartialEq, ::prost::Message)]
4022pub struct WorkerPing {
4023 #[prost(int64, tag="1")]
4024 pub timestamp: i64,
4025}
4026#[allow(clippy::derive_partial_eq_without_eq)]
4027#[derive(Clone, PartialEq, ::prost::Message)]
4028pub struct WorkerPong {
4029 #[prost(int64, tag="1")]
4030 pub last_timestamp: i64,
4031 #[prost(int64, tag="2")]
4032 pub timestamp: i64,
4033}
4034#[allow(clippy::derive_partial_eq_without_eq)]
4035#[derive(Clone, PartialEq, ::prost::Message)]
4036pub struct RegisterWorkerRequest {
4037 #[prost(enumeration="JobType", tag="1")]
4038 pub r#type: i32,
4039 #[prost(string, tag="8")]
4040 pub agent_name: ::prost::alloc::string::String,
4041 #[prost(string, tag="3")]
4043 pub version: ::prost::alloc::string::String,
4044 #[prost(uint32, tag="5")]
4046 pub ping_interval: u32,
4047 #[prost(string, optional, tag="6")]
4048 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4049 #[prost(message, optional, tag="7")]
4050 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4051}
4052#[allow(clippy::derive_partial_eq_without_eq)]
4053#[derive(Clone, PartialEq, ::prost::Message)]
4054pub struct RegisterWorkerResponse {
4055 #[prost(string, tag="1")]
4056 pub worker_id: ::prost::alloc::string::String,
4057 #[prost(message, optional, tag="3")]
4058 pub server_info: ::core::option::Option<ServerInfo>,
4059}
4060#[allow(clippy::derive_partial_eq_without_eq)]
4061#[derive(Clone, PartialEq, ::prost::Message)]
4062pub struct MigrateJobRequest {
4063 #[prost(string, repeated, tag="2")]
4065 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4066}
4067#[allow(clippy::derive_partial_eq_without_eq)]
4068#[derive(Clone, PartialEq, ::prost::Message)]
4069pub struct AvailabilityRequest {
4070 #[prost(message, optional, tag="1")]
4071 pub job: ::core::option::Option<Job>,
4072 #[prost(bool, tag="2")]
4075 pub resuming: bool,
4076}
4077#[allow(clippy::derive_partial_eq_without_eq)]
4078#[derive(Clone, PartialEq, ::prost::Message)]
4079pub struct AvailabilityResponse {
4080 #[prost(string, tag="1")]
4081 pub job_id: ::prost::alloc::string::String,
4082 #[prost(bool, tag="2")]
4083 pub available: bool,
4084 #[prost(bool, tag="3")]
4085 pub supports_resume: bool,
4086 #[prost(bool, tag="8")]
4087 pub terminate: bool,
4088 #[prost(string, tag="4")]
4089 pub participant_name: ::prost::alloc::string::String,
4090 #[prost(string, tag="5")]
4091 pub participant_identity: ::prost::alloc::string::String,
4092 #[prost(string, tag="6")]
4093 pub participant_metadata: ::prost::alloc::string::String,
4094 #[prost(map="string, string", tag="7")]
4096 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4097}
4098#[allow(clippy::derive_partial_eq_without_eq)]
4099#[derive(Clone, PartialEq, ::prost::Message)]
4100pub struct UpdateJobStatus {
4101 #[prost(string, tag="1")]
4102 pub job_id: ::prost::alloc::string::String,
4103 #[prost(enumeration="JobStatus", tag="2")]
4105 pub status: i32,
4106 #[prost(string, tag="3")]
4108 pub error: ::prost::alloc::string::String,
4109}
4110#[allow(clippy::derive_partial_eq_without_eq)]
4111#[derive(Clone, PartialEq, ::prost::Message)]
4112pub struct UpdateWorkerStatus {
4113 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4114 pub status: ::core::option::Option<i32>,
4115 #[prost(float, tag="3")]
4117 pub load: f32,
4118 #[prost(uint32, tag="4")]
4119 pub job_count: u32,
4120}
4121#[allow(clippy::derive_partial_eq_without_eq)]
4122#[derive(Clone, PartialEq, ::prost::Message)]
4123pub struct JobAssignment {
4124 #[prost(message, optional, tag="1")]
4125 pub job: ::core::option::Option<Job>,
4126 #[prost(string, optional, tag="2")]
4127 pub url: ::core::option::Option<::prost::alloc::string::String>,
4128 #[prost(string, tag="3")]
4129 pub token: ::prost::alloc::string::String,
4130}
4131#[allow(clippy::derive_partial_eq_without_eq)]
4132#[derive(Clone, PartialEq, ::prost::Message)]
4133pub struct JobTermination {
4134 #[prost(string, tag="1")]
4135 pub job_id: ::prost::alloc::string::String,
4136}
4137#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4138#[repr(i32)]
4139pub enum JobType {
4140 JtRoom = 0,
4141 JtPublisher = 1,
4142 JtParticipant = 2,
4143}
4144impl JobType {
4145 pub fn as_str_name(&self) -> &'static str {
4150 match self {
4151 JobType::JtRoom => "JT_ROOM",
4152 JobType::JtPublisher => "JT_PUBLISHER",
4153 JobType::JtParticipant => "JT_PARTICIPANT",
4154 }
4155 }
4156 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4158 match value {
4159 "JT_ROOM" => Some(Self::JtRoom),
4160 "JT_PUBLISHER" => Some(Self::JtPublisher),
4161 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4162 _ => None,
4163 }
4164 }
4165}
4166#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4167#[repr(i32)]
4168pub enum WorkerStatus {
4169 WsAvailable = 0,
4170 WsFull = 1,
4171}
4172impl WorkerStatus {
4173 pub fn as_str_name(&self) -> &'static str {
4178 match self {
4179 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4180 WorkerStatus::WsFull => "WS_FULL",
4181 }
4182 }
4183 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4185 match value {
4186 "WS_AVAILABLE" => Some(Self::WsAvailable),
4187 "WS_FULL" => Some(Self::WsFull),
4188 _ => None,
4189 }
4190 }
4191}
4192#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4193#[repr(i32)]
4194pub enum JobStatus {
4195 JsPending = 0,
4196 JsRunning = 1,
4197 JsSuccess = 2,
4198 JsFailed = 3,
4199}
4200impl JobStatus {
4201 pub fn as_str_name(&self) -> &'static str {
4206 match self {
4207 JobStatus::JsPending => "JS_PENDING",
4208 JobStatus::JsRunning => "JS_RUNNING",
4209 JobStatus::JsSuccess => "JS_SUCCESS",
4210 JobStatus::JsFailed => "JS_FAILED",
4211 }
4212 }
4213 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4215 match value {
4216 "JS_PENDING" => Some(Self::JsPending),
4217 "JS_RUNNING" => Some(Self::JsRunning),
4218 "JS_SUCCESS" => Some(Self::JsSuccess),
4219 "JS_FAILED" => Some(Self::JsFailed),
4220 _ => None,
4221 }
4222 }
4223}
4224#[allow(clippy::derive_partial_eq_without_eq)]
4225#[derive(Clone, PartialEq, ::prost::Message)]
4226pub struct CreateAgentDispatchRequest {
4227 #[prost(string, tag="1")]
4228 pub agent_name: ::prost::alloc::string::String,
4229 #[prost(string, tag="2")]
4230 pub room: ::prost::alloc::string::String,
4231 #[prost(string, tag="3")]
4232 pub metadata: ::prost::alloc::string::String,
4233}
4234#[allow(clippy::derive_partial_eq_without_eq)]
4235#[derive(Clone, PartialEq, ::prost::Message)]
4236pub struct RoomAgentDispatch {
4237 #[prost(string, tag="1")]
4238 pub agent_name: ::prost::alloc::string::String,
4239 #[prost(string, tag="2")]
4240 pub metadata: ::prost::alloc::string::String,
4241}
4242#[allow(clippy::derive_partial_eq_without_eq)]
4243#[derive(Clone, PartialEq, ::prost::Message)]
4244pub struct DeleteAgentDispatchRequest {
4245 #[prost(string, tag="1")]
4246 pub dispatch_id: ::prost::alloc::string::String,
4247 #[prost(string, tag="2")]
4248 pub room: ::prost::alloc::string::String,
4249}
4250#[allow(clippy::derive_partial_eq_without_eq)]
4251#[derive(Clone, PartialEq, ::prost::Message)]
4252pub struct ListAgentDispatchRequest {
4253 #[prost(string, tag="1")]
4255 pub dispatch_id: ::prost::alloc::string::String,
4256 #[prost(string, tag="2")]
4258 pub room: ::prost::alloc::string::String,
4259}
4260#[allow(clippy::derive_partial_eq_without_eq)]
4261#[derive(Clone, PartialEq, ::prost::Message)]
4262pub struct ListAgentDispatchResponse {
4263 #[prost(message, repeated, tag="1")]
4264 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4265}
4266#[allow(clippy::derive_partial_eq_without_eq)]
4267#[derive(Clone, PartialEq, ::prost::Message)]
4268pub struct AgentDispatch {
4269 #[prost(string, tag="1")]
4270 pub id: ::prost::alloc::string::String,
4271 #[prost(string, tag="2")]
4272 pub agent_name: ::prost::alloc::string::String,
4273 #[prost(string, tag="3")]
4274 pub room: ::prost::alloc::string::String,
4275 #[prost(string, tag="4")]
4276 pub metadata: ::prost::alloc::string::String,
4277 #[prost(message, optional, tag="5")]
4278 pub state: ::core::option::Option<AgentDispatchState>,
4279}
4280#[allow(clippy::derive_partial_eq_without_eq)]
4281#[derive(Clone, PartialEq, ::prost::Message)]
4282pub struct AgentDispatchState {
4283 #[prost(message, repeated, tag="1")]
4286 pub jobs: ::prost::alloc::vec::Vec<Job>,
4287 #[prost(int64, tag="2")]
4288 pub created_at: i64,
4289 #[prost(int64, tag="3")]
4290 pub deleted_at: i64,
4291}
4292#[allow(clippy::derive_partial_eq_without_eq)]
4293#[derive(Clone, PartialEq, ::prost::Message)]
4294pub struct CreateRoomRequest {
4295 #[prost(string, tag="1")]
4297 pub name: ::prost::alloc::string::String,
4298 #[prost(string, tag="12")]
4300 pub room_preset: ::prost::alloc::string::String,
4301 #[prost(uint32, tag="2")]
4303 pub empty_timeout: u32,
4304 #[prost(uint32, tag="10")]
4306 pub departure_timeout: u32,
4307 #[prost(uint32, tag="3")]
4309 pub max_participants: u32,
4310 #[prost(string, tag="4")]
4312 pub node_id: ::prost::alloc::string::String,
4313 #[prost(string, tag="5")]
4315 pub metadata: ::prost::alloc::string::String,
4316 #[prost(message, optional, tag="6")]
4318 pub egress: ::core::option::Option<RoomEgress>,
4319 #[prost(uint32, tag="7")]
4321 pub min_playout_delay: u32,
4322 #[prost(uint32, tag="8")]
4323 pub max_playout_delay: u32,
4324 #[prost(bool, tag="9")]
4327 pub sync_streams: bool,
4328 #[prost(bool, tag="13")]
4330 pub replay_enabled: bool,
4331 #[prost(message, repeated, tag="14")]
4335 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4336}
4337#[allow(clippy::derive_partial_eq_without_eq)]
4338#[derive(Clone, PartialEq, ::prost::Message)]
4339pub struct RoomEgress {
4340 #[prost(message, optional, tag="1")]
4341 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
4342 #[prost(message, optional, tag="3")]
4343 pub participant: ::core::option::Option<AutoParticipantEgress>,
4344 #[prost(message, optional, tag="2")]
4345 pub tracks: ::core::option::Option<AutoTrackEgress>,
4346}
4347#[allow(clippy::derive_partial_eq_without_eq)]
4348#[derive(Clone, PartialEq, ::prost::Message)]
4349pub struct RoomAgent {
4350 #[prost(message, repeated, tag="1")]
4351 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4352}
4353#[allow(clippy::derive_partial_eq_without_eq)]
4354#[derive(Clone, PartialEq, ::prost::Message)]
4355pub struct ListRoomsRequest {
4356 #[prost(string, repeated, tag="1")]
4358 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4359}
4360#[allow(clippy::derive_partial_eq_without_eq)]
4361#[derive(Clone, PartialEq, ::prost::Message)]
4362pub struct ListRoomsResponse {
4363 #[prost(message, repeated, tag="1")]
4364 pub rooms: ::prost::alloc::vec::Vec<Room>,
4365}
4366#[allow(clippy::derive_partial_eq_without_eq)]
4367#[derive(Clone, PartialEq, ::prost::Message)]
4368pub struct DeleteRoomRequest {
4369 #[prost(string, tag="1")]
4371 pub room: ::prost::alloc::string::String,
4372}
4373#[allow(clippy::derive_partial_eq_without_eq)]
4374#[derive(Clone, PartialEq, ::prost::Message)]
4375pub struct DeleteRoomResponse {
4376}
4377#[allow(clippy::derive_partial_eq_without_eq)]
4378#[derive(Clone, PartialEq, ::prost::Message)]
4379pub struct ListParticipantsRequest {
4380 #[prost(string, tag="1")]
4382 pub room: ::prost::alloc::string::String,
4383}
4384#[allow(clippy::derive_partial_eq_without_eq)]
4385#[derive(Clone, PartialEq, ::prost::Message)]
4386pub struct ListParticipantsResponse {
4387 #[prost(message, repeated, tag="1")]
4388 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4389}
4390#[allow(clippy::derive_partial_eq_without_eq)]
4391#[derive(Clone, PartialEq, ::prost::Message)]
4392pub struct RoomParticipantIdentity {
4393 #[prost(string, tag="1")]
4395 pub room: ::prost::alloc::string::String,
4396 #[prost(string, tag="2")]
4398 pub identity: ::prost::alloc::string::String,
4399}
4400#[allow(clippy::derive_partial_eq_without_eq)]
4401#[derive(Clone, PartialEq, ::prost::Message)]
4402pub struct RemoveParticipantResponse {
4403}
4404#[allow(clippy::derive_partial_eq_without_eq)]
4405#[derive(Clone, PartialEq, ::prost::Message)]
4406pub struct MuteRoomTrackRequest {
4407 #[prost(string, tag="1")]
4409 pub room: ::prost::alloc::string::String,
4410 #[prost(string, tag="2")]
4411 pub identity: ::prost::alloc::string::String,
4412 #[prost(string, tag="3")]
4414 pub track_sid: ::prost::alloc::string::String,
4415 #[prost(bool, tag="4")]
4417 pub muted: bool,
4418}
4419#[allow(clippy::derive_partial_eq_without_eq)]
4420#[derive(Clone, PartialEq, ::prost::Message)]
4421pub struct MuteRoomTrackResponse {
4422 #[prost(message, optional, tag="1")]
4423 pub track: ::core::option::Option<TrackInfo>,
4424}
4425#[allow(clippy::derive_partial_eq_without_eq)]
4426#[derive(Clone, PartialEq, ::prost::Message)]
4427pub struct UpdateParticipantRequest {
4428 #[prost(string, tag="1")]
4429 pub room: ::prost::alloc::string::String,
4430 #[prost(string, tag="2")]
4431 pub identity: ::prost::alloc::string::String,
4432 #[prost(string, tag="3")]
4434 pub metadata: ::prost::alloc::string::String,
4435 #[prost(message, optional, tag="4")]
4437 pub permission: ::core::option::Option<ParticipantPermission>,
4438 #[prost(string, tag="5")]
4440 pub name: ::prost::alloc::string::String,
4441 #[prost(map="string, string", tag="6")]
4444 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4445}
4446#[allow(clippy::derive_partial_eq_without_eq)]
4447#[derive(Clone, PartialEq, ::prost::Message)]
4448pub struct UpdateSubscriptionsRequest {
4449 #[prost(string, tag="1")]
4450 pub room: ::prost::alloc::string::String,
4451 #[prost(string, tag="2")]
4452 pub identity: ::prost::alloc::string::String,
4453 #[prost(string, repeated, tag="3")]
4455 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4456 #[prost(bool, tag="4")]
4458 pub subscribe: bool,
4459 #[prost(message, repeated, tag="5")]
4461 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4462}
4463#[allow(clippy::derive_partial_eq_without_eq)]
4465#[derive(Clone, PartialEq, ::prost::Message)]
4466pub struct UpdateSubscriptionsResponse {
4467}
4468#[allow(clippy::derive_partial_eq_without_eq)]
4469#[derive(Clone, PartialEq, ::prost::Message)]
4470pub struct SendDataRequest {
4471 #[prost(string, tag="1")]
4472 pub room: ::prost::alloc::string::String,
4473 #[prost(bytes="vec", tag="2")]
4474 pub data: ::prost::alloc::vec::Vec<u8>,
4475 #[prost(enumeration="data_packet::Kind", tag="3")]
4476 pub kind: i32,
4477 #[deprecated]
4479 #[prost(string, repeated, tag="4")]
4480 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4481 #[prost(string, repeated, tag="6")]
4483 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4484 #[prost(string, optional, tag="5")]
4485 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4486 #[prost(bytes="vec", tag="7")]
4488 pub nonce: ::prost::alloc::vec::Vec<u8>,
4489}
4490#[allow(clippy::derive_partial_eq_without_eq)]
4492#[derive(Clone, PartialEq, ::prost::Message)]
4493pub struct SendDataResponse {
4494}
4495#[allow(clippy::derive_partial_eq_without_eq)]
4496#[derive(Clone, PartialEq, ::prost::Message)]
4497pub struct UpdateRoomMetadataRequest {
4498 #[prost(string, tag="1")]
4499 pub room: ::prost::alloc::string::String,
4500 #[prost(string, tag="2")]
4502 pub metadata: ::prost::alloc::string::String,
4503}
4504#[allow(clippy::derive_partial_eq_without_eq)]
4505#[derive(Clone, PartialEq, ::prost::Message)]
4506pub struct RoomConfiguration {
4507 #[prost(string, tag="1")]
4509 pub name: ::prost::alloc::string::String,
4510 #[prost(uint32, tag="2")]
4512 pub empty_timeout: u32,
4513 #[prost(uint32, tag="3")]
4515 pub departure_timeout: u32,
4516 #[prost(uint32, tag="4")]
4518 pub max_participants: u32,
4519 #[prost(string, tag="11")]
4521 pub metadata: ::prost::alloc::string::String,
4522 #[prost(message, optional, tag="5")]
4524 pub egress: ::core::option::Option<RoomEgress>,
4525 #[prost(uint32, tag="7")]
4527 pub min_playout_delay: u32,
4528 #[prost(uint32, tag="8")]
4529 pub max_playout_delay: u32,
4530 #[prost(bool, tag="9")]
4533 pub sync_streams: bool,
4534 #[prost(message, repeated, tag="10")]
4536 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4537}
4538#[allow(clippy::derive_partial_eq_without_eq)]
4539#[derive(Clone, PartialEq, ::prost::Message)]
4540pub struct ForwardParticipantRequest {
4541 #[prost(string, tag="1")]
4543 pub room: ::prost::alloc::string::String,
4544 #[prost(string, tag="2")]
4546 pub identity: ::prost::alloc::string::String,
4547 #[prost(string, tag="3")]
4549 pub destination_room: ::prost::alloc::string::String,
4550}
4551#[allow(clippy::derive_partial_eq_without_eq)]
4552#[derive(Clone, PartialEq, ::prost::Message)]
4553pub struct ForwardParticipantResponse {
4554}
4555#[allow(clippy::derive_partial_eq_without_eq)]
4556#[derive(Clone, PartialEq, ::prost::Message)]
4557pub struct MoveParticipantRequest {
4558 #[prost(string, tag="1")]
4560 pub room: ::prost::alloc::string::String,
4561 #[prost(string, tag="2")]
4563 pub identity: ::prost::alloc::string::String,
4564 #[prost(string, tag="3")]
4566 pub destination_room: ::prost::alloc::string::String,
4567}
4568#[allow(clippy::derive_partial_eq_without_eq)]
4569#[derive(Clone, PartialEq, ::prost::Message)]
4570pub struct MoveParticipantResponse {
4571}
4572#[allow(clippy::derive_partial_eq_without_eq)]
4573#[derive(Clone, PartialEq, ::prost::Message)]
4574pub struct CreateIngressRequest {
4575 #[prost(enumeration="IngressInput", tag="1")]
4576 pub input_type: i32,
4577 #[prost(string, tag="9")]
4579 pub url: ::prost::alloc::string::String,
4580 #[prost(string, tag="2")]
4582 pub name: ::prost::alloc::string::String,
4583 #[prost(string, tag="3")]
4585 pub room_name: ::prost::alloc::string::String,
4586 #[prost(string, tag="4")]
4588 pub participant_identity: ::prost::alloc::string::String,
4589 #[prost(string, tag="5")]
4591 pub participant_name: ::prost::alloc::string::String,
4592 #[prost(string, tag="10")]
4594 pub participant_metadata: ::prost::alloc::string::String,
4595 #[deprecated]
4597 #[prost(bool, tag="8")]
4598 pub bypass_transcoding: bool,
4599 #[prost(bool, optional, tag="11")]
4601 pub enable_transcoding: ::core::option::Option<bool>,
4602 #[prost(message, optional, tag="6")]
4603 pub audio: ::core::option::Option<IngressAudioOptions>,
4604 #[prost(message, optional, tag="7")]
4605 pub video: ::core::option::Option<IngressVideoOptions>,
4606 #[prost(bool, optional, tag="12")]
4608 pub enabled: ::core::option::Option<bool>,
4609}
4610#[allow(clippy::derive_partial_eq_without_eq)]
4611#[derive(Clone, PartialEq, ::prost::Message)]
4612pub struct IngressAudioOptions {
4613 #[prost(string, tag="1")]
4614 pub name: ::prost::alloc::string::String,
4615 #[prost(enumeration="TrackSource", tag="2")]
4616 pub source: i32,
4617 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4618 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4619}
4620pub mod ingress_audio_options {
4622 #[allow(clippy::derive_partial_eq_without_eq)]
4623#[derive(Clone, PartialEq, ::prost::Oneof)]
4624 pub enum EncodingOptions {
4625 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4626 Preset(i32),
4627 #[prost(message, tag="4")]
4628 Options(super::IngressAudioEncodingOptions),
4629 }
4630}
4631#[allow(clippy::derive_partial_eq_without_eq)]
4632#[derive(Clone, PartialEq, ::prost::Message)]
4633pub struct IngressVideoOptions {
4634 #[prost(string, tag="1")]
4635 pub name: ::prost::alloc::string::String,
4636 #[prost(enumeration="TrackSource", tag="2")]
4637 pub source: i32,
4638 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
4639 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
4640}
4641pub mod ingress_video_options {
4643 #[allow(clippy::derive_partial_eq_without_eq)]
4644#[derive(Clone, PartialEq, ::prost::Oneof)]
4645 pub enum EncodingOptions {
4646 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
4647 Preset(i32),
4648 #[prost(message, tag="4")]
4649 Options(super::IngressVideoEncodingOptions),
4650 }
4651}
4652#[allow(clippy::derive_partial_eq_without_eq)]
4653#[derive(Clone, PartialEq, ::prost::Message)]
4654pub struct IngressAudioEncodingOptions {
4655 #[prost(enumeration="AudioCodec", tag="1")]
4657 pub audio_codec: i32,
4658 #[prost(uint32, tag="2")]
4659 pub bitrate: u32,
4660 #[prost(bool, tag="3")]
4661 pub disable_dtx: bool,
4662 #[prost(uint32, tag="4")]
4663 pub channels: u32,
4664}
4665#[allow(clippy::derive_partial_eq_without_eq)]
4666#[derive(Clone, PartialEq, ::prost::Message)]
4667pub struct IngressVideoEncodingOptions {
4668 #[prost(enumeration="VideoCodec", tag="1")]
4670 pub video_codec: i32,
4671 #[prost(double, tag="2")]
4672 pub frame_rate: f64,
4673 #[prost(message, repeated, tag="3")]
4675 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4676}
4677#[allow(clippy::derive_partial_eq_without_eq)]
4678#[derive(Clone, PartialEq, ::prost::Message)]
4679pub struct IngressInfo {
4680 #[prost(string, tag="1")]
4681 pub ingress_id: ::prost::alloc::string::String,
4682 #[prost(string, tag="2")]
4683 pub name: ::prost::alloc::string::String,
4684 #[prost(string, tag="3")]
4685 pub stream_key: ::prost::alloc::string::String,
4686 #[prost(string, tag="4")]
4688 pub url: ::prost::alloc::string::String,
4689 #[prost(enumeration="IngressInput", tag="5")]
4693 pub input_type: i32,
4694 #[deprecated]
4695 #[prost(bool, tag="13")]
4696 pub bypass_transcoding: bool,
4697 #[prost(bool, optional, tag="15")]
4698 pub enable_transcoding: ::core::option::Option<bool>,
4699 #[prost(message, optional, tag="6")]
4700 pub audio: ::core::option::Option<IngressAudioOptions>,
4701 #[prost(message, optional, tag="7")]
4702 pub video: ::core::option::Option<IngressVideoOptions>,
4703 #[prost(string, tag="8")]
4704 pub room_name: ::prost::alloc::string::String,
4705 #[prost(string, tag="9")]
4706 pub participant_identity: ::prost::alloc::string::String,
4707 #[prost(string, tag="10")]
4708 pub participant_name: ::prost::alloc::string::String,
4709 #[prost(string, tag="14")]
4710 pub participant_metadata: ::prost::alloc::string::String,
4711 #[prost(bool, tag="11")]
4712 pub reusable: bool,
4713 #[prost(message, optional, tag="12")]
4715 pub state: ::core::option::Option<IngressState>,
4716 #[prost(bool, optional, tag="16")]
4718 pub enabled: ::core::option::Option<bool>,
4719}
4720#[allow(clippy::derive_partial_eq_without_eq)]
4721#[derive(Clone, PartialEq, ::prost::Message)]
4722pub struct IngressState {
4723 #[prost(enumeration="ingress_state::Status", tag="1")]
4724 pub status: i32,
4725 #[prost(string, tag="2")]
4727 pub error: ::prost::alloc::string::String,
4728 #[prost(message, optional, tag="3")]
4729 pub video: ::core::option::Option<InputVideoState>,
4730 #[prost(message, optional, tag="4")]
4731 pub audio: ::core::option::Option<InputAudioState>,
4732 #[prost(string, tag="5")]
4734 pub room_id: ::prost::alloc::string::String,
4735 #[prost(int64, tag="7")]
4736 pub started_at: i64,
4737 #[prost(int64, tag="8")]
4738 pub ended_at: i64,
4739 #[prost(int64, tag="10")]
4740 pub updated_at: i64,
4741 #[prost(string, tag="9")]
4742 pub resource_id: ::prost::alloc::string::String,
4743 #[prost(message, repeated, tag="6")]
4744 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
4745}
4746pub mod ingress_state {
4748 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4749 #[repr(i32)]
4750 pub enum Status {
4751 EndpointInactive = 0,
4752 EndpointBuffering = 1,
4753 EndpointPublishing = 2,
4754 EndpointError = 3,
4755 EndpointComplete = 4,
4756 }
4757 impl Status {
4758 pub fn as_str_name(&self) -> &'static str {
4763 match self {
4764 Status::EndpointInactive => "ENDPOINT_INACTIVE",
4765 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
4766 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
4767 Status::EndpointError => "ENDPOINT_ERROR",
4768 Status::EndpointComplete => "ENDPOINT_COMPLETE",
4769 }
4770 }
4771 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4773 match value {
4774 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
4775 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
4776 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
4777 "ENDPOINT_ERROR" => Some(Self::EndpointError),
4778 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
4779 _ => None,
4780 }
4781 }
4782 }
4783}
4784#[allow(clippy::derive_partial_eq_without_eq)]
4785#[derive(Clone, PartialEq, ::prost::Message)]
4786pub struct InputVideoState {
4787 #[prost(string, tag="1")]
4788 pub mime_type: ::prost::alloc::string::String,
4789 #[prost(uint32, tag="2")]
4790 pub average_bitrate: u32,
4791 #[prost(uint32, tag="3")]
4792 pub width: u32,
4793 #[prost(uint32, tag="4")]
4794 pub height: u32,
4795 #[prost(double, tag="5")]
4796 pub framerate: f64,
4797}
4798#[allow(clippy::derive_partial_eq_without_eq)]
4799#[derive(Clone, PartialEq, ::prost::Message)]
4800pub struct InputAudioState {
4801 #[prost(string, tag="1")]
4802 pub mime_type: ::prost::alloc::string::String,
4803 #[prost(uint32, tag="2")]
4804 pub average_bitrate: u32,
4805 #[prost(uint32, tag="3")]
4806 pub channels: u32,
4807 #[prost(uint32, tag="4")]
4808 pub sample_rate: u32,
4809}
4810#[allow(clippy::derive_partial_eq_without_eq)]
4811#[derive(Clone, PartialEq, ::prost::Message)]
4812pub struct UpdateIngressRequest {
4813 #[prost(string, tag="1")]
4814 pub ingress_id: ::prost::alloc::string::String,
4815 #[prost(string, tag="2")]
4816 pub name: ::prost::alloc::string::String,
4817 #[prost(string, tag="3")]
4818 pub room_name: ::prost::alloc::string::String,
4819 #[prost(string, tag="4")]
4820 pub participant_identity: ::prost::alloc::string::String,
4821 #[prost(string, tag="5")]
4822 pub participant_name: ::prost::alloc::string::String,
4823 #[prost(string, tag="9")]
4824 pub participant_metadata: ::prost::alloc::string::String,
4825 #[deprecated]
4826 #[prost(bool, optional, tag="8")]
4827 pub bypass_transcoding: ::core::option::Option<bool>,
4828 #[prost(bool, optional, tag="10")]
4829 pub enable_transcoding: ::core::option::Option<bool>,
4830 #[prost(message, optional, tag="6")]
4831 pub audio: ::core::option::Option<IngressAudioOptions>,
4832 #[prost(message, optional, tag="7")]
4833 pub video: ::core::option::Option<IngressVideoOptions>,
4834 #[prost(bool, optional, tag="11")]
4836 pub enabled: ::core::option::Option<bool>,
4837}
4838#[allow(clippy::derive_partial_eq_without_eq)]
4839#[derive(Clone, PartialEq, ::prost::Message)]
4840pub struct ListIngressRequest {
4841 #[prost(string, tag="1")]
4845 pub room_name: ::prost::alloc::string::String,
4846 #[prost(string, tag="2")]
4848 pub ingress_id: ::prost::alloc::string::String,
4849}
4850#[allow(clippy::derive_partial_eq_without_eq)]
4851#[derive(Clone, PartialEq, ::prost::Message)]
4852pub struct ListIngressResponse {
4853 #[prost(message, repeated, tag="1")]
4854 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
4855}
4856#[allow(clippy::derive_partial_eq_without_eq)]
4857#[derive(Clone, PartialEq, ::prost::Message)]
4858pub struct DeleteIngressRequest {
4859 #[prost(string, tag="1")]
4860 pub ingress_id: ::prost::alloc::string::String,
4861}
4862#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4863#[repr(i32)]
4864pub enum IngressInput {
4865 RtmpInput = 0,
4866 WhipInput = 1,
4867 UrlInput = 2,
4869}
4870impl IngressInput {
4871 pub fn as_str_name(&self) -> &'static str {
4876 match self {
4877 IngressInput::RtmpInput => "RTMP_INPUT",
4878 IngressInput::WhipInput => "WHIP_INPUT",
4879 IngressInput::UrlInput => "URL_INPUT",
4880 }
4881 }
4882 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4884 match value {
4885 "RTMP_INPUT" => Some(Self::RtmpInput),
4886 "WHIP_INPUT" => Some(Self::WhipInput),
4887 "URL_INPUT" => Some(Self::UrlInput),
4888 _ => None,
4889 }
4890 }
4891}
4892#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4893#[repr(i32)]
4894pub enum IngressAudioEncodingPreset {
4895 OpusStereo96kbps = 0,
4897 OpusMono64kbs = 1,
4899}
4900impl IngressAudioEncodingPreset {
4901 pub fn as_str_name(&self) -> &'static str {
4906 match self {
4907 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
4908 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
4909 }
4910 }
4911 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4913 match value {
4914 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
4915 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
4916 _ => None,
4917 }
4918 }
4919}
4920#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4921#[repr(i32)]
4922pub enum IngressVideoEncodingPreset {
4923 H264720p30fps3Layers = 0,
4925 H2641080p30fps3Layers = 1,
4927 H264540p25fps2Layers = 2,
4929 H264720p30fps1Layer = 3,
4931 H2641080p30fps1Layer = 4,
4933 H264720p30fps3LayersHighMotion = 5,
4935 H2641080p30fps3LayersHighMotion = 6,
4937 H264540p25fps2LayersHighMotion = 7,
4939 H264720p30fps1LayerHighMotion = 8,
4941 H2641080p30fps1LayerHighMotion = 9,
4943}
4944impl IngressVideoEncodingPreset {
4945 pub fn as_str_name(&self) -> &'static str {
4950 match self {
4951 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
4952 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
4953 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
4954 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
4955 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
4956 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
4957 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
4958 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
4959 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
4960 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
4961 }
4962 }
4963 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4965 match value {
4966 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
4967 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
4968 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
4969 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
4970 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
4971 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
4972 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
4973 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
4974 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
4975 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
4976 _ => None,
4977 }
4978 }
4979}
4980#[allow(clippy::derive_partial_eq_without_eq)]
4981#[derive(Clone, PartialEq, ::prost::Message)]
4982pub struct WebhookEvent {
4983 #[prost(string, tag="1")]
4987 pub event: ::prost::alloc::string::String,
4988 #[prost(message, optional, tag="2")]
4989 pub room: ::core::option::Option<Room>,
4990 #[prost(message, optional, tag="3")]
4992 pub participant: ::core::option::Option<ParticipantInfo>,
4993 #[prost(message, optional, tag="9")]
4995 pub egress_info: ::core::option::Option<EgressInfo>,
4996 #[prost(message, optional, tag="10")]
4998 pub ingress_info: ::core::option::Option<IngressInfo>,
4999 #[prost(message, optional, tag="8")]
5001 pub track: ::core::option::Option<TrackInfo>,
5002 #[prost(string, tag="6")]
5004 pub id: ::prost::alloc::string::String,
5005 #[prost(int64, tag="7")]
5007 pub created_at: i64,
5008 #[deprecated]
5009 #[prost(int32, tag="11")]
5010 pub num_dropped: i32,
5011}
5012#[allow(clippy::derive_partial_eq_without_eq)]
5014#[derive(Clone, PartialEq, ::prost::Message)]
5015pub struct SipStatus {
5016 #[prost(enumeration="SipStatusCode", tag="1")]
5017 pub code: i32,
5018 #[prost(string, tag="2")]
5019 pub status: ::prost::alloc::string::String,
5020}
5021#[allow(clippy::derive_partial_eq_without_eq)]
5022#[derive(Clone, PartialEq, ::prost::Message)]
5023pub struct CreateSipTrunkRequest {
5024 #[prost(string, repeated, tag="1")]
5027 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5028 #[prost(string, tag="2")]
5030 pub outbound_address: ::prost::alloc::string::String,
5031 #[prost(string, tag="3")]
5033 pub outbound_number: ::prost::alloc::string::String,
5034 #[deprecated]
5035 #[prost(string, repeated, tag="4")]
5036 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5037 #[prost(string, repeated, tag="9")]
5041 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5042 #[prost(string, tag="5")]
5045 pub inbound_username: ::prost::alloc::string::String,
5046 #[prost(string, tag="6")]
5047 pub inbound_password: ::prost::alloc::string::String,
5048 #[prost(string, tag="7")]
5049 pub outbound_username: ::prost::alloc::string::String,
5050 #[prost(string, tag="8")]
5051 pub outbound_password: ::prost::alloc::string::String,
5052 #[prost(string, tag="10")]
5054 pub name: ::prost::alloc::string::String,
5055 #[prost(string, tag="11")]
5057 pub metadata: ::prost::alloc::string::String,
5058}
5059#[allow(clippy::derive_partial_eq_without_eq)]
5060#[derive(Clone, PartialEq, ::prost::Message)]
5061pub struct SipTrunkInfo {
5062 #[prost(string, tag="1")]
5063 pub sip_trunk_id: ::prost::alloc::string::String,
5064 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5065 pub kind: i32,
5066 #[prost(string, repeated, tag="2")]
5069 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5070 #[prost(string, tag="3")]
5072 pub outbound_address: ::prost::alloc::string::String,
5073 #[prost(string, tag="4")]
5075 pub outbound_number: ::prost::alloc::string::String,
5076 #[prost(enumeration="SipTransport", tag="13")]
5078 pub transport: i32,
5079 #[deprecated]
5080 #[prost(string, repeated, tag="5")]
5081 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5082 #[prost(string, repeated, tag="10")]
5086 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5087 #[prost(string, tag="6")]
5090 pub inbound_username: ::prost::alloc::string::String,
5091 #[prost(string, tag="7")]
5092 pub inbound_password: ::prost::alloc::string::String,
5093 #[prost(string, tag="8")]
5094 pub outbound_username: ::prost::alloc::string::String,
5095 #[prost(string, tag="9")]
5096 pub outbound_password: ::prost::alloc::string::String,
5097 #[prost(string, tag="11")]
5099 pub name: ::prost::alloc::string::String,
5100 #[prost(string, tag="12")]
5102 pub metadata: ::prost::alloc::string::String,
5103}
5104pub mod sip_trunk_info {
5106 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5107 #[repr(i32)]
5108 pub enum TrunkKind {
5109 TrunkLegacy = 0,
5110 TrunkInbound = 1,
5111 TrunkOutbound = 2,
5112 }
5113 impl TrunkKind {
5114 pub fn as_str_name(&self) -> &'static str {
5119 match self {
5120 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5121 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5122 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5123 }
5124 }
5125 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5127 match value {
5128 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5129 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5130 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5131 _ => None,
5132 }
5133 }
5134 }
5135}
5136#[allow(clippy::derive_partial_eq_without_eq)]
5137#[derive(Clone, PartialEq, ::prost::Message)]
5138pub struct CreateSipInboundTrunkRequest {
5139 #[prost(message, optional, tag="1")]
5141 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5142}
5143#[allow(clippy::derive_partial_eq_without_eq)]
5144#[derive(Clone, PartialEq, ::prost::Message)]
5145pub struct UpdateSipInboundTrunkRequest {
5146 #[prost(string, tag="1")]
5147 pub sip_trunk_id: ::prost::alloc::string::String,
5148 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5149 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5150}
5151pub mod update_sip_inbound_trunk_request {
5153 #[allow(clippy::derive_partial_eq_without_eq)]
5154#[derive(Clone, PartialEq, ::prost::Oneof)]
5155 pub enum Action {
5156 #[prost(message, tag="2")]
5157 Replace(super::SipInboundTrunkInfo),
5158 #[prost(message, tag="3")]
5159 Update(super::SipInboundTrunkUpdate),
5160 }
5161}
5162#[allow(clippy::derive_partial_eq_without_eq)]
5163#[derive(Clone, PartialEq, ::prost::Message)]
5164pub struct SipInboundTrunkInfo {
5165 #[prost(string, tag="1")]
5166 pub sip_trunk_id: ::prost::alloc::string::String,
5167 #[prost(string, tag="2")]
5169 pub name: ::prost::alloc::string::String,
5170 #[prost(string, tag="3")]
5172 pub metadata: ::prost::alloc::string::String,
5173 #[prost(string, repeated, tag="4")]
5176 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5177 #[prost(string, repeated, tag="5")]
5180 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5181 #[prost(string, repeated, tag="6")]
5184 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5185 #[prost(string, tag="7")]
5188 pub auth_username: ::prost::alloc::string::String,
5189 #[prost(string, tag="8")]
5190 pub auth_password: ::prost::alloc::string::String,
5191 #[prost(map="string, string", tag="9")]
5193 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5194 #[prost(map="string, string", tag="10")]
5196 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5197 #[prost(map="string, string", tag="14")]
5200 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5201 #[prost(enumeration="SipHeaderOptions", tag="15")]
5208 pub include_headers: i32,
5209 #[prost(message, optional, tag="11")]
5211 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5212 #[prost(message, optional, tag="12")]
5214 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5215 #[prost(bool, tag="13")]
5216 pub krisp_enabled: bool,
5217 #[prost(enumeration="SipMediaEncryption", tag="16")]
5218 pub media_encryption: i32,
5219}
5220#[allow(clippy::derive_partial_eq_without_eq)]
5221#[derive(Clone, PartialEq, ::prost::Message)]
5222pub struct SipInboundTrunkUpdate {
5223 #[prost(message, optional, tag="1")]
5224 pub numbers: ::core::option::Option<ListUpdate>,
5225 #[prost(message, optional, tag="2")]
5226 pub allowed_addresses: ::core::option::Option<ListUpdate>,
5227 #[prost(message, optional, tag="3")]
5228 pub allowed_numbers: ::core::option::Option<ListUpdate>,
5229 #[prost(string, optional, tag="4")]
5230 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5231 #[prost(string, optional, tag="5")]
5232 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5233 #[prost(string, optional, tag="6")]
5234 pub name: ::core::option::Option<::prost::alloc::string::String>,
5235 #[prost(string, optional, tag="7")]
5236 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5237 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5238 pub media_encryption: ::core::option::Option<i32>,
5239}
5240#[allow(clippy::derive_partial_eq_without_eq)]
5241#[derive(Clone, PartialEq, ::prost::Message)]
5242pub struct CreateSipOutboundTrunkRequest {
5243 #[prost(message, optional, tag="1")]
5245 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5246}
5247#[allow(clippy::derive_partial_eq_without_eq)]
5248#[derive(Clone, PartialEq, ::prost::Message)]
5249pub struct UpdateSipOutboundTrunkRequest {
5250 #[prost(string, tag="1")]
5251 pub sip_trunk_id: ::prost::alloc::string::String,
5252 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
5253 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
5254}
5255pub mod update_sip_outbound_trunk_request {
5257 #[allow(clippy::derive_partial_eq_without_eq)]
5258#[derive(Clone, PartialEq, ::prost::Oneof)]
5259 pub enum Action {
5260 #[prost(message, tag="2")]
5261 Replace(super::SipOutboundTrunkInfo),
5262 #[prost(message, tag="3")]
5263 Update(super::SipOutboundTrunkUpdate),
5264 }
5265}
5266#[allow(clippy::derive_partial_eq_without_eq)]
5267#[derive(Clone, PartialEq, ::prost::Message)]
5268pub struct SipOutboundTrunkInfo {
5269 #[prost(string, tag="1")]
5270 pub sip_trunk_id: ::prost::alloc::string::String,
5271 #[prost(string, tag="2")]
5273 pub name: ::prost::alloc::string::String,
5274 #[prost(string, tag="3")]
5276 pub metadata: ::prost::alloc::string::String,
5277 #[prost(string, tag="4")]
5280 pub address: ::prost::alloc::string::String,
5281 #[prost(string, tag="14")]
5283 pub destination_country: ::prost::alloc::string::String,
5284 #[prost(enumeration="SipTransport", tag="5")]
5286 pub transport: i32,
5287 #[prost(string, repeated, tag="6")]
5289 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5290 #[prost(string, tag="7")]
5293 pub auth_username: ::prost::alloc::string::String,
5294 #[prost(string, tag="8")]
5295 pub auth_password: ::prost::alloc::string::String,
5296 #[prost(map="string, string", tag="9")]
5299 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5300 #[prost(map="string, string", tag="10")]
5303 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5304 #[prost(map="string, string", tag="11")]
5307 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5308 #[prost(enumeration="SipHeaderOptions", tag="12")]
5315 pub include_headers: i32,
5316 #[prost(enumeration="SipMediaEncryption", tag="13")]
5317 pub media_encryption: i32,
5318}
5319#[allow(clippy::derive_partial_eq_without_eq)]
5320#[derive(Clone, PartialEq, ::prost::Message)]
5321pub struct SipOutboundTrunkUpdate {
5322 #[prost(string, optional, tag="1")]
5323 pub address: ::core::option::Option<::prost::alloc::string::String>,
5324 #[prost(enumeration="SipTransport", optional, tag="2")]
5325 pub transport: ::core::option::Option<i32>,
5326 #[prost(string, optional, tag="9")]
5327 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
5328 #[prost(message, optional, tag="3")]
5329 pub numbers: ::core::option::Option<ListUpdate>,
5330 #[prost(string, optional, tag="4")]
5331 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5332 #[prost(string, optional, tag="5")]
5333 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5334 #[prost(string, optional, tag="6")]
5335 pub name: ::core::option::Option<::prost::alloc::string::String>,
5336 #[prost(string, optional, tag="7")]
5337 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5338 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5339 pub media_encryption: ::core::option::Option<i32>,
5340}
5341#[allow(clippy::derive_partial_eq_without_eq)]
5342#[derive(Clone, PartialEq, ::prost::Message)]
5343pub struct GetSipInboundTrunkRequest {
5344 #[prost(string, tag="1")]
5345 pub sip_trunk_id: ::prost::alloc::string::String,
5346}
5347#[allow(clippy::derive_partial_eq_without_eq)]
5348#[derive(Clone, PartialEq, ::prost::Message)]
5349pub struct GetSipInboundTrunkResponse {
5350 #[prost(message, optional, tag="1")]
5351 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5352}
5353#[allow(clippy::derive_partial_eq_without_eq)]
5354#[derive(Clone, PartialEq, ::prost::Message)]
5355pub struct GetSipOutboundTrunkRequest {
5356 #[prost(string, tag="1")]
5357 pub sip_trunk_id: ::prost::alloc::string::String,
5358}
5359#[allow(clippy::derive_partial_eq_without_eq)]
5360#[derive(Clone, PartialEq, ::prost::Message)]
5361pub struct GetSipOutboundTrunkResponse {
5362 #[prost(message, optional, tag="1")]
5363 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5364}
5365#[allow(clippy::derive_partial_eq_without_eq)]
5366#[derive(Clone, PartialEq, ::prost::Message)]
5367pub struct ListSipTrunkRequest {
5368 #[prost(message, optional, tag="1")]
5369 pub page: ::core::option::Option<Pagination>,
5370}
5371#[allow(clippy::derive_partial_eq_without_eq)]
5372#[derive(Clone, PartialEq, ::prost::Message)]
5373pub struct ListSipTrunkResponse {
5374 #[prost(message, repeated, tag="1")]
5375 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
5376}
5377#[allow(clippy::derive_partial_eq_without_eq)]
5379#[derive(Clone, PartialEq, ::prost::Message)]
5380pub struct ListSipInboundTrunkRequest {
5381 #[prost(message, optional, tag="3")]
5382 pub page: ::core::option::Option<Pagination>,
5383 #[prost(string, repeated, tag="1")]
5386 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5387 #[prost(string, repeated, tag="2")]
5389 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5390}
5391#[allow(clippy::derive_partial_eq_without_eq)]
5392#[derive(Clone, PartialEq, ::prost::Message)]
5393pub struct ListSipInboundTrunkResponse {
5394 #[prost(message, repeated, tag="1")]
5395 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
5396}
5397#[allow(clippy::derive_partial_eq_without_eq)]
5399#[derive(Clone, PartialEq, ::prost::Message)]
5400pub struct ListSipOutboundTrunkRequest {
5401 #[prost(message, optional, tag="3")]
5402 pub page: ::core::option::Option<Pagination>,
5403 #[prost(string, repeated, tag="1")]
5406 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5407 #[prost(string, repeated, tag="2")]
5409 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5410}
5411#[allow(clippy::derive_partial_eq_without_eq)]
5412#[derive(Clone, PartialEq, ::prost::Message)]
5413pub struct ListSipOutboundTrunkResponse {
5414 #[prost(message, repeated, tag="1")]
5415 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
5416}
5417#[allow(clippy::derive_partial_eq_without_eq)]
5418#[derive(Clone, PartialEq, ::prost::Message)]
5419pub struct DeleteSipTrunkRequest {
5420 #[prost(string, tag="1")]
5421 pub sip_trunk_id: ::prost::alloc::string::String,
5422}
5423#[allow(clippy::derive_partial_eq_without_eq)]
5424#[derive(Clone, PartialEq, ::prost::Message)]
5425pub struct SipDispatchRuleDirect {
5426 #[prost(string, tag="1")]
5428 pub room_name: ::prost::alloc::string::String,
5429 #[prost(string, tag="2")]
5431 pub pin: ::prost::alloc::string::String,
5432}
5433#[allow(clippy::derive_partial_eq_without_eq)]
5434#[derive(Clone, PartialEq, ::prost::Message)]
5435pub struct SipDispatchRuleIndividual {
5436 #[prost(string, tag="1")]
5438 pub room_prefix: ::prost::alloc::string::String,
5439 #[prost(string, tag="2")]
5441 pub pin: ::prost::alloc::string::String,
5442}
5443#[allow(clippy::derive_partial_eq_without_eq)]
5444#[derive(Clone, PartialEq, ::prost::Message)]
5445pub struct SipDispatchRuleCallee {
5446 #[prost(string, tag="1")]
5448 pub room_prefix: ::prost::alloc::string::String,
5449 #[prost(string, tag="2")]
5451 pub pin: ::prost::alloc::string::String,
5452 #[prost(bool, tag="3")]
5454 pub randomize: bool,
5455}
5456#[allow(clippy::derive_partial_eq_without_eq)]
5457#[derive(Clone, PartialEq, ::prost::Message)]
5458pub struct SipDispatchRule {
5459 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
5460 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
5461}
5462pub mod sip_dispatch_rule {
5464 #[allow(clippy::derive_partial_eq_without_eq)]
5465#[derive(Clone, PartialEq, ::prost::Oneof)]
5466 pub enum Rule {
5467 #[prost(message, tag="1")]
5471 DispatchRuleDirect(super::SipDispatchRuleDirect),
5472 #[prost(message, tag="2")]
5474 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
5475 #[prost(message, tag="3")]
5477 DispatchRuleCallee(super::SipDispatchRuleCallee),
5478 }
5479}
5480#[allow(clippy::derive_partial_eq_without_eq)]
5481#[derive(Clone, PartialEq, ::prost::Message)]
5482pub struct CreateSipDispatchRuleRequest {
5483 #[prost(message, optional, tag="10")]
5485 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
5486 #[deprecated]
5487 #[prost(message, optional, tag="1")]
5488 pub rule: ::core::option::Option<SipDispatchRule>,
5489 #[deprecated]
5492 #[prost(string, repeated, tag="2")]
5493 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5494 #[deprecated]
5497 #[prost(bool, tag="3")]
5498 pub hide_phone_number: bool,
5499 #[deprecated]
5501 #[prost(string, repeated, tag="6")]
5502 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5503 #[deprecated]
5505 #[prost(string, tag="4")]
5506 pub name: ::prost::alloc::string::String,
5507 #[deprecated]
5510 #[prost(string, tag="5")]
5511 pub metadata: ::prost::alloc::string::String,
5512 #[prost(map="string, string", tag="7")]
5515 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5516 #[deprecated]
5518 #[prost(string, tag="8")]
5519 pub room_preset: ::prost::alloc::string::String,
5520 #[deprecated]
5522 #[prost(message, optional, tag="9")]
5523 pub room_config: ::core::option::Option<RoomConfiguration>,
5524}
5525#[allow(clippy::derive_partial_eq_without_eq)]
5526#[derive(Clone, PartialEq, ::prost::Message)]
5527pub struct UpdateSipDispatchRuleRequest {
5528 #[prost(string, tag="1")]
5529 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5530 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
5531 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
5532}
5533pub mod update_sip_dispatch_rule_request {
5535 #[allow(clippy::derive_partial_eq_without_eq)]
5536#[derive(Clone, PartialEq, ::prost::Oneof)]
5537 pub enum Action {
5538 #[prost(message, tag="2")]
5539 Replace(super::SipDispatchRuleInfo),
5540 #[prost(message, tag="3")]
5541 Update(super::SipDispatchRuleUpdate),
5542 }
5543}
5544#[allow(clippy::derive_partial_eq_without_eq)]
5545#[derive(Clone, PartialEq, ::prost::Message)]
5546pub struct SipDispatchRuleInfo {
5547 #[prost(string, tag="1")]
5548 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5549 #[prost(message, optional, tag="2")]
5550 pub rule: ::core::option::Option<SipDispatchRule>,
5551 #[prost(string, repeated, tag="3")]
5552 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5553 #[prost(bool, tag="4")]
5554 pub hide_phone_number: bool,
5555 #[prost(string, repeated, tag="7")]
5557 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5558 #[prost(string, tag="5")]
5560 pub name: ::prost::alloc::string::String,
5561 #[prost(string, tag="6")]
5564 pub metadata: ::prost::alloc::string::String,
5565 #[prost(map="string, string", tag="8")]
5568 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5569 #[prost(string, tag="9")]
5571 pub room_preset: ::prost::alloc::string::String,
5572 #[prost(message, optional, tag="10")]
5574 pub room_config: ::core::option::Option<RoomConfiguration>,
5575 #[prost(bool, tag="11")]
5576 pub krisp_enabled: bool,
5577 #[prost(enumeration="SipMediaEncryption", tag="12")]
5579 pub media_encryption: i32,
5580}
5581#[allow(clippy::derive_partial_eq_without_eq)]
5582#[derive(Clone, PartialEq, ::prost::Message)]
5583pub struct SipDispatchRuleUpdate {
5584 #[prost(message, optional, tag="1")]
5585 pub trunk_ids: ::core::option::Option<ListUpdate>,
5586 #[prost(message, optional, tag="2")]
5587 pub rule: ::core::option::Option<SipDispatchRule>,
5588 #[prost(string, optional, tag="3")]
5589 pub name: ::core::option::Option<::prost::alloc::string::String>,
5590 #[prost(string, optional, tag="4")]
5591 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5592 #[prost(map="string, string", tag="5")]
5593 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5594 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
5595 pub media_encryption: ::core::option::Option<i32>,
5596}
5597#[allow(clippy::derive_partial_eq_without_eq)]
5599#[derive(Clone, PartialEq, ::prost::Message)]
5600pub struct ListSipDispatchRuleRequest {
5601 #[prost(message, optional, tag="3")]
5602 pub page: ::core::option::Option<Pagination>,
5603 #[prost(string, repeated, tag="1")]
5606 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5607 #[prost(string, repeated, tag="2")]
5609 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5610}
5611#[allow(clippy::derive_partial_eq_without_eq)]
5612#[derive(Clone, PartialEq, ::prost::Message)]
5613pub struct ListSipDispatchRuleResponse {
5614 #[prost(message, repeated, tag="1")]
5615 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
5616}
5617#[allow(clippy::derive_partial_eq_without_eq)]
5618#[derive(Clone, PartialEq, ::prost::Message)]
5619pub struct DeleteSipDispatchRuleRequest {
5620 #[prost(string, tag="1")]
5621 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5622}
5623#[allow(clippy::derive_partial_eq_without_eq)]
5624#[derive(Clone, PartialEq, ::prost::Message)]
5625pub struct SipOutboundConfig {
5626 #[prost(string, tag="1")]
5628 pub hostname: ::prost::alloc::string::String,
5629 #[prost(string, tag="7")]
5631 pub destination_country: ::prost::alloc::string::String,
5632 #[prost(enumeration="SipTransport", tag="2")]
5634 pub transport: i32,
5635 #[prost(string, tag="3")]
5638 pub auth_username: ::prost::alloc::string::String,
5639 #[prost(string, tag="4")]
5640 pub auth_password: ::prost::alloc::string::String,
5641 #[prost(map="string, string", tag="5")]
5644 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5645 #[prost(map="string, string", tag="6")]
5648 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5649}
5650#[allow(clippy::derive_partial_eq_without_eq)]
5653#[derive(Clone, PartialEq, ::prost::Message)]
5654pub struct CreateSipParticipantRequest {
5655 #[prost(string, tag="1")]
5657 pub sip_trunk_id: ::prost::alloc::string::String,
5658 #[prost(message, optional, tag="20")]
5659 pub trunk: ::core::option::Option<SipOutboundConfig>,
5660 #[prost(string, tag="2")]
5662 pub sip_call_to: ::prost::alloc::string::String,
5663 #[prost(string, tag="15")]
5665 pub sip_number: ::prost::alloc::string::String,
5666 #[prost(string, tag="3")]
5668 pub room_name: ::prost::alloc::string::String,
5669 #[prost(string, tag="4")]
5671 pub participant_identity: ::prost::alloc::string::String,
5672 #[prost(string, tag="7")]
5674 pub participant_name: ::prost::alloc::string::String,
5675 #[prost(string, tag="8")]
5677 pub participant_metadata: ::prost::alloc::string::String,
5678 #[prost(map="string, string", tag="9")]
5680 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5681 #[prost(string, tag="5")]
5684 pub dtmf: ::prost::alloc::string::String,
5685 #[deprecated]
5687 #[prost(bool, tag="6")]
5688 pub play_ringtone: bool,
5689 #[prost(bool, tag="13")]
5690 pub play_dialtone: bool,
5691 #[prost(bool, tag="10")]
5694 pub hide_phone_number: bool,
5695 #[prost(map="string, string", tag="16")]
5697 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5698 #[prost(enumeration="SipHeaderOptions", tag="17")]
5705 pub include_headers: i32,
5706 #[prost(message, optional, tag="11")]
5708 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5709 #[prost(message, optional, tag="12")]
5711 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5712 #[prost(bool, tag="14")]
5714 pub krisp_enabled: bool,
5715 #[prost(enumeration="SipMediaEncryption", tag="18")]
5716 pub media_encryption: i32,
5717 #[prost(bool, tag="19")]
5721 pub wait_until_answered: bool,
5722}
5723#[allow(clippy::derive_partial_eq_without_eq)]
5724#[derive(Clone, PartialEq, ::prost::Message)]
5725pub struct SipParticipantInfo {
5726 #[prost(string, tag="1")]
5727 pub participant_id: ::prost::alloc::string::String,
5728 #[prost(string, tag="2")]
5729 pub participant_identity: ::prost::alloc::string::String,
5730 #[prost(string, tag="3")]
5731 pub room_name: ::prost::alloc::string::String,
5732 #[prost(string, tag="4")]
5733 pub sip_call_id: ::prost::alloc::string::String,
5734}
5735#[allow(clippy::derive_partial_eq_without_eq)]
5736#[derive(Clone, PartialEq, ::prost::Message)]
5737pub struct TransferSipParticipantRequest {
5738 #[prost(string, tag="1")]
5739 pub participant_identity: ::prost::alloc::string::String,
5740 #[prost(string, tag="2")]
5741 pub room_name: ::prost::alloc::string::String,
5742 #[prost(string, tag="3")]
5743 pub transfer_to: ::prost::alloc::string::String,
5744 #[prost(bool, tag="4")]
5746 pub play_dialtone: bool,
5747 #[prost(map="string, string", tag="5")]
5749 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5750 #[prost(message, optional, tag="6")]
5752 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5753}
5754#[allow(clippy::derive_partial_eq_without_eq)]
5755#[derive(Clone, PartialEq, ::prost::Message)]
5756pub struct SipCallInfo {
5757 #[prost(string, tag="1")]
5758 pub call_id: ::prost::alloc::string::String,
5759 #[prost(string, tag="2")]
5760 pub trunk_id: ::prost::alloc::string::String,
5761 #[prost(string, tag="16")]
5762 pub dispatch_rule_id: ::prost::alloc::string::String,
5763 #[prost(string, tag="17")]
5764 pub region: ::prost::alloc::string::String,
5765 #[prost(string, tag="3")]
5766 pub room_name: ::prost::alloc::string::String,
5767 #[prost(string, tag="4")]
5769 pub room_id: ::prost::alloc::string::String,
5770 #[prost(string, tag="5")]
5771 pub participant_identity: ::prost::alloc::string::String,
5772 #[prost(map="string, string", tag="18")]
5773 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5774 #[prost(message, optional, tag="6")]
5775 pub from_uri: ::core::option::Option<SipUri>,
5776 #[prost(message, optional, tag="7")]
5777 pub to_uri: ::core::option::Option<SipUri>,
5778 #[deprecated]
5779 #[prost(int64, tag="9")]
5780 pub created_at: i64,
5781 #[deprecated]
5782 #[prost(int64, tag="10")]
5783 pub started_at: i64,
5784 #[deprecated]
5785 #[prost(int64, tag="11")]
5786 pub ended_at: i64,
5787 #[prost(enumeration="SipFeature", repeated, tag="14")]
5788 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
5789 #[prost(enumeration="SipCallDirection", tag="15")]
5790 pub call_direction: i32,
5791 #[prost(enumeration="SipCallStatus", tag="8")]
5792 pub call_status: i32,
5793 #[prost(int64, tag="22")]
5794 pub created_at_ns: i64,
5795 #[prost(int64, tag="23")]
5796 pub started_at_ns: i64,
5797 #[prost(int64, tag="24")]
5798 pub ended_at_ns: i64,
5799 #[prost(enumeration="DisconnectReason", tag="12")]
5800 pub disconnect_reason: i32,
5801 #[prost(string, tag="13")]
5802 pub error: ::prost::alloc::string::String,
5803 #[prost(message, optional, tag="19")]
5804 pub call_status_code: ::core::option::Option<SipStatus>,
5805 #[prost(string, tag="20")]
5806 pub audio_codec: ::prost::alloc::string::String,
5807 #[prost(string, tag="21")]
5808 pub media_encryption: ::prost::alloc::string::String,
5809}
5810#[allow(clippy::derive_partial_eq_without_eq)]
5811#[derive(Clone, PartialEq, ::prost::Message)]
5812pub struct SipTransferInfo {
5813 #[prost(string, tag="1")]
5814 pub transfer_id: ::prost::alloc::string::String,
5815 #[prost(string, tag="2")]
5816 pub call_id: ::prost::alloc::string::String,
5817 #[prost(string, tag="3")]
5818 pub transfer_to: ::prost::alloc::string::String,
5819 #[prost(int64, tag="4")]
5820 pub transfer_initiated_at_ns: i64,
5821 #[prost(int64, tag="5")]
5822 pub transfer_completed_at_ns: i64,
5823 #[prost(enumeration="SipTransferStatus", tag="6")]
5824 pub transfer_status: i32,
5825 #[prost(string, tag="7")]
5826 pub error: ::prost::alloc::string::String,
5827 #[prost(message, optional, tag="8")]
5828 pub transfer_status_code: ::core::option::Option<SipStatus>,
5829}
5830#[allow(clippy::derive_partial_eq_without_eq)]
5831#[derive(Clone, PartialEq, ::prost::Message)]
5832pub struct SipUri {
5833 #[prost(string, tag="1")]
5834 pub user: ::prost::alloc::string::String,
5835 #[prost(string, tag="2")]
5836 pub host: ::prost::alloc::string::String,
5837 #[prost(string, tag="3")]
5838 pub ip: ::prost::alloc::string::String,
5839 #[prost(uint32, tag="4")]
5840 pub port: u32,
5841 #[prost(enumeration="SipTransport", tag="5")]
5842 pub transport: i32,
5843}
5844#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5845#[repr(i32)]
5846pub enum SipStatusCode {
5847 SipStatusUnknown = 0,
5848 SipStatusTrying = 100,
5849 SipStatusRinging = 180,
5850 SipStatusCallIsForwarded = 181,
5851 SipStatusQueued = 182,
5852 SipStatusSessionProgress = 183,
5853 SipStatusOk = 200,
5854 SipStatusAccepted = 202,
5855 SipStatusMovedPermanently = 301,
5856 SipStatusMovedTemporarily = 302,
5857 SipStatusUseProxy = 305,
5858 SipStatusBadRequest = 400,
5859 SipStatusUnauthorized = 401,
5860 SipStatusPaymentRequired = 402,
5861 SipStatusForbidden = 403,
5862 SipStatusNotfound = 404,
5863 SipStatusMethodNotAllowed = 405,
5864 SipStatusNotAcceptable = 406,
5865 SipStatusProxyAuthRequired = 407,
5866 SipStatusRequestTimeout = 408,
5867 SipStatusConflict = 409,
5868 SipStatusGone = 410,
5869 SipStatusRequestEntityTooLarge = 413,
5870 SipStatusRequestUriTooLong = 414,
5871 SipStatusUnsupportedMediaType = 415,
5872 SipStatusRequestedRangeNotSatisfiable = 416,
5873 SipStatusBadExtension = 420,
5874 SipStatusExtensionRequired = 421,
5875 SipStatusIntervalTooBrief = 423,
5876 SipStatusTemporarilyUnavailable = 480,
5877 SipStatusCallTransactionDoesNotExists = 481,
5878 SipStatusLoopDetected = 482,
5879 SipStatusTooManyHops = 483,
5880 SipStatusAddressIncomplete = 484,
5881 SipStatusAmbiguous = 485,
5882 SipStatusBusyHere = 486,
5883 SipStatusRequestTerminated = 487,
5884 SipStatusNotAcceptableHere = 488,
5885 SipStatusInternalServerError = 500,
5886 SipStatusNotImplemented = 501,
5887 SipStatusBadGateway = 502,
5888 SipStatusServiceUnavailable = 503,
5889 SipStatusGatewayTimeout = 504,
5890 SipStatusVersionNotSupported = 505,
5891 SipStatusMessageTooLarge = 513,
5892 SipStatusGlobalBusyEverywhere = 600,
5893 SipStatusGlobalDecline = 603,
5894 SipStatusGlobalDoesNotExistAnywhere = 604,
5895 SipStatusGlobalNotAcceptable = 606,
5896}
5897impl SipStatusCode {
5898 pub fn as_str_name(&self) -> &'static str {
5903 match self {
5904 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
5905 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
5906 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
5907 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
5908 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
5909 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
5910 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
5911 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
5912 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
5913 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
5914 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
5915 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
5916 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
5917 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
5918 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
5919 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
5920 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
5921 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
5922 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
5923 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
5924 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
5925 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
5926 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
5927 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
5928 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
5929 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
5930 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
5931 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
5932 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
5933 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
5934 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
5935 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
5936 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
5937 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
5938 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
5939 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
5940 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
5941 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
5942 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
5943 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
5944 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
5945 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
5946 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
5947 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
5948 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
5949 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
5950 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
5951 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
5952 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
5953 }
5954 }
5955 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5957 match value {
5958 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
5959 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
5960 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
5961 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
5962 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
5963 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
5964 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
5965 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
5966 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
5967 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
5968 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
5969 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
5970 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
5971 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
5972 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
5973 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
5974 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
5975 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
5976 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
5977 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
5978 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
5979 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
5980 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
5981 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
5982 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
5983 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
5984 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
5985 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
5986 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
5987 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
5988 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
5989 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
5990 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
5991 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
5992 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
5993 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
5994 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
5995 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
5996 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
5997 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
5998 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
5999 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6000 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6001 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6002 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6003 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6004 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6005 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6006 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6007 _ => None,
6008 }
6009 }
6010}
6011#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6012#[repr(i32)]
6013pub enum SipTransport {
6014 Auto = 0,
6015 Udp = 1,
6016 Tcp = 2,
6017 Tls = 3,
6018}
6019impl SipTransport {
6020 pub fn as_str_name(&self) -> &'static str {
6025 match self {
6026 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
6027 SipTransport::Udp => "SIP_TRANSPORT_UDP",
6028 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
6029 SipTransport::Tls => "SIP_TRANSPORT_TLS",
6030 }
6031 }
6032 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6034 match value {
6035 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
6036 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
6037 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
6038 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
6039 _ => None,
6040 }
6041 }
6042}
6043#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6044#[repr(i32)]
6045pub enum SipHeaderOptions {
6046 SipNoHeaders = 0,
6048 SipXHeaders = 1,
6050 SipAllHeaders = 2,
6052}
6053impl SipHeaderOptions {
6054 pub fn as_str_name(&self) -> &'static str {
6059 match self {
6060 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
6061 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
6062 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
6063 }
6064 }
6065 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6067 match value {
6068 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
6069 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
6070 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
6071 _ => None,
6072 }
6073 }
6074}
6075#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6076#[repr(i32)]
6077pub enum SipMediaEncryption {
6078 SipMediaEncryptDisable = 0,
6080 SipMediaEncryptAllow = 1,
6082 SipMediaEncryptRequire = 2,
6084}
6085impl SipMediaEncryption {
6086 pub fn as_str_name(&self) -> &'static str {
6091 match self {
6092 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
6093 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
6094 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
6095 }
6096 }
6097 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6099 match value {
6100 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
6101 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
6102 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
6103 _ => None,
6104 }
6105 }
6106}
6107#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6108#[repr(i32)]
6109pub enum SipCallStatus {
6110 ScsCallIncoming = 0,
6112 ScsParticipantJoined = 1,
6114 ScsActive = 2,
6116 ScsDisconnected = 3,
6118 ScsError = 4,
6120}
6121impl SipCallStatus {
6122 pub fn as_str_name(&self) -> &'static str {
6127 match self {
6128 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
6129 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
6130 SipCallStatus::ScsActive => "SCS_ACTIVE",
6131 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
6132 SipCallStatus::ScsError => "SCS_ERROR",
6133 }
6134 }
6135 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6137 match value {
6138 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
6139 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
6140 "SCS_ACTIVE" => Some(Self::ScsActive),
6141 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
6142 "SCS_ERROR" => Some(Self::ScsError),
6143 _ => None,
6144 }
6145 }
6146}
6147#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6148#[repr(i32)]
6149pub enum SipTransferStatus {
6150 StsTransferOngoing = 0,
6151 StsTransferFailed = 1,
6152 StsTransferSuccessful = 2,
6153}
6154impl SipTransferStatus {
6155 pub fn as_str_name(&self) -> &'static str {
6160 match self {
6161 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
6162 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
6163 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
6164 }
6165 }
6166 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6168 match value {
6169 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
6170 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
6171 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
6172 _ => None,
6173 }
6174 }
6175}
6176#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6177#[repr(i32)]
6178pub enum SipFeature {
6179 None = 0,
6180 KrispEnabled = 1,
6181}
6182impl SipFeature {
6183 pub fn as_str_name(&self) -> &'static str {
6188 match self {
6189 SipFeature::None => "NONE",
6190 SipFeature::KrispEnabled => "KRISP_ENABLED",
6191 }
6192 }
6193 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6195 match value {
6196 "NONE" => Some(Self::None),
6197 "KRISP_ENABLED" => Some(Self::KrispEnabled),
6198 _ => None,
6199 }
6200 }
6201}
6202#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6203#[repr(i32)]
6204pub enum SipCallDirection {
6205 ScdUnknown = 0,
6206 ScdInbound = 1,
6207 ScdOutbound = 2,
6208}
6209impl SipCallDirection {
6210 pub fn as_str_name(&self) -> &'static str {
6215 match self {
6216 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
6217 SipCallDirection::ScdInbound => "SCD_INBOUND",
6218 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
6219 }
6220 }
6221 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6223 match value {
6224 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
6225 "SCD_INBOUND" => Some(Self::ScdInbound),
6226 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
6227 _ => None,
6228 }
6229 }
6230}
6231include!("livekit.serde.rs");
6232