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#[allow(clippy::derive_partial_eq_without_eq)]
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct MetricsRecordingHeader {
84 #[prost(string, tag="1")]
85 pub room_id: ::prost::alloc::string::String,
86 #[prost(uint64, tag="3")]
88 pub duration: u64,
89 #[prost(message, optional, tag="4")]
90 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
91}
92#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
102#[repr(i32)]
103pub enum MetricLabel {
104 AgentsLlmTtft = 0,
106 AgentsSttTtft = 1,
108 AgentsTtsTtfb = 2,
110 ClientVideoSubscriberFreezeCount = 3,
112 ClientVideoSubscriberTotalFreezeDuration = 4,
114 ClientVideoSubscriberPauseCount = 5,
116 ClientVideoSubscriberTotalPausesDuration = 6,
118 ClientAudioSubscriberConcealedSamples = 7,
120 ClientAudioSubscriberSilentConcealedSamples = 8,
122 ClientAudioSubscriberConcealmentEvents = 9,
124 ClientAudioSubscriberInterruptionCount = 10,
126 ClientAudioSubscriberTotalInterruptionDuration = 11,
128 ClientSubscriberJitterBufferDelay = 12,
130 ClientSubscriberJitterBufferEmittedCount = 13,
132 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
134 ClientVideoPublisherQualityLimitationDurationCpu = 15,
136 ClientVideoPublisherQualityLimitationDurationOther = 16,
138 PublisherRtt = 17,
140 ServerMeshRtt = 18,
142 SubscriberRtt = 19,
144 PredefinedMaxValue = 4096,
145}
146impl MetricLabel {
147 pub fn as_str_name(&self) -> &'static str {
152 match self {
153 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
154 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
155 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
156 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
157 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
158 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
159 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
160 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
161 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
162 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
163 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
164 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
165 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
166 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
167 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
168 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
169 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
170 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
171 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
172 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
173 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
174 }
175 }
176 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
178 match value {
179 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
180 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
181 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
182 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
183 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
184 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
185 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
186 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
187 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
188 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
189 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
190 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
191 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
192 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
193 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
194 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
195 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
196 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
197 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
198 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
199 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
200 _ => None,
201 }
202 }
203}
204#[allow(clippy::derive_partial_eq_without_eq)]
205#[derive(Clone, PartialEq, ::prost::Message)]
206pub struct Pagination {
207 #[prost(string, tag="1")]
209 pub after_id: ::prost::alloc::string::String,
210 #[prost(int32, tag="2")]
211 pub limit: i32,
212}
213#[allow(clippy::derive_partial_eq_without_eq)]
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct TokenPagination {
216 #[prost(string, tag="1")]
217 pub token: ::prost::alloc::string::String,
218}
219#[allow(clippy::derive_partial_eq_without_eq)]
221#[derive(Clone, PartialEq, ::prost::Message)]
222pub struct ListUpdate {
223 #[prost(string, repeated, tag="1")]
225 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
226 #[prost(string, repeated, tag="2")]
228 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
229 #[prost(string, repeated, tag="3")]
231 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
232 #[prost(bool, tag="4")]
234 pub clear: bool,
235}
236#[allow(clippy::derive_partial_eq_without_eq)]
237#[derive(Clone, PartialEq, ::prost::Message)]
238pub struct Room {
239 #[prost(string, tag="1")]
240 pub sid: ::prost::alloc::string::String,
241 #[prost(string, tag="2")]
242 pub name: ::prost::alloc::string::String,
243 #[prost(uint32, tag="3")]
244 pub empty_timeout: u32,
245 #[prost(uint32, tag="14")]
246 pub departure_timeout: u32,
247 #[prost(uint32, tag="4")]
248 pub max_participants: u32,
249 #[prost(int64, tag="5")]
250 pub creation_time: i64,
251 #[prost(int64, tag="15")]
252 pub creation_time_ms: i64,
253 #[prost(string, tag="6")]
254 pub turn_password: ::prost::alloc::string::String,
255 #[prost(message, repeated, tag="7")]
256 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
257 #[prost(string, tag="8")]
258 pub metadata: ::prost::alloc::string::String,
259 #[prost(uint32, tag="9")]
260 pub num_participants: u32,
261 #[prost(uint32, tag="11")]
262 pub num_publishers: u32,
263 #[prost(bool, tag="10")]
264 pub active_recording: bool,
265 #[prost(message, optional, tag="13")]
266 pub version: ::core::option::Option<TimedVersion>,
267}
268#[allow(clippy::derive_partial_eq_without_eq)]
269#[derive(Clone, PartialEq, ::prost::Message)]
270pub struct Codec {
271 #[prost(string, tag="1")]
272 pub mime: ::prost::alloc::string::String,
273 #[prost(string, tag="2")]
274 pub fmtp_line: ::prost::alloc::string::String,
275}
276#[allow(clippy::derive_partial_eq_without_eq)]
277#[derive(Clone, PartialEq, ::prost::Message)]
278pub struct PlayoutDelay {
279 #[prost(bool, tag="1")]
280 pub enabled: bool,
281 #[prost(uint32, tag="2")]
282 pub min: u32,
283 #[prost(uint32, tag="3")]
284 pub max: u32,
285}
286#[allow(clippy::derive_partial_eq_without_eq)]
287#[derive(Clone, PartialEq, ::prost::Message)]
288pub struct ParticipantPermission {
289 #[prost(bool, tag="1")]
291 pub can_subscribe: bool,
292 #[prost(bool, tag="2")]
294 pub can_publish: bool,
295 #[prost(bool, tag="3")]
297 pub can_publish_data: bool,
298 #[prost(enumeration="TrackSource", repeated, tag="9")]
300 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
301 #[prost(bool, tag="7")]
303 pub hidden: bool,
304 #[deprecated]
307 #[prost(bool, tag="8")]
308 pub recorder: bool,
309 #[prost(bool, tag="10")]
311 pub can_update_metadata: bool,
312 #[deprecated]
315 #[prost(bool, tag="11")]
316 pub agent: bool,
317 #[prost(bool, tag="12")]
319 pub can_subscribe_metrics: bool,
320}
321#[allow(clippy::derive_partial_eq_without_eq)]
322#[derive(Clone, PartialEq, ::prost::Message)]
323pub struct ParticipantInfo {
324 #[prost(string, tag="1")]
325 pub sid: ::prost::alloc::string::String,
326 #[prost(string, tag="2")]
327 pub identity: ::prost::alloc::string::String,
328 #[prost(enumeration="participant_info::State", tag="3")]
329 pub state: i32,
330 #[prost(message, repeated, tag="4")]
331 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
332 #[prost(string, tag="5")]
333 pub metadata: ::prost::alloc::string::String,
334 #[prost(int64, tag="6")]
336 pub joined_at: i64,
337 #[prost(int64, tag="17")]
339 pub joined_at_ms: i64,
340 #[prost(string, tag="9")]
341 pub name: ::prost::alloc::string::String,
342 #[prost(uint32, tag="10")]
343 pub version: u32,
344 #[prost(message, optional, tag="11")]
345 pub permission: ::core::option::Option<ParticipantPermission>,
346 #[prost(string, tag="12")]
347 pub region: ::prost::alloc::string::String,
348 #[prost(bool, tag="13")]
351 pub is_publisher: bool,
352 #[prost(enumeration="participant_info::Kind", tag="14")]
353 pub kind: i32,
354 #[prost(map="string, string", tag="15")]
355 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
356 #[prost(enumeration="DisconnectReason", tag="16")]
357 pub disconnect_reason: i32,
358 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
359 pub kind_details: ::prost::alloc::vec::Vec<i32>,
360}
361pub mod participant_info {
363 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
364 #[repr(i32)]
365 pub enum State {
366 Joining = 0,
368 Joined = 1,
370 Active = 2,
372 Disconnected = 3,
374 }
375 impl State {
376 pub fn as_str_name(&self) -> &'static str {
381 match self {
382 State::Joining => "JOINING",
383 State::Joined => "JOINED",
384 State::Active => "ACTIVE",
385 State::Disconnected => "DISCONNECTED",
386 }
387 }
388 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
390 match value {
391 "JOINING" => Some(Self::Joining),
392 "JOINED" => Some(Self::Joined),
393 "ACTIVE" => Some(Self::Active),
394 "DISCONNECTED" => Some(Self::Disconnected),
395 _ => None,
396 }
397 }
398 }
399 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
400 #[repr(i32)]
401 pub enum Kind {
402 Standard = 0,
404 Ingress = 1,
406 Egress = 2,
408 Sip = 3,
410 Agent = 4,
412 Connector = 7,
416 }
417 impl Kind {
418 pub fn as_str_name(&self) -> &'static str {
423 match self {
424 Kind::Standard => "STANDARD",
425 Kind::Ingress => "INGRESS",
426 Kind::Egress => "EGRESS",
427 Kind::Sip => "SIP",
428 Kind::Agent => "AGENT",
429 Kind::Connector => "CONNECTOR",
430 }
431 }
432 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
434 match value {
435 "STANDARD" => Some(Self::Standard),
436 "INGRESS" => Some(Self::Ingress),
437 "EGRESS" => Some(Self::Egress),
438 "SIP" => Some(Self::Sip),
439 "AGENT" => Some(Self::Agent),
440 "CONNECTOR" => Some(Self::Connector),
441 _ => None,
442 }
443 }
444 }
445 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
446 #[repr(i32)]
447 pub enum KindDetail {
448 CloudAgent = 0,
449 Forwarded = 1,
450 ConnectorWhatsapp = 2,
451 ConnectorTwilio = 3,
452 }
453 impl KindDetail {
454 pub fn as_str_name(&self) -> &'static str {
459 match self {
460 KindDetail::CloudAgent => "CLOUD_AGENT",
461 KindDetail::Forwarded => "FORWARDED",
462 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
463 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
464 }
465 }
466 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
468 match value {
469 "CLOUD_AGENT" => Some(Self::CloudAgent),
470 "FORWARDED" => Some(Self::Forwarded),
471 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
472 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
473 _ => None,
474 }
475 }
476 }
477}
478#[allow(clippy::derive_partial_eq_without_eq)]
479#[derive(Clone, PartialEq, ::prost::Message)]
480pub struct Encryption {
481}
482pub mod encryption {
484 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
485 #[repr(i32)]
486 pub enum Type {
487 None = 0,
488 Gcm = 1,
489 Custom = 2,
490 }
491 impl Type {
492 pub fn as_str_name(&self) -> &'static str {
497 match self {
498 Type::None => "NONE",
499 Type::Gcm => "GCM",
500 Type::Custom => "CUSTOM",
501 }
502 }
503 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
505 match value {
506 "NONE" => Some(Self::None),
507 "GCM" => Some(Self::Gcm),
508 "CUSTOM" => Some(Self::Custom),
509 _ => None,
510 }
511 }
512 }
513}
514#[allow(clippy::derive_partial_eq_without_eq)]
515#[derive(Clone, PartialEq, ::prost::Message)]
516pub struct SimulcastCodecInfo {
517 #[prost(string, tag="1")]
518 pub mime_type: ::prost::alloc::string::String,
519 #[prost(string, tag="2")]
520 pub mid: ::prost::alloc::string::String,
521 #[prost(string, tag="3")]
522 pub cid: ::prost::alloc::string::String,
523 #[prost(message, repeated, tag="4")]
524 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
525 #[prost(enumeration="video_layer::Mode", tag="5")]
526 pub video_layer_mode: i32,
527 #[prost(string, tag="6")]
532 pub sdp_cid: ::prost::alloc::string::String,
533}
534#[allow(clippy::derive_partial_eq_without_eq)]
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct TrackInfo {
537 #[prost(string, tag="1")]
538 pub sid: ::prost::alloc::string::String,
539 #[prost(enumeration="TrackType", tag="2")]
540 pub r#type: i32,
541 #[prost(string, tag="3")]
542 pub name: ::prost::alloc::string::String,
543 #[prost(bool, tag="4")]
544 pub muted: bool,
545 #[prost(uint32, tag="5")]
548 pub width: u32,
549 #[prost(uint32, tag="6")]
551 pub height: u32,
552 #[deprecated]
556 #[prost(bool, tag="7")]
557 pub simulcast: bool,
558 #[deprecated]
562 #[prost(bool, tag="8")]
563 pub disable_dtx: bool,
564 #[prost(enumeration="TrackSource", tag="9")]
566 pub source: i32,
567 #[deprecated]
569 #[prost(message, repeated, tag="10")]
570 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
571 #[prost(string, tag="11")]
573 pub mime_type: ::prost::alloc::string::String,
574 #[prost(string, tag="12")]
575 pub mid: ::prost::alloc::string::String,
576 #[prost(message, repeated, tag="13")]
577 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
578 #[deprecated]
580 #[prost(bool, tag="14")]
581 pub stereo: bool,
582 #[prost(bool, tag="15")]
584 pub disable_red: bool,
585 #[prost(enumeration="encryption::Type", tag="16")]
586 pub encryption: i32,
587 #[prost(string, tag="17")]
588 pub stream: ::prost::alloc::string::String,
589 #[prost(message, optional, tag="18")]
590 pub version: ::core::option::Option<TimedVersion>,
591 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
592 pub audio_features: ::prost::alloc::vec::Vec<i32>,
593 #[prost(enumeration="BackupCodecPolicy", tag="20")]
594 pub backup_codec_policy: i32,
595}
596#[allow(clippy::derive_partial_eq_without_eq)]
598#[derive(Clone, PartialEq, ::prost::Message)]
599pub struct VideoLayer {
600 #[prost(enumeration="VideoQuality", tag="1")]
602 pub quality: i32,
603 #[prost(uint32, tag="2")]
604 pub width: u32,
605 #[prost(uint32, tag="3")]
606 pub height: u32,
607 #[prost(uint32, tag="4")]
609 pub bitrate: u32,
610 #[prost(uint32, tag="5")]
611 pub ssrc: u32,
612 #[prost(int32, tag="6")]
613 pub spatial_layer: i32,
614 #[prost(string, tag="7")]
615 pub rid: ::prost::alloc::string::String,
616}
617pub mod video_layer {
619 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
620 #[repr(i32)]
621 pub enum Mode {
622 Unused = 0,
623 OneSpatialLayerPerStream = 1,
624 MultipleSpatialLayersPerStream = 2,
625 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
626 }
627 impl Mode {
628 pub fn as_str_name(&self) -> &'static str {
633 match self {
634 Mode::Unused => "MODE_UNUSED",
635 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
636 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
637 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
638 }
639 }
640 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
642 match value {
643 "MODE_UNUSED" => Some(Self::Unused),
644 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
645 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
646 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
647 _ => None,
648 }
649 }
650 }
651}
652#[allow(clippy::derive_partial_eq_without_eq)]
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct DataPacket {
656 #[deprecated]
657 #[prost(enumeration="data_packet::Kind", tag="1")]
658 pub kind: i32,
659 #[prost(string, tag="4")]
661 pub participant_identity: ::prost::alloc::string::String,
662 #[prost(string, repeated, tag="5")]
664 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
665 #[prost(uint32, tag="16")]
667 pub sequence: u32,
668 #[prost(string, tag="17")]
670 pub participant_sid: ::prost::alloc::string::String,
671 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
672 pub value: ::core::option::Option<data_packet::Value>,
673}
674pub mod data_packet {
676 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
677 #[repr(i32)]
678 pub enum Kind {
679 Reliable = 0,
680 Lossy = 1,
681 }
682 impl Kind {
683 pub fn as_str_name(&self) -> &'static str {
688 match self {
689 Kind::Reliable => "RELIABLE",
690 Kind::Lossy => "LOSSY",
691 }
692 }
693 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
695 match value {
696 "RELIABLE" => Some(Self::Reliable),
697 "LOSSY" => Some(Self::Lossy),
698 _ => None,
699 }
700 }
701 }
702 #[allow(clippy::derive_partial_eq_without_eq)]
703#[derive(Clone, PartialEq, ::prost::Oneof)]
704 pub enum Value {
705 #[prost(message, tag="2")]
706 User(super::UserPacket),
707 #[prost(message, tag="3")]
708 Speaker(super::ActiveSpeakerUpdate),
709 #[prost(message, tag="6")]
710 SipDtmf(super::SipDtmf),
711 #[prost(message, tag="7")]
712 Transcription(super::Transcription),
713 #[prost(message, tag="8")]
714 Metrics(super::MetricsBatch),
715 #[prost(message, tag="9")]
716 ChatMessage(super::ChatMessage),
717 #[prost(message, tag="10")]
718 RpcRequest(super::RpcRequest),
719 #[prost(message, tag="11")]
720 RpcAck(super::RpcAck),
721 #[prost(message, tag="12")]
722 RpcResponse(super::RpcResponse),
723 #[prost(message, tag="13")]
724 StreamHeader(super::data_stream::Header),
725 #[prost(message, tag="14")]
726 StreamChunk(super::data_stream::Chunk),
727 #[prost(message, tag="15")]
728 StreamTrailer(super::data_stream::Trailer),
729 #[prost(message, tag="18")]
730 EncryptedPacket(super::EncryptedPacket),
731 }
732}
733#[allow(clippy::derive_partial_eq_without_eq)]
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct EncryptedPacket {
736 #[prost(enumeration="encryption::Type", tag="1")]
737 pub encryption_type: i32,
738 #[prost(bytes="vec", tag="2")]
739 pub iv: ::prost::alloc::vec::Vec<u8>,
740 #[prost(uint32, tag="3")]
741 pub key_index: u32,
742 #[prost(bytes="vec", tag="4")]
744 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
745}
746#[allow(clippy::derive_partial_eq_without_eq)]
747#[derive(Clone, PartialEq, ::prost::Message)]
748pub struct EncryptedPacketPayload {
749 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
750 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
751}
752pub mod encrypted_packet_payload {
754 #[allow(clippy::derive_partial_eq_without_eq)]
755#[derive(Clone, PartialEq, ::prost::Oneof)]
756 pub enum Value {
757 #[prost(message, tag="1")]
758 User(super::UserPacket),
759 #[prost(message, tag="3")]
760 ChatMessage(super::ChatMessage),
761 #[prost(message, tag="4")]
762 RpcRequest(super::RpcRequest),
763 #[prost(message, tag="5")]
764 RpcAck(super::RpcAck),
765 #[prost(message, tag="6")]
766 RpcResponse(super::RpcResponse),
767 #[prost(message, tag="7")]
768 StreamHeader(super::data_stream::Header),
769 #[prost(message, tag="8")]
770 StreamChunk(super::data_stream::Chunk),
771 #[prost(message, tag="9")]
772 StreamTrailer(super::data_stream::Trailer),
773 }
774}
775#[allow(clippy::derive_partial_eq_without_eq)]
776#[derive(Clone, PartialEq, ::prost::Message)]
777pub struct ActiveSpeakerUpdate {
778 #[prost(message, repeated, tag="1")]
779 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
780}
781#[allow(clippy::derive_partial_eq_without_eq)]
782#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct SpeakerInfo {
784 #[prost(string, tag="1")]
785 pub sid: ::prost::alloc::string::String,
786 #[prost(float, tag="2")]
788 pub level: f32,
789 #[prost(bool, tag="3")]
791 pub active: bool,
792}
793#[allow(clippy::derive_partial_eq_without_eq)]
794#[derive(Clone, PartialEq, ::prost::Message)]
795pub struct UserPacket {
796 #[deprecated]
798 #[prost(string, tag="1")]
799 pub participant_sid: ::prost::alloc::string::String,
800 #[deprecated]
801 #[prost(string, tag="5")]
802 pub participant_identity: ::prost::alloc::string::String,
803 #[prost(bytes="vec", tag="2")]
805 pub payload: ::prost::alloc::vec::Vec<u8>,
806 #[deprecated]
808 #[prost(string, repeated, tag="3")]
809 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
810 #[deprecated]
812 #[prost(string, repeated, tag="6")]
813 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
814 #[prost(string, optional, tag="4")]
816 pub topic: ::core::option::Option<::prost::alloc::string::String>,
817 #[prost(string, optional, tag="8")]
819 pub id: ::core::option::Option<::prost::alloc::string::String>,
820 #[prost(uint64, optional, tag="9")]
822 pub start_time: ::core::option::Option<u64>,
823 #[prost(uint64, optional, tag="10")]
824 pub end_time: ::core::option::Option<u64>,
825 #[prost(bytes="vec", tag="11")]
827 pub nonce: ::prost::alloc::vec::Vec<u8>,
828}
829#[allow(clippy::derive_partial_eq_without_eq)]
830#[derive(Clone, PartialEq, ::prost::Message)]
831pub struct SipDtmf {
832 #[prost(uint32, tag="3")]
833 pub code: u32,
834 #[prost(string, tag="4")]
835 pub digit: ::prost::alloc::string::String,
836}
837#[allow(clippy::derive_partial_eq_without_eq)]
838#[derive(Clone, PartialEq, ::prost::Message)]
839pub struct Transcription {
840 #[prost(string, tag="2")]
842 pub transcribed_participant_identity: ::prost::alloc::string::String,
843 #[prost(string, tag="3")]
844 pub track_id: ::prost::alloc::string::String,
845 #[prost(message, repeated, tag="4")]
846 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
847}
848#[allow(clippy::derive_partial_eq_without_eq)]
849#[derive(Clone, PartialEq, ::prost::Message)]
850pub struct TranscriptionSegment {
851 #[prost(string, tag="1")]
852 pub id: ::prost::alloc::string::String,
853 #[prost(string, tag="2")]
854 pub text: ::prost::alloc::string::String,
855 #[prost(uint64, tag="3")]
856 pub start_time: u64,
857 #[prost(uint64, tag="4")]
858 pub end_time: u64,
859 #[prost(bool, tag="5")]
860 pub r#final: bool,
861 #[prost(string, tag="6")]
862 pub language: ::prost::alloc::string::String,
863}
864#[allow(clippy::derive_partial_eq_without_eq)]
865#[derive(Clone, PartialEq, ::prost::Message)]
866pub struct ChatMessage {
867 #[prost(string, tag="1")]
869 pub id: ::prost::alloc::string::String,
870 #[prost(int64, tag="2")]
871 pub timestamp: i64,
872 #[prost(int64, optional, tag="3")]
874 pub edit_timestamp: ::core::option::Option<i64>,
875 #[prost(string, tag="4")]
876 pub message: ::prost::alloc::string::String,
877 #[prost(bool, tag="5")]
879 pub deleted: bool,
880 #[prost(bool, tag="6")]
882 pub generated: bool,
883}
884#[allow(clippy::derive_partial_eq_without_eq)]
885#[derive(Clone, PartialEq, ::prost::Message)]
886pub struct RpcRequest {
887 #[prost(string, tag="1")]
888 pub id: ::prost::alloc::string::String,
889 #[prost(string, tag="2")]
890 pub method: ::prost::alloc::string::String,
891 #[prost(string, tag="3")]
892 pub payload: ::prost::alloc::string::String,
893 #[prost(uint32, tag="4")]
894 pub response_timeout_ms: u32,
895 #[prost(uint32, tag="5")]
896 pub version: u32,
897}
898#[allow(clippy::derive_partial_eq_without_eq)]
899#[derive(Clone, PartialEq, ::prost::Message)]
900pub struct RpcAck {
901 #[prost(string, tag="1")]
902 pub request_id: ::prost::alloc::string::String,
903}
904#[allow(clippy::derive_partial_eq_without_eq)]
905#[derive(Clone, PartialEq, ::prost::Message)]
906pub struct RpcResponse {
907 #[prost(string, tag="1")]
908 pub request_id: ::prost::alloc::string::String,
909 #[prost(oneof="rpc_response::Value", tags="2, 3")]
910 pub value: ::core::option::Option<rpc_response::Value>,
911}
912pub mod rpc_response {
914 #[allow(clippy::derive_partial_eq_without_eq)]
915#[derive(Clone, PartialEq, ::prost::Oneof)]
916 pub enum Value {
917 #[prost(string, tag="2")]
918 Payload(::prost::alloc::string::String),
919 #[prost(message, tag="3")]
920 Error(super::RpcError),
921 }
922}
923#[allow(clippy::derive_partial_eq_without_eq)]
924#[derive(Clone, PartialEq, ::prost::Message)]
925pub struct RpcError {
926 #[prost(uint32, tag="1")]
927 pub code: u32,
928 #[prost(string, tag="2")]
929 pub message: ::prost::alloc::string::String,
930 #[prost(string, tag="3")]
931 pub data: ::prost::alloc::string::String,
932}
933#[allow(clippy::derive_partial_eq_without_eq)]
934#[derive(Clone, PartialEq, ::prost::Message)]
935pub struct ParticipantTracks {
936 #[prost(string, tag="1")]
938 pub participant_sid: ::prost::alloc::string::String,
939 #[prost(string, repeated, tag="2")]
940 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
941}
942#[allow(clippy::derive_partial_eq_without_eq)]
944#[derive(Clone, PartialEq, ::prost::Message)]
945pub struct ServerInfo {
946 #[prost(enumeration="server_info::Edition", tag="1")]
947 pub edition: i32,
948 #[prost(string, tag="2")]
949 pub version: ::prost::alloc::string::String,
950 #[prost(int32, tag="3")]
951 pub protocol: i32,
952 #[prost(string, tag="4")]
953 pub region: ::prost::alloc::string::String,
954 #[prost(string, tag="5")]
955 pub node_id: ::prost::alloc::string::String,
956 #[prost(string, tag="6")]
958 pub debug_info: ::prost::alloc::string::String,
959 #[prost(int32, tag="7")]
960 pub agent_protocol: i32,
961}
962pub mod server_info {
964 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
965 #[repr(i32)]
966 pub enum Edition {
967 Standard = 0,
968 Cloud = 1,
969 }
970 impl Edition {
971 pub fn as_str_name(&self) -> &'static str {
976 match self {
977 Edition::Standard => "Standard",
978 Edition::Cloud => "Cloud",
979 }
980 }
981 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
983 match value {
984 "Standard" => Some(Self::Standard),
985 "Cloud" => Some(Self::Cloud),
986 _ => None,
987 }
988 }
989 }
990}
991#[allow(clippy::derive_partial_eq_without_eq)]
993#[derive(Clone, PartialEq, ::prost::Message)]
994pub struct ClientInfo {
995 #[prost(enumeration="client_info::Sdk", tag="1")]
996 pub sdk: i32,
997 #[prost(string, tag="2")]
998 pub version: ::prost::alloc::string::String,
999 #[prost(int32, tag="3")]
1000 pub protocol: i32,
1001 #[prost(string, tag="4")]
1002 pub os: ::prost::alloc::string::String,
1003 #[prost(string, tag="5")]
1004 pub os_version: ::prost::alloc::string::String,
1005 #[prost(string, tag="6")]
1006 pub device_model: ::prost::alloc::string::String,
1007 #[prost(string, tag="7")]
1008 pub browser: ::prost::alloc::string::String,
1009 #[prost(string, tag="8")]
1010 pub browser_version: ::prost::alloc::string::String,
1011 #[prost(string, tag="9")]
1012 pub address: ::prost::alloc::string::String,
1013 #[prost(string, tag="10")]
1015 pub network: ::prost::alloc::string::String,
1016 #[prost(string, tag="11")]
1019 pub other_sdks: ::prost::alloc::string::String,
1020}
1021pub mod client_info {
1023 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1024 #[repr(i32)]
1025 pub enum Sdk {
1026 Unknown = 0,
1027 Js = 1,
1028 Swift = 2,
1029 Android = 3,
1030 Flutter = 4,
1031 Go = 5,
1032 Unity = 6,
1033 ReactNative = 7,
1034 Rust = 8,
1035 Python = 9,
1036 Cpp = 10,
1037 UnityWeb = 11,
1038 Node = 12,
1039 Unreal = 13,
1040 Esp32 = 14,
1041 }
1042 impl Sdk {
1043 pub fn as_str_name(&self) -> &'static str {
1048 match self {
1049 Sdk::Unknown => "UNKNOWN",
1050 Sdk::Js => "JS",
1051 Sdk::Swift => "SWIFT",
1052 Sdk::Android => "ANDROID",
1053 Sdk::Flutter => "FLUTTER",
1054 Sdk::Go => "GO",
1055 Sdk::Unity => "UNITY",
1056 Sdk::ReactNative => "REACT_NATIVE",
1057 Sdk::Rust => "RUST",
1058 Sdk::Python => "PYTHON",
1059 Sdk::Cpp => "CPP",
1060 Sdk::UnityWeb => "UNITY_WEB",
1061 Sdk::Node => "NODE",
1062 Sdk::Unreal => "UNREAL",
1063 Sdk::Esp32 => "ESP32",
1064 }
1065 }
1066 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1068 match value {
1069 "UNKNOWN" => Some(Self::Unknown),
1070 "JS" => Some(Self::Js),
1071 "SWIFT" => Some(Self::Swift),
1072 "ANDROID" => Some(Self::Android),
1073 "FLUTTER" => Some(Self::Flutter),
1074 "GO" => Some(Self::Go),
1075 "UNITY" => Some(Self::Unity),
1076 "REACT_NATIVE" => Some(Self::ReactNative),
1077 "RUST" => Some(Self::Rust),
1078 "PYTHON" => Some(Self::Python),
1079 "CPP" => Some(Self::Cpp),
1080 "UNITY_WEB" => Some(Self::UnityWeb),
1081 "NODE" => Some(Self::Node),
1082 "UNREAL" => Some(Self::Unreal),
1083 "ESP32" => Some(Self::Esp32),
1084 _ => None,
1085 }
1086 }
1087 }
1088}
1089#[allow(clippy::derive_partial_eq_without_eq)]
1091#[derive(Clone, PartialEq, ::prost::Message)]
1092pub struct ClientConfiguration {
1093 #[prost(message, optional, tag="1")]
1094 pub video: ::core::option::Option<VideoConfiguration>,
1095 #[prost(message, optional, tag="2")]
1096 pub screen: ::core::option::Option<VideoConfiguration>,
1097 #[prost(enumeration="ClientConfigSetting", tag="3")]
1098 pub resume_connection: i32,
1099 #[prost(message, optional, tag="4")]
1100 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1101 #[prost(enumeration="ClientConfigSetting", tag="5")]
1102 pub force_relay: i32,
1103}
1104#[allow(clippy::derive_partial_eq_without_eq)]
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct VideoConfiguration {
1107 #[prost(enumeration="ClientConfigSetting", tag="1")]
1108 pub hardware_encoder: i32,
1109}
1110#[allow(clippy::derive_partial_eq_without_eq)]
1111#[derive(Clone, PartialEq, ::prost::Message)]
1112pub struct DisabledCodecs {
1113 #[prost(message, repeated, tag="1")]
1115 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1116 #[prost(message, repeated, tag="2")]
1118 pub publish: ::prost::alloc::vec::Vec<Codec>,
1119}
1120#[allow(clippy::derive_partial_eq_without_eq)]
1121#[derive(Clone, PartialEq, ::prost::Message)]
1122pub struct RtpDrift {
1123 #[prost(message, optional, tag="1")]
1124 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1125 #[prost(message, optional, tag="2")]
1126 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1127 #[prost(double, tag="3")]
1128 pub duration: f64,
1129 #[prost(uint64, tag="4")]
1130 pub start_timestamp: u64,
1131 #[prost(uint64, tag="5")]
1132 pub end_timestamp: u64,
1133 #[prost(uint64, tag="6")]
1134 pub rtp_clock_ticks: u64,
1135 #[prost(int64, tag="7")]
1136 pub drift_samples: i64,
1137 #[prost(double, tag="8")]
1138 pub drift_ms: f64,
1139 #[prost(double, tag="9")]
1140 pub clock_rate: f64,
1141}
1142#[allow(clippy::derive_partial_eq_without_eq)]
1143#[derive(Clone, PartialEq, ::prost::Message)]
1144pub struct RtpStats {
1145 #[prost(message, optional, tag="1")]
1146 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1147 #[prost(message, optional, tag="2")]
1148 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1149 #[prost(double, tag="3")]
1150 pub duration: f64,
1151 #[prost(uint32, tag="4")]
1152 pub packets: u32,
1153 #[prost(double, tag="5")]
1154 pub packet_rate: f64,
1155 #[prost(uint64, tag="6")]
1156 pub bytes: u64,
1157 #[prost(uint64, tag="39")]
1158 pub header_bytes: u64,
1159 #[prost(double, tag="7")]
1160 pub bitrate: f64,
1161 #[prost(uint32, tag="8")]
1162 pub packets_lost: u32,
1163 #[prost(double, tag="9")]
1164 pub packet_loss_rate: f64,
1165 #[prost(float, tag="10")]
1166 pub packet_loss_percentage: f32,
1167 #[prost(uint32, tag="11")]
1168 pub packets_duplicate: u32,
1169 #[prost(double, tag="12")]
1170 pub packet_duplicate_rate: f64,
1171 #[prost(uint64, tag="13")]
1172 pub bytes_duplicate: u64,
1173 #[prost(uint64, tag="40")]
1174 pub header_bytes_duplicate: u64,
1175 #[prost(double, tag="14")]
1176 pub bitrate_duplicate: f64,
1177 #[prost(uint32, tag="15")]
1178 pub packets_padding: u32,
1179 #[prost(double, tag="16")]
1180 pub packet_padding_rate: f64,
1181 #[prost(uint64, tag="17")]
1182 pub bytes_padding: u64,
1183 #[prost(uint64, tag="41")]
1184 pub header_bytes_padding: u64,
1185 #[prost(double, tag="18")]
1186 pub bitrate_padding: f64,
1187 #[prost(uint32, tag="19")]
1188 pub packets_out_of_order: u32,
1189 #[prost(uint32, tag="20")]
1190 pub frames: u32,
1191 #[prost(double, tag="21")]
1192 pub frame_rate: f64,
1193 #[prost(double, tag="22")]
1194 pub jitter_current: f64,
1195 #[prost(double, tag="23")]
1196 pub jitter_max: f64,
1197 #[prost(map="int32, uint32", tag="24")]
1198 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1199 #[prost(uint32, tag="25")]
1200 pub nacks: u32,
1201 #[prost(uint32, tag="37")]
1202 pub nack_acks: u32,
1203 #[prost(uint32, tag="26")]
1204 pub nack_misses: u32,
1205 #[prost(uint32, tag="38")]
1206 pub nack_repeated: u32,
1207 #[prost(uint32, tag="27")]
1208 pub plis: u32,
1209 #[prost(message, optional, tag="28")]
1210 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1211 #[prost(uint32, tag="29")]
1212 pub firs: u32,
1213 #[prost(message, optional, tag="30")]
1214 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1215 #[prost(uint32, tag="31")]
1216 pub rtt_current: u32,
1217 #[prost(uint32, tag="32")]
1218 pub rtt_max: u32,
1219 #[prost(uint32, tag="33")]
1220 pub key_frames: u32,
1221 #[prost(message, optional, tag="34")]
1222 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1223 #[prost(uint32, tag="35")]
1224 pub layer_lock_plis: u32,
1225 #[prost(message, optional, tag="36")]
1226 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1227 #[prost(message, optional, tag="44")]
1228 pub packet_drift: ::core::option::Option<RtpDrift>,
1229 #[prost(message, optional, tag="45")]
1230 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1231 #[prost(message, optional, tag="46")]
1232 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1233 #[prost(message, optional, tag="47")]
1235 pub received_report_drift: ::core::option::Option<RtpDrift>,
1236}
1237#[allow(clippy::derive_partial_eq_without_eq)]
1238#[derive(Clone, PartialEq, ::prost::Message)]
1239pub struct RtcpSenderReportState {
1240 #[prost(uint32, tag="1")]
1241 pub rtp_timestamp: u32,
1242 #[prost(uint64, tag="2")]
1243 pub rtp_timestamp_ext: u64,
1244 #[prost(uint64, tag="3")]
1245 pub ntp_timestamp: u64,
1246 #[prost(int64, tag="4")]
1248 pub at: i64,
1249 #[prost(int64, tag="5")]
1250 pub at_adjusted: i64,
1251 #[prost(uint32, tag="6")]
1252 pub packets: u32,
1253 #[prost(uint64, tag="7")]
1254 pub octets: u64,
1255}
1256#[allow(clippy::derive_partial_eq_without_eq)]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct RtpForwarderState {
1259 #[prost(bool, tag="1")]
1260 pub started: bool,
1261 #[prost(int32, tag="2")]
1262 pub reference_layer_spatial: i32,
1263 #[prost(int64, tag="3")]
1264 pub pre_start_time: i64,
1265 #[prost(uint64, tag="4")]
1266 pub ext_first_timestamp: u64,
1267 #[prost(uint64, tag="5")]
1268 pub dummy_start_timestamp_offset: u64,
1269 #[prost(message, optional, tag="6")]
1270 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1271 #[prost(message, repeated, tag="8")]
1272 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1273 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1274 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1275}
1276pub mod rtp_forwarder_state {
1278 #[allow(clippy::derive_partial_eq_without_eq)]
1279#[derive(Clone, PartialEq, ::prost::Oneof)]
1280 pub enum CodecMunger {
1281 #[prost(message, tag="7")]
1282 Vp8Munger(super::Vp8MungerState),
1283 }
1284}
1285#[allow(clippy::derive_partial_eq_without_eq)]
1286#[derive(Clone, PartialEq, ::prost::Message)]
1287pub struct RtpMungerState {
1288 #[prost(uint64, tag="1")]
1289 pub ext_last_sequence_number: u64,
1290 #[prost(uint64, tag="2")]
1291 pub ext_second_last_sequence_number: u64,
1292 #[prost(uint64, tag="3")]
1293 pub ext_last_timestamp: u64,
1294 #[prost(uint64, tag="4")]
1295 pub ext_second_last_timestamp: u64,
1296 #[prost(bool, tag="5")]
1297 pub last_marker: bool,
1298 #[prost(bool, tag="6")]
1299 pub second_last_marker: bool,
1300}
1301#[allow(clippy::derive_partial_eq_without_eq)]
1302#[derive(Clone, PartialEq, ::prost::Message)]
1303pub struct Vp8MungerState {
1304 #[prost(int32, tag="1")]
1305 pub ext_last_picture_id: i32,
1306 #[prost(bool, tag="2")]
1307 pub picture_id_used: bool,
1308 #[prost(uint32, tag="3")]
1309 pub last_tl0_pic_idx: u32,
1310 #[prost(bool, tag="4")]
1311 pub tl0_pic_idx_used: bool,
1312 #[prost(bool, tag="5")]
1313 pub tid_used: bool,
1314 #[prost(uint32, tag="6")]
1315 pub last_key_idx: u32,
1316 #[prost(bool, tag="7")]
1317 pub key_idx_used: bool,
1318}
1319#[allow(clippy::derive_partial_eq_without_eq)]
1320#[derive(Clone, PartialEq, ::prost::Message)]
1321pub struct TimedVersion {
1322 #[prost(int64, tag="1")]
1323 pub unix_micro: i64,
1324 #[prost(int32, tag="2")]
1325 pub ticks: i32,
1326}
1327#[allow(clippy::derive_partial_eq_without_eq)]
1328#[derive(Clone, PartialEq, ::prost::Message)]
1329pub struct DataStream {
1330}
1331pub mod data_stream {
1333 #[allow(clippy::derive_partial_eq_without_eq)]
1335#[derive(Clone, PartialEq, ::prost::Message)]
1336 pub struct TextHeader {
1337 #[prost(enumeration="OperationType", tag="1")]
1338 pub operation_type: i32,
1339 #[prost(int32, tag="2")]
1341 pub version: i32,
1342 #[prost(string, tag="3")]
1344 pub reply_to_stream_id: ::prost::alloc::string::String,
1345 #[prost(string, repeated, tag="4")]
1347 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1348 #[prost(bool, tag="5")]
1350 pub generated: bool,
1351 }
1352 #[allow(clippy::derive_partial_eq_without_eq)]
1354#[derive(Clone, PartialEq, ::prost::Message)]
1355 pub struct ByteHeader {
1356 #[prost(string, tag="1")]
1357 pub name: ::prost::alloc::string::String,
1358 }
1359 #[allow(clippy::derive_partial_eq_without_eq)]
1361#[derive(Clone, PartialEq, ::prost::Message)]
1362 pub struct Header {
1363 #[prost(string, tag="1")]
1365 pub stream_id: ::prost::alloc::string::String,
1366 #[prost(int64, tag="2")]
1368 pub timestamp: i64,
1369 #[prost(string, tag="3")]
1370 pub topic: ::prost::alloc::string::String,
1371 #[prost(string, tag="4")]
1372 pub mime_type: ::prost::alloc::string::String,
1373 #[prost(uint64, optional, tag="5")]
1375 pub total_length: ::core::option::Option<u64>,
1376 #[deprecated]
1378 #[prost(enumeration="super::encryption::Type", tag="7")]
1379 pub encryption_type: i32,
1380 #[prost(map="string, string", tag="8")]
1382 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1383 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1385 pub content_header: ::core::option::Option<header::ContentHeader>,
1386 }
1387 pub mod header {
1389 #[allow(clippy::derive_partial_eq_without_eq)]
1391#[derive(Clone, PartialEq, ::prost::Oneof)]
1392 pub enum ContentHeader {
1393 #[prost(message, tag="9")]
1394 TextHeader(super::TextHeader),
1395 #[prost(message, tag="10")]
1396 ByteHeader(super::ByteHeader),
1397 }
1398 }
1399 #[allow(clippy::derive_partial_eq_without_eq)]
1400#[derive(Clone, PartialEq, ::prost::Message)]
1401 pub struct Chunk {
1402 #[prost(string, tag="1")]
1404 pub stream_id: ::prost::alloc::string::String,
1405 #[prost(uint64, tag="2")]
1406 pub chunk_index: u64,
1407 #[prost(bytes="vec", tag="3")]
1409 pub content: ::prost::alloc::vec::Vec<u8>,
1410 #[prost(int32, tag="4")]
1412 pub version: i32,
1413 #[deprecated]
1415 #[prost(bytes="vec", optional, tag="5")]
1416 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1417 }
1418 #[allow(clippy::derive_partial_eq_without_eq)]
1419#[derive(Clone, PartialEq, ::prost::Message)]
1420 pub struct Trailer {
1421 #[prost(string, tag="1")]
1423 pub stream_id: ::prost::alloc::string::String,
1424 #[prost(string, tag="2")]
1426 pub reason: ::prost::alloc::string::String,
1427 #[prost(map="string, string", tag="3")]
1429 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1430 }
1431 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1433 #[repr(i32)]
1434 pub enum OperationType {
1435 Create = 0,
1436 Update = 1,
1437 Delete = 2,
1438 Reaction = 3,
1439 }
1440 impl OperationType {
1441 pub fn as_str_name(&self) -> &'static str {
1446 match self {
1447 OperationType::Create => "CREATE",
1448 OperationType::Update => "UPDATE",
1449 OperationType::Delete => "DELETE",
1450 OperationType::Reaction => "REACTION",
1451 }
1452 }
1453 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1455 match value {
1456 "CREATE" => Some(Self::Create),
1457 "UPDATE" => Some(Self::Update),
1458 "DELETE" => Some(Self::Delete),
1459 "REACTION" => Some(Self::Reaction),
1460 _ => None,
1461 }
1462 }
1463 }
1464}
1465#[allow(clippy::derive_partial_eq_without_eq)]
1466#[derive(Clone, PartialEq, ::prost::Message)]
1467pub struct FilterParams {
1468 #[prost(string, repeated, tag="1")]
1469 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1470 #[prost(string, repeated, tag="2")]
1471 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1472}
1473#[allow(clippy::derive_partial_eq_without_eq)]
1474#[derive(Clone, PartialEq, ::prost::Message)]
1475pub struct WebhookConfig {
1476 #[prost(string, tag="1")]
1477 pub url: ::prost::alloc::string::String,
1478 #[prost(string, tag="2")]
1479 pub signing_key: ::prost::alloc::string::String,
1480 #[prost(message, optional, tag="3")]
1481 pub filter_params: ::core::option::Option<FilterParams>,
1482}
1483#[allow(clippy::derive_partial_eq_without_eq)]
1484#[derive(Clone, PartialEq, ::prost::Message)]
1485pub struct SubscribedAudioCodec {
1486 #[prost(string, tag="1")]
1487 pub codec: ::prost::alloc::string::String,
1488 #[prost(bool, tag="2")]
1489 pub enabled: bool,
1490}
1491#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1492#[repr(i32)]
1493pub enum AudioCodec {
1494 DefaultAc = 0,
1495 Opus = 1,
1496 Aac = 2,
1497 AcMp3 = 3,
1498}
1499impl AudioCodec {
1500 pub fn as_str_name(&self) -> &'static str {
1505 match self {
1506 AudioCodec::DefaultAc => "DEFAULT_AC",
1507 AudioCodec::Opus => "OPUS",
1508 AudioCodec::Aac => "AAC",
1509 AudioCodec::AcMp3 => "AC_MP3",
1510 }
1511 }
1512 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1514 match value {
1515 "DEFAULT_AC" => Some(Self::DefaultAc),
1516 "OPUS" => Some(Self::Opus),
1517 "AAC" => Some(Self::Aac),
1518 "AC_MP3" => Some(Self::AcMp3),
1519 _ => None,
1520 }
1521 }
1522}
1523#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1524#[repr(i32)]
1525pub enum VideoCodec {
1526 DefaultVc = 0,
1527 H264Baseline = 1,
1528 H264Main = 2,
1529 H264High = 3,
1530 Vp8 = 4,
1531}
1532impl VideoCodec {
1533 pub fn as_str_name(&self) -> &'static str {
1538 match self {
1539 VideoCodec::DefaultVc => "DEFAULT_VC",
1540 VideoCodec::H264Baseline => "H264_BASELINE",
1541 VideoCodec::H264Main => "H264_MAIN",
1542 VideoCodec::H264High => "H264_HIGH",
1543 VideoCodec::Vp8 => "VP8",
1544 }
1545 }
1546 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1548 match value {
1549 "DEFAULT_VC" => Some(Self::DefaultVc),
1550 "H264_BASELINE" => Some(Self::H264Baseline),
1551 "H264_MAIN" => Some(Self::H264Main),
1552 "H264_HIGH" => Some(Self::H264High),
1553 "VP8" => Some(Self::Vp8),
1554 _ => None,
1555 }
1556 }
1557}
1558#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1559#[repr(i32)]
1560pub enum ImageCodec {
1561 IcDefault = 0,
1562 IcJpeg = 1,
1563}
1564impl ImageCodec {
1565 pub fn as_str_name(&self) -> &'static str {
1570 match self {
1571 ImageCodec::IcDefault => "IC_DEFAULT",
1572 ImageCodec::IcJpeg => "IC_JPEG",
1573 }
1574 }
1575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1577 match value {
1578 "IC_DEFAULT" => Some(Self::IcDefault),
1579 "IC_JPEG" => Some(Self::IcJpeg),
1580 _ => None,
1581 }
1582 }
1583}
1584#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1586#[repr(i32)]
1587pub enum BackupCodecPolicy {
1588 PreferRegression = 0,
1591 Simulcast = 1,
1593 Regression = 2,
1595}
1596impl BackupCodecPolicy {
1597 pub fn as_str_name(&self) -> &'static str {
1602 match self {
1603 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1604 BackupCodecPolicy::Simulcast => "SIMULCAST",
1605 BackupCodecPolicy::Regression => "REGRESSION",
1606 }
1607 }
1608 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1610 match value {
1611 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1612 "SIMULCAST" => Some(Self::Simulcast),
1613 "REGRESSION" => Some(Self::Regression),
1614 _ => None,
1615 }
1616 }
1617}
1618#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1619#[repr(i32)]
1620pub enum TrackType {
1621 Audio = 0,
1622 Video = 1,
1623 Data = 2,
1624}
1625impl TrackType {
1626 pub fn as_str_name(&self) -> &'static str {
1631 match self {
1632 TrackType::Audio => "AUDIO",
1633 TrackType::Video => "VIDEO",
1634 TrackType::Data => "DATA",
1635 }
1636 }
1637 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1639 match value {
1640 "AUDIO" => Some(Self::Audio),
1641 "VIDEO" => Some(Self::Video),
1642 "DATA" => Some(Self::Data),
1643 _ => None,
1644 }
1645 }
1646}
1647#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1648#[repr(i32)]
1649pub enum TrackSource {
1650 Unknown = 0,
1651 Camera = 1,
1652 Microphone = 2,
1653 ScreenShare = 3,
1654 ScreenShareAudio = 4,
1655}
1656impl TrackSource {
1657 pub fn as_str_name(&self) -> &'static str {
1662 match self {
1663 TrackSource::Unknown => "UNKNOWN",
1664 TrackSource::Camera => "CAMERA",
1665 TrackSource::Microphone => "MICROPHONE",
1666 TrackSource::ScreenShare => "SCREEN_SHARE",
1667 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1668 }
1669 }
1670 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1672 match value {
1673 "UNKNOWN" => Some(Self::Unknown),
1674 "CAMERA" => Some(Self::Camera),
1675 "MICROPHONE" => Some(Self::Microphone),
1676 "SCREEN_SHARE" => Some(Self::ScreenShare),
1677 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1678 _ => None,
1679 }
1680 }
1681}
1682#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1683#[repr(i32)]
1684pub enum VideoQuality {
1685 Low = 0,
1686 Medium = 1,
1687 High = 2,
1688 Off = 3,
1689}
1690impl VideoQuality {
1691 pub fn as_str_name(&self) -> &'static str {
1696 match self {
1697 VideoQuality::Low => "LOW",
1698 VideoQuality::Medium => "MEDIUM",
1699 VideoQuality::High => "HIGH",
1700 VideoQuality::Off => "OFF",
1701 }
1702 }
1703 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1705 match value {
1706 "LOW" => Some(Self::Low),
1707 "MEDIUM" => Some(Self::Medium),
1708 "HIGH" => Some(Self::High),
1709 "OFF" => Some(Self::Off),
1710 _ => None,
1711 }
1712 }
1713}
1714#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1715#[repr(i32)]
1716pub enum ConnectionQuality {
1717 Poor = 0,
1718 Good = 1,
1719 Excellent = 2,
1720 Lost = 3,
1721}
1722impl ConnectionQuality {
1723 pub fn as_str_name(&self) -> &'static str {
1728 match self {
1729 ConnectionQuality::Poor => "POOR",
1730 ConnectionQuality::Good => "GOOD",
1731 ConnectionQuality::Excellent => "EXCELLENT",
1732 ConnectionQuality::Lost => "LOST",
1733 }
1734 }
1735 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1737 match value {
1738 "POOR" => Some(Self::Poor),
1739 "GOOD" => Some(Self::Good),
1740 "EXCELLENT" => Some(Self::Excellent),
1741 "LOST" => Some(Self::Lost),
1742 _ => None,
1743 }
1744 }
1745}
1746#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1747#[repr(i32)]
1748pub enum ClientConfigSetting {
1749 Unset = 0,
1750 Disabled = 1,
1751 Enabled = 2,
1752}
1753impl ClientConfigSetting {
1754 pub fn as_str_name(&self) -> &'static str {
1759 match self {
1760 ClientConfigSetting::Unset => "UNSET",
1761 ClientConfigSetting::Disabled => "DISABLED",
1762 ClientConfigSetting::Enabled => "ENABLED",
1763 }
1764 }
1765 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1767 match value {
1768 "UNSET" => Some(Self::Unset),
1769 "DISABLED" => Some(Self::Disabled),
1770 "ENABLED" => Some(Self::Enabled),
1771 _ => None,
1772 }
1773 }
1774}
1775#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1776#[repr(i32)]
1777pub enum DisconnectReason {
1778 UnknownReason = 0,
1779 ClientInitiated = 1,
1781 DuplicateIdentity = 2,
1783 ServerShutdown = 3,
1785 ParticipantRemoved = 4,
1787 RoomDeleted = 5,
1789 StateMismatch = 6,
1791 JoinFailure = 7,
1793 Migration = 8,
1795 SignalClose = 9,
1797 RoomClosed = 10,
1799 UserUnavailable = 11,
1801 UserRejected = 12,
1803 SipTrunkFailure = 13,
1805 ConnectionTimeout = 14,
1807 MediaFailure = 15,
1809}
1810impl DisconnectReason {
1811 pub fn as_str_name(&self) -> &'static str {
1816 match self {
1817 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1818 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1819 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1820 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1821 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1822 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1823 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1824 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1825 DisconnectReason::Migration => "MIGRATION",
1826 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1827 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1828 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1829 DisconnectReason::UserRejected => "USER_REJECTED",
1830 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1831 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1832 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1833 }
1834 }
1835 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1837 match value {
1838 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1839 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1840 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1841 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1842 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1843 "ROOM_DELETED" => Some(Self::RoomDeleted),
1844 "STATE_MISMATCH" => Some(Self::StateMismatch),
1845 "JOIN_FAILURE" => Some(Self::JoinFailure),
1846 "MIGRATION" => Some(Self::Migration),
1847 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1848 "ROOM_CLOSED" => Some(Self::RoomClosed),
1849 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1850 "USER_REJECTED" => Some(Self::UserRejected),
1851 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1852 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1853 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1854 _ => None,
1855 }
1856 }
1857}
1858#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1859#[repr(i32)]
1860pub enum ReconnectReason {
1861 RrUnknown = 0,
1862 RrSignalDisconnected = 1,
1863 RrPublisherFailed = 2,
1864 RrSubscriberFailed = 3,
1865 RrSwitchCandidate = 4,
1866}
1867impl ReconnectReason {
1868 pub fn as_str_name(&self) -> &'static str {
1873 match self {
1874 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1875 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1876 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1877 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1878 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1879 }
1880 }
1881 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1883 match value {
1884 "RR_UNKNOWN" => Some(Self::RrUnknown),
1885 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1886 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1887 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1888 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1889 _ => None,
1890 }
1891 }
1892}
1893#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1894#[repr(i32)]
1895pub enum SubscriptionError {
1896 SeUnknown = 0,
1897 SeCodecUnsupported = 1,
1898 SeTrackNotfound = 2,
1899}
1900impl SubscriptionError {
1901 pub fn as_str_name(&self) -> &'static str {
1906 match self {
1907 SubscriptionError::SeUnknown => "SE_UNKNOWN",
1908 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
1909 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
1910 }
1911 }
1912 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1914 match value {
1915 "SE_UNKNOWN" => Some(Self::SeUnknown),
1916 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
1917 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
1918 _ => None,
1919 }
1920 }
1921}
1922#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1923#[repr(i32)]
1924pub enum AudioTrackFeature {
1925 TfStereo = 0,
1926 TfNoDtx = 1,
1927 TfAutoGainControl = 2,
1928 TfEchoCancellation = 3,
1929 TfNoiseSuppression = 4,
1930 TfEnhancedNoiseCancellation = 5,
1931 TfPreconnectBuffer = 6,
1933}
1934impl AudioTrackFeature {
1935 pub fn as_str_name(&self) -> &'static str {
1940 match self {
1941 AudioTrackFeature::TfStereo => "TF_STEREO",
1942 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
1943 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
1944 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
1945 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
1946 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
1947 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
1948 }
1949 }
1950 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1952 match value {
1953 "TF_STEREO" => Some(Self::TfStereo),
1954 "TF_NO_DTX" => Some(Self::TfNoDtx),
1955 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
1956 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
1957 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
1958 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
1959 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
1960 _ => None,
1961 }
1962 }
1963}
1964#[allow(clippy::derive_partial_eq_without_eq)]
1966#[derive(Clone, PartialEq, ::prost::Message)]
1967pub struct RoomCompositeEgressRequest {
1968 #[prost(string, tag="1")]
1970 pub room_name: ::prost::alloc::string::String,
1971 #[prost(string, tag="2")]
1973 pub layout: ::prost::alloc::string::String,
1974 #[prost(bool, tag="3")]
1976 pub audio_only: bool,
1977 #[prost(enumeration="AudioMixing", tag="15")]
1979 pub audio_mixing: i32,
1980 #[prost(bool, tag="4")]
1982 pub video_only: bool,
1983 #[prost(string, tag="5")]
1985 pub custom_base_url: ::prost::alloc::string::String,
1986 #[prost(message, repeated, tag="11")]
1987 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
1988 #[prost(message, repeated, tag="12")]
1989 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
1990 #[prost(message, repeated, tag="13")]
1991 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
1992 #[prost(message, repeated, tag="14")]
1993 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
1994 #[prost(message, repeated, tag="16")]
1996 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
1997 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
1999 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2000 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2001 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2002}
2003pub mod room_composite_egress_request {
2005 #[allow(clippy::derive_partial_eq_without_eq)]
2007#[derive(Clone, PartialEq, ::prost::Oneof)]
2008 pub enum Output {
2009 #[prost(message, tag="6")]
2010 File(super::EncodedFileOutput),
2011 #[prost(message, tag="7")]
2012 Stream(super::StreamOutput),
2013 #[prost(message, tag="10")]
2014 Segments(super::SegmentedFileOutput),
2015 }
2016 #[allow(clippy::derive_partial_eq_without_eq)]
2017#[derive(Clone, PartialEq, ::prost::Oneof)]
2018 pub enum Options {
2019 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2021 Preset(i32),
2022 #[prost(message, tag="9")]
2024 Advanced(super::EncodingOptions),
2025 }
2026}
2027#[allow(clippy::derive_partial_eq_without_eq)]
2029#[derive(Clone, PartialEq, ::prost::Message)]
2030pub struct WebEgressRequest {
2031 #[prost(string, tag="1")]
2032 pub url: ::prost::alloc::string::String,
2033 #[prost(bool, tag="2")]
2034 pub audio_only: bool,
2035 #[prost(bool, tag="3")]
2036 pub video_only: bool,
2037 #[prost(bool, tag="12")]
2038 pub await_start_signal: bool,
2039 #[prost(message, repeated, tag="9")]
2040 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2041 #[prost(message, repeated, tag="10")]
2042 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2043 #[prost(message, repeated, tag="11")]
2044 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2045 #[prost(message, repeated, tag="13")]
2046 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2047 #[prost(message, repeated, tag="14")]
2049 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2050 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2052 pub output: ::core::option::Option<web_egress_request::Output>,
2053 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2054 pub options: ::core::option::Option<web_egress_request::Options>,
2055}
2056pub mod web_egress_request {
2058 #[allow(clippy::derive_partial_eq_without_eq)]
2060#[derive(Clone, PartialEq, ::prost::Oneof)]
2061 pub enum Output {
2062 #[prost(message, tag="4")]
2063 File(super::EncodedFileOutput),
2064 #[prost(message, tag="5")]
2065 Stream(super::StreamOutput),
2066 #[prost(message, tag="6")]
2067 Segments(super::SegmentedFileOutput),
2068 }
2069 #[allow(clippy::derive_partial_eq_without_eq)]
2070#[derive(Clone, PartialEq, ::prost::Oneof)]
2071 pub enum Options {
2072 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2073 Preset(i32),
2074 #[prost(message, tag="8")]
2075 Advanced(super::EncodingOptions),
2076 }
2077}
2078#[allow(clippy::derive_partial_eq_without_eq)]
2080#[derive(Clone, PartialEq, ::prost::Message)]
2081pub struct ParticipantEgressRequest {
2082 #[prost(string, tag="1")]
2084 pub room_name: ::prost::alloc::string::String,
2085 #[prost(string, tag="2")]
2087 pub identity: ::prost::alloc::string::String,
2088 #[prost(bool, tag="3")]
2090 pub screen_share: bool,
2091 #[prost(message, repeated, tag="6")]
2092 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2093 #[prost(message, repeated, tag="7")]
2094 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2095 #[prost(message, repeated, tag="8")]
2096 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2097 #[prost(message, repeated, tag="9")]
2098 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2099 #[prost(message, repeated, tag="10")]
2101 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2102 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
2103 pub options: ::core::option::Option<participant_egress_request::Options>,
2104}
2105pub mod participant_egress_request {
2107 #[allow(clippy::derive_partial_eq_without_eq)]
2108#[derive(Clone, PartialEq, ::prost::Oneof)]
2109 pub enum Options {
2110 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
2112 Preset(i32),
2113 #[prost(message, tag="5")]
2115 Advanced(super::EncodingOptions),
2116 }
2117}
2118#[allow(clippy::derive_partial_eq_without_eq)]
2120#[derive(Clone, PartialEq, ::prost::Message)]
2121pub struct TrackCompositeEgressRequest {
2122 #[prost(string, tag="1")]
2124 pub room_name: ::prost::alloc::string::String,
2125 #[prost(string, tag="2")]
2127 pub audio_track_id: ::prost::alloc::string::String,
2128 #[prost(string, tag="3")]
2130 pub video_track_id: ::prost::alloc::string::String,
2131 #[prost(message, repeated, tag="11")]
2132 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2133 #[prost(message, repeated, tag="12")]
2134 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2135 #[prost(message, repeated, tag="13")]
2136 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2137 #[prost(message, repeated, tag="14")]
2138 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2139 #[prost(message, repeated, tag="15")]
2141 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2142 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
2144 pub output: ::core::option::Option<track_composite_egress_request::Output>,
2145 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
2146 pub options: ::core::option::Option<track_composite_egress_request::Options>,
2147}
2148pub mod track_composite_egress_request {
2150 #[allow(clippy::derive_partial_eq_without_eq)]
2152#[derive(Clone, PartialEq, ::prost::Oneof)]
2153 pub enum Output {
2154 #[prost(message, tag="4")]
2155 File(super::EncodedFileOutput),
2156 #[prost(message, tag="5")]
2157 Stream(super::StreamOutput),
2158 #[prost(message, tag="8")]
2159 Segments(super::SegmentedFileOutput),
2160 }
2161 #[allow(clippy::derive_partial_eq_without_eq)]
2162#[derive(Clone, PartialEq, ::prost::Oneof)]
2163 pub enum Options {
2164 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
2166 Preset(i32),
2167 #[prost(message, tag="7")]
2169 Advanced(super::EncodingOptions),
2170 }
2171}
2172#[allow(clippy::derive_partial_eq_without_eq)]
2174#[derive(Clone, PartialEq, ::prost::Message)]
2175pub struct TrackEgressRequest {
2176 #[prost(string, tag="1")]
2178 pub room_name: ::prost::alloc::string::String,
2179 #[prost(string, tag="2")]
2181 pub track_id: ::prost::alloc::string::String,
2182 #[prost(message, repeated, tag="5")]
2184 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2185 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
2187 pub output: ::core::option::Option<track_egress_request::Output>,
2188}
2189pub mod track_egress_request {
2191 #[allow(clippy::derive_partial_eq_without_eq)]
2193#[derive(Clone, PartialEq, ::prost::Oneof)]
2194 pub enum Output {
2195 #[prost(message, tag="3")]
2196 File(super::DirectFileOutput),
2197 #[prost(string, tag="4")]
2198 WebsocketUrl(::prost::alloc::string::String),
2199 }
2200}
2201#[allow(clippy::derive_partial_eq_without_eq)]
2202#[derive(Clone, PartialEq, ::prost::Message)]
2203pub struct EncodedFileOutput {
2204 #[prost(enumeration="EncodedFileType", tag="1")]
2206 pub file_type: i32,
2207 #[prost(string, tag="2")]
2209 pub filepath: ::prost::alloc::string::String,
2210 #[prost(bool, tag="6")]
2212 pub disable_manifest: bool,
2213 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
2214 pub output: ::core::option::Option<encoded_file_output::Output>,
2215}
2216pub mod encoded_file_output {
2218 #[allow(clippy::derive_partial_eq_without_eq)]
2219#[derive(Clone, PartialEq, ::prost::Oneof)]
2220 pub enum Output {
2221 #[prost(message, tag="3")]
2222 S3(super::S3Upload),
2223 #[prost(message, tag="4")]
2224 Gcp(super::GcpUpload),
2225 #[prost(message, tag="5")]
2226 Azure(super::AzureBlobUpload),
2227 #[prost(message, tag="7")]
2228 AliOss(super::AliOssUpload),
2229 }
2230}
2231#[allow(clippy::derive_partial_eq_without_eq)]
2233#[derive(Clone, PartialEq, ::prost::Message)]
2234pub struct SegmentedFileOutput {
2235 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2237 pub protocol: i32,
2238 #[prost(string, tag="2")]
2240 pub filename_prefix: ::prost::alloc::string::String,
2241 #[prost(string, tag="3")]
2243 pub playlist_name: ::prost::alloc::string::String,
2244 #[prost(string, tag="11")]
2246 pub live_playlist_name: ::prost::alloc::string::String,
2247 #[prost(uint32, tag="4")]
2249 pub segment_duration: u32,
2250 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2252 pub filename_suffix: i32,
2253 #[prost(bool, tag="8")]
2255 pub disable_manifest: bool,
2256 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2258 pub output: ::core::option::Option<segmented_file_output::Output>,
2259}
2260pub mod segmented_file_output {
2262 #[allow(clippy::derive_partial_eq_without_eq)]
2264#[derive(Clone, PartialEq, ::prost::Oneof)]
2265 pub enum Output {
2266 #[prost(message, tag="5")]
2267 S3(super::S3Upload),
2268 #[prost(message, tag="6")]
2269 Gcp(super::GcpUpload),
2270 #[prost(message, tag="7")]
2271 Azure(super::AzureBlobUpload),
2272 #[prost(message, tag="9")]
2273 AliOss(super::AliOssUpload),
2274 }
2275}
2276#[allow(clippy::derive_partial_eq_without_eq)]
2277#[derive(Clone, PartialEq, ::prost::Message)]
2278pub struct DirectFileOutput {
2279 #[prost(string, tag="1")]
2281 pub filepath: ::prost::alloc::string::String,
2282 #[prost(bool, tag="5")]
2284 pub disable_manifest: bool,
2285 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2286 pub output: ::core::option::Option<direct_file_output::Output>,
2287}
2288pub mod direct_file_output {
2290 #[allow(clippy::derive_partial_eq_without_eq)]
2291#[derive(Clone, PartialEq, ::prost::Oneof)]
2292 pub enum Output {
2293 #[prost(message, tag="2")]
2294 S3(super::S3Upload),
2295 #[prost(message, tag="3")]
2296 Gcp(super::GcpUpload),
2297 #[prost(message, tag="4")]
2298 Azure(super::AzureBlobUpload),
2299 #[prost(message, tag="6")]
2300 AliOss(super::AliOssUpload),
2301 }
2302}
2303#[allow(clippy::derive_partial_eq_without_eq)]
2304#[derive(Clone, PartialEq, ::prost::Message)]
2305pub struct ImageOutput {
2306 #[prost(uint32, tag="1")]
2308 pub capture_interval: u32,
2309 #[prost(int32, tag="2")]
2311 pub width: i32,
2312 #[prost(int32, tag="3")]
2314 pub height: i32,
2315 #[prost(string, tag="4")]
2317 pub filename_prefix: ::prost::alloc::string::String,
2318 #[prost(enumeration="ImageFileSuffix", tag="5")]
2320 pub filename_suffix: i32,
2321 #[prost(enumeration="ImageCodec", tag="6")]
2323 pub image_codec: i32,
2324 #[prost(bool, tag="7")]
2326 pub disable_manifest: bool,
2327 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2329 pub output: ::core::option::Option<image_output::Output>,
2330}
2331pub mod image_output {
2333 #[allow(clippy::derive_partial_eq_without_eq)]
2335#[derive(Clone, PartialEq, ::prost::Oneof)]
2336 pub enum Output {
2337 #[prost(message, tag="8")]
2338 S3(super::S3Upload),
2339 #[prost(message, tag="9")]
2340 Gcp(super::GcpUpload),
2341 #[prost(message, tag="10")]
2342 Azure(super::AzureBlobUpload),
2343 #[prost(message, tag="11")]
2344 AliOss(super::AliOssUpload),
2345 }
2346}
2347#[allow(clippy::derive_partial_eq_without_eq)]
2348#[derive(Clone, PartialEq, ::prost::Message)]
2349pub struct S3Upload {
2350 #[prost(string, tag="1")]
2351 pub access_key: ::prost::alloc::string::String,
2352 #[prost(string, tag="2")]
2353 pub secret: ::prost::alloc::string::String,
2354 #[prost(string, tag="11")]
2355 pub session_token: ::prost::alloc::string::String,
2356 #[prost(string, tag="12")]
2358 pub assume_role_arn: ::prost::alloc::string::String,
2359 #[prost(string, tag="13")]
2361 pub assume_role_external_id: ::prost::alloc::string::String,
2362 #[prost(string, tag="3")]
2363 pub region: ::prost::alloc::string::String,
2364 #[prost(string, tag="4")]
2365 pub endpoint: ::prost::alloc::string::String,
2366 #[prost(string, tag="5")]
2367 pub bucket: ::prost::alloc::string::String,
2368 #[prost(bool, tag="6")]
2369 pub force_path_style: bool,
2370 #[prost(map="string, string", tag="7")]
2371 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2372 #[prost(string, tag="8")]
2373 pub tagging: ::prost::alloc::string::String,
2374 #[prost(string, tag="9")]
2376 pub content_disposition: ::prost::alloc::string::String,
2377 #[prost(message, optional, tag="10")]
2378 pub proxy: ::core::option::Option<ProxyConfig>,
2379}
2380#[allow(clippy::derive_partial_eq_without_eq)]
2381#[derive(Clone, PartialEq, ::prost::Message)]
2382pub struct GcpUpload {
2383 #[prost(string, tag="1")]
2385 pub credentials: ::prost::alloc::string::String,
2386 #[prost(string, tag="2")]
2387 pub bucket: ::prost::alloc::string::String,
2388 #[prost(message, optional, tag="3")]
2389 pub proxy: ::core::option::Option<ProxyConfig>,
2390}
2391#[allow(clippy::derive_partial_eq_without_eq)]
2392#[derive(Clone, PartialEq, ::prost::Message)]
2393pub struct AzureBlobUpload {
2394 #[prost(string, tag="1")]
2395 pub account_name: ::prost::alloc::string::String,
2396 #[prost(string, tag="2")]
2397 pub account_key: ::prost::alloc::string::String,
2398 #[prost(string, tag="3")]
2399 pub container_name: ::prost::alloc::string::String,
2400}
2401#[allow(clippy::derive_partial_eq_without_eq)]
2402#[derive(Clone, PartialEq, ::prost::Message)]
2403pub struct AliOssUpload {
2404 #[prost(string, tag="1")]
2405 pub access_key: ::prost::alloc::string::String,
2406 #[prost(string, tag="2")]
2407 pub secret: ::prost::alloc::string::String,
2408 #[prost(string, tag="3")]
2409 pub region: ::prost::alloc::string::String,
2410 #[prost(string, tag="4")]
2411 pub endpoint: ::prost::alloc::string::String,
2412 #[prost(string, tag="5")]
2413 pub bucket: ::prost::alloc::string::String,
2414}
2415#[allow(clippy::derive_partial_eq_without_eq)]
2416#[derive(Clone, PartialEq, ::prost::Message)]
2417pub struct ProxyConfig {
2418 #[prost(string, tag="1")]
2419 pub url: ::prost::alloc::string::String,
2420 #[prost(string, tag="2")]
2421 pub username: ::prost::alloc::string::String,
2422 #[prost(string, tag="3")]
2423 pub password: ::prost::alloc::string::String,
2424}
2425#[allow(clippy::derive_partial_eq_without_eq)]
2426#[derive(Clone, PartialEq, ::prost::Message)]
2427pub struct StreamOutput {
2428 #[prost(enumeration="StreamProtocol", tag="1")]
2430 pub protocol: i32,
2431 #[prost(string, repeated, tag="2")]
2433 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2434}
2435#[allow(clippy::derive_partial_eq_without_eq)]
2436#[derive(Clone, PartialEq, ::prost::Message)]
2437pub struct EncodingOptions {
2438 #[prost(int32, tag="1")]
2440 pub width: i32,
2441 #[prost(int32, tag="2")]
2443 pub height: i32,
2444 #[prost(int32, tag="3")]
2446 pub depth: i32,
2447 #[prost(int32, tag="4")]
2449 pub framerate: i32,
2450 #[prost(enumeration="AudioCodec", tag="5")]
2452 pub audio_codec: i32,
2453 #[prost(int32, tag="6")]
2455 pub audio_bitrate: i32,
2456 #[prost(int32, tag="11")]
2458 pub audio_quality: i32,
2459 #[prost(int32, tag="7")]
2461 pub audio_frequency: i32,
2462 #[prost(enumeration="VideoCodec", tag="8")]
2464 pub video_codec: i32,
2465 #[prost(int32, tag="9")]
2467 pub video_bitrate: i32,
2468 #[prost(int32, tag="12")]
2470 pub video_quality: i32,
2471 #[prost(double, tag="10")]
2473 pub key_frame_interval: f64,
2474}
2475#[allow(clippy::derive_partial_eq_without_eq)]
2476#[derive(Clone, PartialEq, ::prost::Message)]
2477pub struct UpdateLayoutRequest {
2478 #[prost(string, tag="1")]
2479 pub egress_id: ::prost::alloc::string::String,
2480 #[prost(string, tag="2")]
2481 pub layout: ::prost::alloc::string::String,
2482}
2483#[allow(clippy::derive_partial_eq_without_eq)]
2484#[derive(Clone, PartialEq, ::prost::Message)]
2485pub struct UpdateStreamRequest {
2486 #[prost(string, tag="1")]
2487 pub egress_id: ::prost::alloc::string::String,
2488 #[prost(string, repeated, tag="2")]
2489 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2490 #[prost(string, repeated, tag="3")]
2491 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2492}
2493#[allow(clippy::derive_partial_eq_without_eq)]
2494#[derive(Clone, PartialEq, ::prost::Message)]
2495pub struct ListEgressRequest {
2496 #[prost(string, tag="1")]
2498 pub room_name: ::prost::alloc::string::String,
2499 #[prost(string, tag="2")]
2501 pub egress_id: ::prost::alloc::string::String,
2502 #[prost(bool, tag="3")]
2504 pub active: bool,
2505}
2506#[allow(clippy::derive_partial_eq_without_eq)]
2507#[derive(Clone, PartialEq, ::prost::Message)]
2508pub struct ListEgressResponse {
2509 #[prost(message, repeated, tag="1")]
2510 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2511}
2512#[allow(clippy::derive_partial_eq_without_eq)]
2513#[derive(Clone, PartialEq, ::prost::Message)]
2514pub struct StopEgressRequest {
2515 #[prost(string, tag="1")]
2516 pub egress_id: ::prost::alloc::string::String,
2517}
2518#[allow(clippy::derive_partial_eq_without_eq)]
2519#[derive(Clone, PartialEq, ::prost::Message)]
2520pub struct EgressInfo {
2521 #[prost(string, tag="1")]
2522 pub egress_id: ::prost::alloc::string::String,
2523 #[prost(string, tag="2")]
2524 pub room_id: ::prost::alloc::string::String,
2525 #[prost(string, tag="13")]
2526 pub room_name: ::prost::alloc::string::String,
2527 #[prost(enumeration="EgressSourceType", tag="26")]
2528 pub source_type: i32,
2529 #[prost(enumeration="EgressStatus", tag="3")]
2530 pub status: i32,
2531 #[prost(int64, tag="10")]
2532 pub started_at: i64,
2533 #[prost(int64, tag="11")]
2534 pub ended_at: i64,
2535 #[prost(int64, tag="18")]
2536 pub updated_at: i64,
2537 #[prost(string, tag="21")]
2538 pub details: ::prost::alloc::string::String,
2539 #[prost(string, tag="9")]
2540 pub error: ::prost::alloc::string::String,
2541 #[prost(int32, tag="22")]
2542 pub error_code: i32,
2543 #[prost(message, repeated, tag="15")]
2544 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2545 #[prost(message, repeated, tag="16")]
2546 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2547 #[prost(message, repeated, tag="17")]
2548 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2549 #[prost(message, repeated, tag="20")]
2550 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2551 #[prost(string, tag="23")]
2552 pub manifest_location: ::prost::alloc::string::String,
2553 #[prost(bool, tag="25")]
2555 pub backup_storage_used: bool,
2556 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2557 pub request: ::core::option::Option<egress_info::Request>,
2558 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2560 pub result: ::core::option::Option<egress_info::Result>,
2561}
2562pub mod egress_info {
2564 #[allow(clippy::derive_partial_eq_without_eq)]
2565#[derive(Clone, PartialEq, ::prost::Oneof)]
2566 pub enum Request {
2567 #[prost(message, tag="4")]
2568 RoomComposite(super::RoomCompositeEgressRequest),
2569 #[prost(message, tag="14")]
2570 Web(super::WebEgressRequest),
2571 #[prost(message, tag="19")]
2572 Participant(super::ParticipantEgressRequest),
2573 #[prost(message, tag="5")]
2574 TrackComposite(super::TrackCompositeEgressRequest),
2575 #[prost(message, tag="6")]
2576 Track(super::TrackEgressRequest),
2577 }
2578 #[allow(clippy::derive_partial_eq_without_eq)]
2580#[derive(Clone, PartialEq, ::prost::Oneof)]
2581 pub enum Result {
2582 #[prost(message, tag="7")]
2583 Stream(super::StreamInfoList),
2584 #[prost(message, tag="8")]
2585 File(super::FileInfo),
2586 #[prost(message, tag="12")]
2587 Segments(super::SegmentsInfo),
2588 }
2589}
2590#[allow(clippy::derive_partial_eq_without_eq)]
2591#[derive(Clone, PartialEq, ::prost::Message)]
2592pub struct StreamInfoList {
2593 #[prost(message, repeated, tag="1")]
2594 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2595}
2596#[allow(clippy::derive_partial_eq_without_eq)]
2597#[derive(Clone, PartialEq, ::prost::Message)]
2598pub struct StreamInfo {
2599 #[prost(string, tag="1")]
2600 pub url: ::prost::alloc::string::String,
2601 #[prost(int64, tag="2")]
2602 pub started_at: i64,
2603 #[prost(int64, tag="3")]
2604 pub ended_at: i64,
2605 #[prost(int64, tag="4")]
2606 pub duration: i64,
2607 #[prost(enumeration="stream_info::Status", tag="5")]
2608 pub status: i32,
2609 #[prost(string, tag="6")]
2610 pub error: ::prost::alloc::string::String,
2611 #[prost(int64, tag="7")]
2612 pub last_retry_at: i64,
2613 #[prost(uint32, tag="8")]
2614 pub retries: u32,
2615}
2616pub mod stream_info {
2618 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2619 #[repr(i32)]
2620 pub enum Status {
2621 Active = 0,
2622 Finished = 1,
2623 Failed = 2,
2624 }
2625 impl Status {
2626 pub fn as_str_name(&self) -> &'static str {
2631 match self {
2632 Status::Active => "ACTIVE",
2633 Status::Finished => "FINISHED",
2634 Status::Failed => "FAILED",
2635 }
2636 }
2637 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2639 match value {
2640 "ACTIVE" => Some(Self::Active),
2641 "FINISHED" => Some(Self::Finished),
2642 "FAILED" => Some(Self::Failed),
2643 _ => None,
2644 }
2645 }
2646 }
2647}
2648#[allow(clippy::derive_partial_eq_without_eq)]
2649#[derive(Clone, PartialEq, ::prost::Message)]
2650pub struct FileInfo {
2651 #[prost(string, tag="1")]
2652 pub filename: ::prost::alloc::string::String,
2653 #[prost(int64, tag="2")]
2654 pub started_at: i64,
2655 #[prost(int64, tag="3")]
2656 pub ended_at: i64,
2657 #[prost(int64, tag="6")]
2658 pub duration: i64,
2659 #[prost(int64, tag="4")]
2660 pub size: i64,
2661 #[prost(string, tag="5")]
2662 pub location: ::prost::alloc::string::String,
2663}
2664#[allow(clippy::derive_partial_eq_without_eq)]
2665#[derive(Clone, PartialEq, ::prost::Message)]
2666pub struct SegmentsInfo {
2667 #[prost(string, tag="1")]
2668 pub playlist_name: ::prost::alloc::string::String,
2669 #[prost(string, tag="8")]
2670 pub live_playlist_name: ::prost::alloc::string::String,
2671 #[prost(int64, tag="2")]
2672 pub duration: i64,
2673 #[prost(int64, tag="3")]
2674 pub size: i64,
2675 #[prost(string, tag="4")]
2676 pub playlist_location: ::prost::alloc::string::String,
2677 #[prost(string, tag="9")]
2678 pub live_playlist_location: ::prost::alloc::string::String,
2679 #[prost(int64, tag="5")]
2680 pub segment_count: i64,
2681 #[prost(int64, tag="6")]
2682 pub started_at: i64,
2683 #[prost(int64, tag="7")]
2684 pub ended_at: i64,
2685}
2686#[allow(clippy::derive_partial_eq_without_eq)]
2687#[derive(Clone, PartialEq, ::prost::Message)]
2688pub struct ImagesInfo {
2689 #[prost(string, tag="4")]
2690 pub filename_prefix: ::prost::alloc::string::String,
2691 #[prost(int64, tag="1")]
2692 pub image_count: i64,
2693 #[prost(int64, tag="2")]
2694 pub started_at: i64,
2695 #[prost(int64, tag="3")]
2696 pub ended_at: i64,
2697}
2698#[allow(clippy::derive_partial_eq_without_eq)]
2699#[derive(Clone, PartialEq, ::prost::Message)]
2700pub struct AutoParticipantEgress {
2701 #[prost(message, repeated, tag="3")]
2702 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2703 #[prost(message, repeated, tag="4")]
2704 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2705 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2706 pub options: ::core::option::Option<auto_participant_egress::Options>,
2707}
2708pub mod auto_participant_egress {
2710 #[allow(clippy::derive_partial_eq_without_eq)]
2711#[derive(Clone, PartialEq, ::prost::Oneof)]
2712 pub enum Options {
2713 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2715 Preset(i32),
2716 #[prost(message, tag="2")]
2718 Advanced(super::EncodingOptions),
2719 }
2720}
2721#[allow(clippy::derive_partial_eq_without_eq)]
2722#[derive(Clone, PartialEq, ::prost::Message)]
2723pub struct AutoTrackEgress {
2724 #[prost(string, tag="1")]
2726 pub filepath: ::prost::alloc::string::String,
2727 #[prost(bool, tag="5")]
2729 pub disable_manifest: bool,
2730 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2731 pub output: ::core::option::Option<auto_track_egress::Output>,
2732}
2733pub mod auto_track_egress {
2735 #[allow(clippy::derive_partial_eq_without_eq)]
2736#[derive(Clone, PartialEq, ::prost::Oneof)]
2737 pub enum Output {
2738 #[prost(message, tag="2")]
2739 S3(super::S3Upload),
2740 #[prost(message, tag="3")]
2741 Gcp(super::GcpUpload),
2742 #[prost(message, tag="4")]
2743 Azure(super::AzureBlobUpload),
2744 #[prost(message, tag="6")]
2745 AliOss(super::AliOssUpload),
2746 }
2747}
2748#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2749#[repr(i32)]
2750pub enum EncodedFileType {
2751 DefaultFiletype = 0,
2753 Mp4 = 1,
2754 Ogg = 2,
2755 Mp3 = 3,
2756}
2757impl EncodedFileType {
2758 pub fn as_str_name(&self) -> &'static str {
2763 match self {
2764 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2765 EncodedFileType::Mp4 => "MP4",
2766 EncodedFileType::Ogg => "OGG",
2767 EncodedFileType::Mp3 => "MP3",
2768 }
2769 }
2770 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2772 match value {
2773 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2774 "MP4" => Some(Self::Mp4),
2775 "OGG" => Some(Self::Ogg),
2776 "MP3" => Some(Self::Mp3),
2777 _ => None,
2778 }
2779 }
2780}
2781#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2782#[repr(i32)]
2783pub enum SegmentedFileProtocol {
2784 DefaultSegmentedFileProtocol = 0,
2785 HlsProtocol = 1,
2786}
2787impl SegmentedFileProtocol {
2788 pub fn as_str_name(&self) -> &'static str {
2793 match self {
2794 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2795 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2796 }
2797 }
2798 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2800 match value {
2801 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2802 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2803 _ => None,
2804 }
2805 }
2806}
2807#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2808#[repr(i32)]
2809pub enum SegmentedFileSuffix {
2810 Index = 0,
2811 Timestamp = 1,
2812}
2813impl SegmentedFileSuffix {
2814 pub fn as_str_name(&self) -> &'static str {
2819 match self {
2820 SegmentedFileSuffix::Index => "INDEX",
2821 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2822 }
2823 }
2824 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2826 match value {
2827 "INDEX" => Some(Self::Index),
2828 "TIMESTAMP" => Some(Self::Timestamp),
2829 _ => None,
2830 }
2831 }
2832}
2833#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2834#[repr(i32)]
2835pub enum ImageFileSuffix {
2836 ImageSuffixIndex = 0,
2837 ImageSuffixTimestamp = 1,
2838 ImageSuffixNoneOverwrite = 2,
2840}
2841impl ImageFileSuffix {
2842 pub fn as_str_name(&self) -> &'static str {
2847 match self {
2848 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2849 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2850 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
2851 }
2852 }
2853 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2855 match value {
2856 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2857 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2858 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
2859 _ => None,
2860 }
2861 }
2862}
2863#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2864#[repr(i32)]
2865pub enum StreamProtocol {
2866 DefaultProtocol = 0,
2868 Rtmp = 1,
2869 Srt = 2,
2870}
2871impl StreamProtocol {
2872 pub fn as_str_name(&self) -> &'static str {
2877 match self {
2878 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2879 StreamProtocol::Rtmp => "RTMP",
2880 StreamProtocol::Srt => "SRT",
2881 }
2882 }
2883 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2885 match value {
2886 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
2887 "RTMP" => Some(Self::Rtmp),
2888 "SRT" => Some(Self::Srt),
2889 _ => None,
2890 }
2891 }
2892}
2893#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2894#[repr(i32)]
2895pub enum AudioMixing {
2896 DefaultMixing = 0,
2898 DualChannelAgent = 1,
2900 DualChannelAlternate = 2,
2902}
2903impl AudioMixing {
2904 pub fn as_str_name(&self) -> &'static str {
2909 match self {
2910 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
2911 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
2912 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
2913 }
2914 }
2915 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2917 match value {
2918 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
2919 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
2920 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
2921 _ => None,
2922 }
2923 }
2924}
2925#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2926#[repr(i32)]
2927pub enum EncodingOptionsPreset {
2928 H264720p30 = 0,
2930 H264720p60 = 1,
2932 H2641080p30 = 2,
2934 H2641080p60 = 3,
2936 PortraitH264720p30 = 4,
2938 PortraitH264720p60 = 5,
2940 PortraitH2641080p30 = 6,
2942 PortraitH2641080p60 = 7,
2944}
2945impl EncodingOptionsPreset {
2946 pub fn as_str_name(&self) -> &'static str {
2951 match self {
2952 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
2953 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
2954 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
2955 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
2956 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
2957 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
2958 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
2959 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
2960 }
2961 }
2962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2964 match value {
2965 "H264_720P_30" => Some(Self::H264720p30),
2966 "H264_720P_60" => Some(Self::H264720p60),
2967 "H264_1080P_30" => Some(Self::H2641080p30),
2968 "H264_1080P_60" => Some(Self::H2641080p60),
2969 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
2970 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
2971 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
2972 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
2973 _ => None,
2974 }
2975 }
2976}
2977#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2978#[repr(i32)]
2979pub enum EgressStatus {
2980 EgressStarting = 0,
2981 EgressActive = 1,
2982 EgressEnding = 2,
2983 EgressComplete = 3,
2984 EgressFailed = 4,
2985 EgressAborted = 5,
2986 EgressLimitReached = 6,
2987}
2988impl EgressStatus {
2989 pub fn as_str_name(&self) -> &'static str {
2994 match self {
2995 EgressStatus::EgressStarting => "EGRESS_STARTING",
2996 EgressStatus::EgressActive => "EGRESS_ACTIVE",
2997 EgressStatus::EgressEnding => "EGRESS_ENDING",
2998 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
2999 EgressStatus::EgressFailed => "EGRESS_FAILED",
3000 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3001 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3002 }
3003 }
3004 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3006 match value {
3007 "EGRESS_STARTING" => Some(Self::EgressStarting),
3008 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3009 "EGRESS_ENDING" => Some(Self::EgressEnding),
3010 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3011 "EGRESS_FAILED" => Some(Self::EgressFailed),
3012 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3013 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3014 _ => None,
3015 }
3016 }
3017}
3018#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3019#[repr(i32)]
3020pub enum EgressSourceType {
3021 Web = 0,
3022 Sdk = 1,
3023}
3024impl EgressSourceType {
3025 pub fn as_str_name(&self) -> &'static str {
3030 match self {
3031 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3032 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3033 }
3034 }
3035 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3037 match value {
3038 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3039 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3040 _ => None,
3041 }
3042 }
3043}
3044#[allow(clippy::derive_partial_eq_without_eq)]
3045#[derive(Clone, PartialEq, ::prost::Message)]
3046pub struct SignalRequest {
3047 #[prost(oneof="signal_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18")]
3048 pub message: ::core::option::Option<signal_request::Message>,
3049}
3050pub mod signal_request {
3052 #[allow(clippy::derive_partial_eq_without_eq)]
3053#[derive(Clone, PartialEq, ::prost::Oneof)]
3054 pub enum Message {
3055 #[prost(message, tag="1")]
3057 Offer(super::SessionDescription),
3058 #[prost(message, tag="2")]
3060 Answer(super::SessionDescription),
3061 #[prost(message, tag="3")]
3062 Trickle(super::TrickleRequest),
3063 #[prost(message, tag="4")]
3064 AddTrack(super::AddTrackRequest),
3065 #[prost(message, tag="5")]
3067 Mute(super::MuteTrackRequest),
3068 #[prost(message, tag="6")]
3070 Subscription(super::UpdateSubscription),
3071 #[prost(message, tag="7")]
3073 TrackSetting(super::UpdateTrackSettings),
3074 #[prost(message, tag="8")]
3076 Leave(super::LeaveRequest),
3077 #[prost(message, tag="10")]
3079 UpdateLayers(super::UpdateVideoLayers),
3080 #[prost(message, tag="11")]
3082 SubscriptionPermission(super::SubscriptionPermission),
3083 #[prost(message, tag="12")]
3085 SyncState(super::SyncState),
3086 #[prost(message, tag="13")]
3088 Simulate(super::SimulateScenario),
3089 #[prost(int64, tag="14")]
3093 Ping(i64),
3094 #[prost(message, tag="15")]
3097 UpdateMetadata(super::UpdateParticipantMetadata),
3098 #[prost(message, tag="16")]
3099 PingReq(super::Ping),
3100 #[prost(message, tag="17")]
3102 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3103 #[prost(message, tag="18")]
3105 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3106 }
3107}
3108#[allow(clippy::derive_partial_eq_without_eq)]
3109#[derive(Clone, PartialEq, ::prost::Message)]
3110pub struct SignalResponse {
3111 #[prost(oneof="signal_response::Message", tags="1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26")]
3112 pub message: ::core::option::Option<signal_response::Message>,
3113}
3114pub mod signal_response {
3116 #[allow(clippy::derive_partial_eq_without_eq)]
3117#[derive(Clone, PartialEq, ::prost::Oneof)]
3118 pub enum Message {
3119 #[prost(message, tag="1")]
3121 Join(super::JoinResponse),
3122 #[prost(message, tag="2")]
3124 Answer(super::SessionDescription),
3125 #[prost(message, tag="3")]
3127 Offer(super::SessionDescription),
3128 #[prost(message, tag="4")]
3130 Trickle(super::TrickleRequest),
3131 #[prost(message, tag="5")]
3133 Update(super::ParticipantUpdate),
3134 #[prost(message, tag="6")]
3136 TrackPublished(super::TrackPublishedResponse),
3137 #[prost(message, tag="8")]
3139 Leave(super::LeaveRequest),
3140 #[prost(message, tag="9")]
3142 Mute(super::MuteTrackRequest),
3143 #[prost(message, tag="10")]
3145 SpeakersChanged(super::SpeakersChanged),
3146 #[prost(message, tag="11")]
3148 RoomUpdate(super::RoomUpdate),
3149 #[prost(message, tag="12")]
3151 ConnectionQuality(super::ConnectionQualityUpdate),
3152 #[prost(message, tag="13")]
3155 StreamStateUpdate(super::StreamStateUpdate),
3156 #[prost(message, tag="14")]
3158 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3159 #[prost(message, tag="15")]
3161 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3162 #[prost(string, tag="16")]
3164 RefreshToken(::prost::alloc::string::String),
3165 #[prost(message, tag="17")]
3167 TrackUnpublished(super::TrackUnpublishedResponse),
3168 #[prost(int64, tag="18")]
3172 Pong(i64),
3173 #[prost(message, tag="19")]
3175 Reconnect(super::ReconnectResponse),
3176 #[prost(message, tag="20")]
3178 PongResp(super::Pong),
3179 #[prost(message, tag="21")]
3181 SubscriptionResponse(super::SubscriptionResponse),
3182 #[prost(message, tag="22")]
3184 RequestResponse(super::RequestResponse),
3185 #[prost(message, tag="23")]
3187 TrackSubscribed(super::TrackSubscribed),
3188 #[prost(message, tag="24")]
3190 RoomMoved(super::RoomMovedResponse),
3191 #[prost(message, tag="25")]
3193 MediaSectionsRequirement(super::MediaSectionsRequirement),
3194 #[prost(message, tag="26")]
3196 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3197 }
3198}
3199#[allow(clippy::derive_partial_eq_without_eq)]
3200#[derive(Clone, PartialEq, ::prost::Message)]
3201pub struct SimulcastCodec {
3202 #[prost(string, tag="1")]
3203 pub codec: ::prost::alloc::string::String,
3204 #[prost(string, tag="2")]
3205 pub cid: ::prost::alloc::string::String,
3206 #[prost(message, repeated, tag="4")]
3207 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3208 #[prost(enumeration="video_layer::Mode", tag="5")]
3209 pub video_layer_mode: i32,
3210}
3211#[allow(clippy::derive_partial_eq_without_eq)]
3212#[derive(Clone, PartialEq, ::prost::Message)]
3213pub struct AddTrackRequest {
3214 #[prost(string, tag="1")]
3216 pub cid: ::prost::alloc::string::String,
3217 #[prost(string, tag="2")]
3218 pub name: ::prost::alloc::string::String,
3219 #[prost(enumeration="TrackType", tag="3")]
3220 pub r#type: i32,
3221 #[prost(uint32, tag="4")]
3222 pub width: u32,
3223 #[prost(uint32, tag="5")]
3224 pub height: u32,
3225 #[prost(bool, tag="6")]
3227 pub muted: bool,
3228 #[deprecated]
3232 #[prost(bool, tag="7")]
3233 pub disable_dtx: bool,
3234 #[prost(enumeration="TrackSource", tag="8")]
3235 pub source: i32,
3236 #[prost(message, repeated, tag="9")]
3237 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3238 #[prost(message, repeated, tag="10")]
3239 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3240 #[prost(string, tag="11")]
3242 pub sid: ::prost::alloc::string::String,
3243 #[deprecated]
3245 #[prost(bool, tag="12")]
3246 pub stereo: bool,
3247 #[prost(bool, tag="13")]
3249 pub disable_red: bool,
3250 #[prost(enumeration="encryption::Type", tag="14")]
3251 pub encryption: i32,
3252 #[prost(string, tag="15")]
3255 pub stream: ::prost::alloc::string::String,
3256 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3257 pub backup_codec_policy: i32,
3258 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3259 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3260}
3261#[allow(clippy::derive_partial_eq_without_eq)]
3262#[derive(Clone, PartialEq, ::prost::Message)]
3263pub struct TrickleRequest {
3264 #[prost(string, tag="1")]
3265 pub candidate_init: ::prost::alloc::string::String,
3266 #[prost(enumeration="SignalTarget", tag="2")]
3267 pub target: i32,
3268 #[prost(bool, tag="3")]
3269 pub r#final: bool,
3270}
3271#[allow(clippy::derive_partial_eq_without_eq)]
3272#[derive(Clone, PartialEq, ::prost::Message)]
3273pub struct MuteTrackRequest {
3274 #[prost(string, tag="1")]
3275 pub sid: ::prost::alloc::string::String,
3276 #[prost(bool, tag="2")]
3277 pub muted: bool,
3278}
3279#[allow(clippy::derive_partial_eq_without_eq)]
3280#[derive(Clone, PartialEq, ::prost::Message)]
3281pub struct JoinResponse {
3282 #[prost(message, optional, tag="1")]
3283 pub room: ::core::option::Option<Room>,
3284 #[prost(message, optional, tag="2")]
3285 pub participant: ::core::option::Option<ParticipantInfo>,
3286 #[prost(message, repeated, tag="3")]
3287 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3288 #[prost(string, tag="4")]
3290 pub server_version: ::prost::alloc::string::String,
3291 #[prost(message, repeated, tag="5")]
3292 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3293 #[prost(bool, tag="6")]
3295 pub subscriber_primary: bool,
3296 #[prost(string, tag="7")]
3299 pub alternative_url: ::prost::alloc::string::String,
3300 #[prost(message, optional, tag="8")]
3301 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3302 #[prost(string, tag="9")]
3304 pub server_region: ::prost::alloc::string::String,
3305 #[prost(int32, tag="10")]
3306 pub ping_timeout: i32,
3307 #[prost(int32, tag="11")]
3308 pub ping_interval: i32,
3309 #[prost(message, optional, tag="12")]
3310 pub server_info: ::core::option::Option<ServerInfo>,
3311 #[prost(bytes="vec", tag="13")]
3313 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3314 #[prost(message, repeated, tag="14")]
3315 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3316 #[prost(bool, tag="15")]
3318 pub fast_publish: bool,
3319}
3320#[allow(clippy::derive_partial_eq_without_eq)]
3321#[derive(Clone, PartialEq, ::prost::Message)]
3322pub struct ReconnectResponse {
3323 #[prost(message, repeated, tag="1")]
3324 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3325 #[prost(message, optional, tag="2")]
3326 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3327 #[prost(message, optional, tag="3")]
3328 pub server_info: ::core::option::Option<ServerInfo>,
3329 #[prost(uint32, tag="4")]
3331 pub last_message_seq: u32,
3332}
3333#[allow(clippy::derive_partial_eq_without_eq)]
3334#[derive(Clone, PartialEq, ::prost::Message)]
3335pub struct TrackPublishedResponse {
3336 #[prost(string, tag="1")]
3337 pub cid: ::prost::alloc::string::String,
3338 #[prost(message, optional, tag="2")]
3339 pub track: ::core::option::Option<TrackInfo>,
3340}
3341#[allow(clippy::derive_partial_eq_without_eq)]
3342#[derive(Clone, PartialEq, ::prost::Message)]
3343pub struct TrackUnpublishedResponse {
3344 #[prost(string, tag="1")]
3345 pub track_sid: ::prost::alloc::string::String,
3346}
3347#[allow(clippy::derive_partial_eq_without_eq)]
3348#[derive(Clone, PartialEq, ::prost::Message)]
3349pub struct SessionDescription {
3350 #[prost(string, tag="1")]
3352 pub r#type: ::prost::alloc::string::String,
3353 #[prost(string, tag="2")]
3354 pub sdp: ::prost::alloc::string::String,
3355 #[prost(uint32, tag="3")]
3356 pub id: u32,
3357 #[prost(map="string, string", tag="4")]
3358 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3359}
3360#[allow(clippy::derive_partial_eq_without_eq)]
3361#[derive(Clone, PartialEq, ::prost::Message)]
3362pub struct ParticipantUpdate {
3363 #[prost(message, repeated, tag="1")]
3364 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3365}
3366#[allow(clippy::derive_partial_eq_without_eq)]
3367#[derive(Clone, PartialEq, ::prost::Message)]
3368pub struct UpdateSubscription {
3369 #[prost(string, repeated, tag="1")]
3370 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3371 #[prost(bool, tag="2")]
3372 pub subscribe: bool,
3373 #[prost(message, repeated, tag="3")]
3374 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3375}
3376#[allow(clippy::derive_partial_eq_without_eq)]
3377#[derive(Clone, PartialEq, ::prost::Message)]
3378pub struct UpdateTrackSettings {
3379 #[prost(string, repeated, tag="1")]
3380 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3381 #[prost(bool, tag="3")]
3383 pub disabled: bool,
3384 #[prost(enumeration="VideoQuality", tag="4")]
3386 pub quality: i32,
3387 #[prost(uint32, tag="5")]
3389 pub width: u32,
3390 #[prost(uint32, tag="6")]
3392 pub height: u32,
3393 #[prost(uint32, tag="7")]
3394 pub fps: u32,
3395 #[prost(uint32, tag="8")]
3403 pub priority: u32,
3404}
3405#[allow(clippy::derive_partial_eq_without_eq)]
3406#[derive(Clone, PartialEq, ::prost::Message)]
3407pub struct UpdateLocalAudioTrack {
3408 #[prost(string, tag="1")]
3409 pub track_sid: ::prost::alloc::string::String,
3410 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3411 pub features: ::prost::alloc::vec::Vec<i32>,
3412}
3413#[allow(clippy::derive_partial_eq_without_eq)]
3414#[derive(Clone, PartialEq, ::prost::Message)]
3415pub struct UpdateLocalVideoTrack {
3416 #[prost(string, tag="1")]
3417 pub track_sid: ::prost::alloc::string::String,
3418 #[prost(uint32, tag="2")]
3419 pub width: u32,
3420 #[prost(uint32, tag="3")]
3421 pub height: u32,
3422}
3423#[allow(clippy::derive_partial_eq_without_eq)]
3424#[derive(Clone, PartialEq, ::prost::Message)]
3425pub struct LeaveRequest {
3426 #[prost(bool, tag="1")]
3430 pub can_reconnect: bool,
3431 #[prost(enumeration="DisconnectReason", tag="2")]
3432 pub reason: i32,
3433 #[prost(enumeration="leave_request::Action", tag="3")]
3434 pub action: i32,
3435 #[prost(message, optional, tag="4")]
3436 pub regions: ::core::option::Option<RegionSettings>,
3437}
3438pub mod leave_request {
3440 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3442 #[repr(i32)]
3443 pub enum Action {
3444 Disconnect = 0,
3446 Resume = 1,
3448 Reconnect = 2,
3450 }
3451 impl Action {
3452 pub fn as_str_name(&self) -> &'static str {
3457 match self {
3458 Action::Disconnect => "DISCONNECT",
3459 Action::Resume => "RESUME",
3460 Action::Reconnect => "RECONNECT",
3461 }
3462 }
3463 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3465 match value {
3466 "DISCONNECT" => Some(Self::Disconnect),
3467 "RESUME" => Some(Self::Resume),
3468 "RECONNECT" => Some(Self::Reconnect),
3469 _ => None,
3470 }
3471 }
3472 }
3473}
3474#[allow(clippy::derive_partial_eq_without_eq)]
3476#[derive(Clone, PartialEq, ::prost::Message)]
3477pub struct UpdateVideoLayers {
3478 #[prost(string, tag="1")]
3479 pub track_sid: ::prost::alloc::string::String,
3480 #[prost(message, repeated, tag="2")]
3481 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3482}
3483#[allow(clippy::derive_partial_eq_without_eq)]
3484#[derive(Clone, PartialEq, ::prost::Message)]
3485pub struct UpdateParticipantMetadata {
3486 #[prost(string, tag="1")]
3487 pub metadata: ::prost::alloc::string::String,
3488 #[prost(string, tag="2")]
3489 pub name: ::prost::alloc::string::String,
3490 #[prost(map="string, string", tag="3")]
3493 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3494 #[prost(uint32, tag="4")]
3495 pub request_id: u32,
3496}
3497#[allow(clippy::derive_partial_eq_without_eq)]
3498#[derive(Clone, PartialEq, ::prost::Message)]
3499pub struct IceServer {
3500 #[prost(string, repeated, tag="1")]
3501 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3502 #[prost(string, tag="2")]
3503 pub username: ::prost::alloc::string::String,
3504 #[prost(string, tag="3")]
3505 pub credential: ::prost::alloc::string::String,
3506}
3507#[allow(clippy::derive_partial_eq_without_eq)]
3508#[derive(Clone, PartialEq, ::prost::Message)]
3509pub struct SpeakersChanged {
3510 #[prost(message, repeated, tag="1")]
3511 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3512}
3513#[allow(clippy::derive_partial_eq_without_eq)]
3514#[derive(Clone, PartialEq, ::prost::Message)]
3515pub struct RoomUpdate {
3516 #[prost(message, optional, tag="1")]
3517 pub room: ::core::option::Option<Room>,
3518}
3519#[allow(clippy::derive_partial_eq_without_eq)]
3520#[derive(Clone, PartialEq, ::prost::Message)]
3521pub struct ConnectionQualityInfo {
3522 #[prost(string, tag="1")]
3523 pub participant_sid: ::prost::alloc::string::String,
3524 #[prost(enumeration="ConnectionQuality", tag="2")]
3525 pub quality: i32,
3526 #[prost(float, tag="3")]
3527 pub score: f32,
3528}
3529#[allow(clippy::derive_partial_eq_without_eq)]
3530#[derive(Clone, PartialEq, ::prost::Message)]
3531pub struct ConnectionQualityUpdate {
3532 #[prost(message, repeated, tag="1")]
3533 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3534}
3535#[allow(clippy::derive_partial_eq_without_eq)]
3536#[derive(Clone, PartialEq, ::prost::Message)]
3537pub struct StreamStateInfo {
3538 #[prost(string, tag="1")]
3539 pub participant_sid: ::prost::alloc::string::String,
3540 #[prost(string, tag="2")]
3541 pub track_sid: ::prost::alloc::string::String,
3542 #[prost(enumeration="StreamState", tag="3")]
3543 pub state: i32,
3544}
3545#[allow(clippy::derive_partial_eq_without_eq)]
3546#[derive(Clone, PartialEq, ::prost::Message)]
3547pub struct StreamStateUpdate {
3548 #[prost(message, repeated, tag="1")]
3549 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3550}
3551#[allow(clippy::derive_partial_eq_without_eq)]
3552#[derive(Clone, PartialEq, ::prost::Message)]
3553pub struct SubscribedQuality {
3554 #[prost(enumeration="VideoQuality", tag="1")]
3555 pub quality: i32,
3556 #[prost(bool, tag="2")]
3557 pub enabled: bool,
3558}
3559#[allow(clippy::derive_partial_eq_without_eq)]
3560#[derive(Clone, PartialEq, ::prost::Message)]
3561pub struct SubscribedCodec {
3562 #[prost(string, tag="1")]
3563 pub codec: ::prost::alloc::string::String,
3564 #[prost(message, repeated, tag="2")]
3565 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3566}
3567#[allow(clippy::derive_partial_eq_without_eq)]
3568#[derive(Clone, PartialEq, ::prost::Message)]
3569pub struct SubscribedQualityUpdate {
3570 #[prost(string, tag="1")]
3571 pub track_sid: ::prost::alloc::string::String,
3572 #[deprecated]
3573 #[prost(message, repeated, tag="2")]
3574 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3575 #[prost(message, repeated, tag="3")]
3576 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3577}
3578#[allow(clippy::derive_partial_eq_without_eq)]
3579#[derive(Clone, PartialEq, ::prost::Message)]
3580pub struct SubscribedAudioCodecUpdate {
3581 #[prost(string, tag="1")]
3582 pub track_sid: ::prost::alloc::string::String,
3583 #[prost(message, repeated, tag="2")]
3584 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
3585}
3586#[allow(clippy::derive_partial_eq_without_eq)]
3587#[derive(Clone, PartialEq, ::prost::Message)]
3588pub struct TrackPermission {
3589 #[prost(string, tag="1")]
3591 pub participant_sid: ::prost::alloc::string::String,
3592 #[prost(bool, tag="2")]
3593 pub all_tracks: bool,
3594 #[prost(string, repeated, tag="3")]
3595 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3596 #[prost(string, tag="4")]
3597 pub participant_identity: ::prost::alloc::string::String,
3598}
3599#[allow(clippy::derive_partial_eq_without_eq)]
3600#[derive(Clone, PartialEq, ::prost::Message)]
3601pub struct SubscriptionPermission {
3602 #[prost(bool, tag="1")]
3603 pub all_participants: bool,
3604 #[prost(message, repeated, tag="2")]
3605 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3606}
3607#[allow(clippy::derive_partial_eq_without_eq)]
3608#[derive(Clone, PartialEq, ::prost::Message)]
3609pub struct SubscriptionPermissionUpdate {
3610 #[prost(string, tag="1")]
3611 pub participant_sid: ::prost::alloc::string::String,
3612 #[prost(string, tag="2")]
3613 pub track_sid: ::prost::alloc::string::String,
3614 #[prost(bool, tag="3")]
3615 pub allowed: bool,
3616}
3617#[allow(clippy::derive_partial_eq_without_eq)]
3618#[derive(Clone, PartialEq, ::prost::Message)]
3619pub struct RoomMovedResponse {
3620 #[prost(message, optional, tag="1")]
3622 pub room: ::core::option::Option<Room>,
3623 #[prost(string, tag="2")]
3625 pub token: ::prost::alloc::string::String,
3626 #[prost(message, optional, tag="3")]
3627 pub participant: ::core::option::Option<ParticipantInfo>,
3628 #[prost(message, repeated, tag="4")]
3629 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3630}
3631#[allow(clippy::derive_partial_eq_without_eq)]
3632#[derive(Clone, PartialEq, ::prost::Message)]
3633pub struct SyncState {
3634 #[prost(message, optional, tag="1")]
3638 pub answer: ::core::option::Option<SessionDescription>,
3639 #[prost(message, optional, tag="2")]
3640 pub subscription: ::core::option::Option<UpdateSubscription>,
3641 #[prost(message, repeated, tag="3")]
3642 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3643 #[prost(message, repeated, tag="4")]
3644 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3645 #[prost(message, optional, tag="5")]
3649 pub offer: ::core::option::Option<SessionDescription>,
3650 #[prost(string, repeated, tag="6")]
3651 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3652 #[prost(message, repeated, tag="7")]
3653 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
3654}
3655#[allow(clippy::derive_partial_eq_without_eq)]
3656#[derive(Clone, PartialEq, ::prost::Message)]
3657pub struct DataChannelReceiveState {
3658 #[prost(string, tag="1")]
3659 pub publisher_sid: ::prost::alloc::string::String,
3660 #[prost(uint32, tag="2")]
3661 pub last_seq: u32,
3662}
3663#[allow(clippy::derive_partial_eq_without_eq)]
3664#[derive(Clone, PartialEq, ::prost::Message)]
3665pub struct DataChannelInfo {
3666 #[prost(string, tag="1")]
3667 pub label: ::prost::alloc::string::String,
3668 #[prost(uint32, tag="2")]
3669 pub id: u32,
3670 #[prost(enumeration="SignalTarget", tag="3")]
3671 pub target: i32,
3672}
3673#[allow(clippy::derive_partial_eq_without_eq)]
3674#[derive(Clone, PartialEq, ::prost::Message)]
3675pub struct SimulateScenario {
3676 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3677 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3678}
3679pub mod simulate_scenario {
3681 #[allow(clippy::derive_partial_eq_without_eq)]
3682#[derive(Clone, PartialEq, ::prost::Oneof)]
3683 pub enum Scenario {
3684 #[prost(int32, tag="1")]
3686 SpeakerUpdate(i32),
3687 #[prost(bool, tag="2")]
3689 NodeFailure(bool),
3690 #[prost(bool, tag="3")]
3692 Migration(bool),
3693 #[prost(bool, tag="4")]
3695 ServerLeave(bool),
3696 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3698 SwitchCandidateProtocol(i32),
3699 #[prost(int64, tag="6")]
3702 SubscriberBandwidth(i64),
3703 #[prost(bool, tag="7")]
3705 DisconnectSignalOnResume(bool),
3706 #[prost(bool, tag="8")]
3708 DisconnectSignalOnResumeNoMessages(bool),
3709 #[prost(bool, tag="9")]
3711 LeaveRequestFullReconnect(bool),
3712 }
3713}
3714#[allow(clippy::derive_partial_eq_without_eq)]
3715#[derive(Clone, PartialEq, ::prost::Message)]
3716pub struct Ping {
3717 #[prost(int64, tag="1")]
3718 pub timestamp: i64,
3719 #[prost(int64, tag="2")]
3721 pub rtt: i64,
3722}
3723#[allow(clippy::derive_partial_eq_without_eq)]
3724#[derive(Clone, PartialEq, ::prost::Message)]
3725pub struct Pong {
3726 #[prost(int64, tag="1")]
3728 pub last_ping_timestamp: i64,
3729 #[prost(int64, tag="2")]
3730 pub timestamp: i64,
3731}
3732#[allow(clippy::derive_partial_eq_without_eq)]
3733#[derive(Clone, PartialEq, ::prost::Message)]
3734pub struct RegionSettings {
3735 #[prost(message, repeated, tag="1")]
3736 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3737}
3738#[allow(clippy::derive_partial_eq_without_eq)]
3739#[derive(Clone, PartialEq, ::prost::Message)]
3740pub struct RegionInfo {
3741 #[prost(string, tag="1")]
3742 pub region: ::prost::alloc::string::String,
3743 #[prost(string, tag="2")]
3744 pub url: ::prost::alloc::string::String,
3745 #[prost(int64, tag="3")]
3746 pub distance: i64,
3747}
3748#[allow(clippy::derive_partial_eq_without_eq)]
3749#[derive(Clone, PartialEq, ::prost::Message)]
3750pub struct SubscriptionResponse {
3751 #[prost(string, tag="1")]
3752 pub track_sid: ::prost::alloc::string::String,
3753 #[prost(enumeration="SubscriptionError", tag="2")]
3754 pub err: i32,
3755}
3756#[allow(clippy::derive_partial_eq_without_eq)]
3757#[derive(Clone, PartialEq, ::prost::Message)]
3758pub struct RequestResponse {
3759 #[prost(uint32, tag="1")]
3760 pub request_id: u32,
3761 #[prost(enumeration="request_response::Reason", tag="2")]
3762 pub reason: i32,
3763 #[prost(string, tag="3")]
3764 pub message: ::prost::alloc::string::String,
3765 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9")]
3766 pub request: ::core::option::Option<request_response::Request>,
3767}
3768pub mod request_response {
3770 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3771 #[repr(i32)]
3772 pub enum Reason {
3773 Ok = 0,
3774 NotFound = 1,
3775 NotAllowed = 2,
3776 LimitExceeded = 3,
3777 Queued = 4,
3778 UnsupportedType = 5,
3779 UnclassifiedError = 6,
3780 }
3781 impl Reason {
3782 pub fn as_str_name(&self) -> &'static str {
3787 match self {
3788 Reason::Ok => "OK",
3789 Reason::NotFound => "NOT_FOUND",
3790 Reason::NotAllowed => "NOT_ALLOWED",
3791 Reason::LimitExceeded => "LIMIT_EXCEEDED",
3792 Reason::Queued => "QUEUED",
3793 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
3794 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
3795 }
3796 }
3797 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3799 match value {
3800 "OK" => Some(Self::Ok),
3801 "NOT_FOUND" => Some(Self::NotFound),
3802 "NOT_ALLOWED" => Some(Self::NotAllowed),
3803 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
3804 "QUEUED" => Some(Self::Queued),
3805 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
3806 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
3807 _ => None,
3808 }
3809 }
3810 }
3811 #[allow(clippy::derive_partial_eq_without_eq)]
3812#[derive(Clone, PartialEq, ::prost::Oneof)]
3813 pub enum Request {
3814 #[prost(message, tag="4")]
3815 Trickle(super::TrickleRequest),
3816 #[prost(message, tag="5")]
3817 AddTrack(super::AddTrackRequest),
3818 #[prost(message, tag="6")]
3819 Mute(super::MuteTrackRequest),
3820 #[prost(message, tag="7")]
3821 UpdateMetadata(super::UpdateParticipantMetadata),
3822 #[prost(message, tag="8")]
3823 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3824 #[prost(message, tag="9")]
3825 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3826 }
3827}
3828#[allow(clippy::derive_partial_eq_without_eq)]
3829#[derive(Clone, PartialEq, ::prost::Message)]
3830pub struct TrackSubscribed {
3831 #[prost(string, tag="1")]
3832 pub track_sid: ::prost::alloc::string::String,
3833}
3834#[allow(clippy::derive_partial_eq_without_eq)]
3835#[derive(Clone, PartialEq, ::prost::Message)]
3836pub struct ConnectionSettings {
3837 #[prost(bool, tag="1")]
3838 pub auto_subscribe: bool,
3839 #[prost(bool, tag="2")]
3840 pub adaptive_stream: bool,
3841 #[prost(bool, optional, tag="3")]
3842 pub subscriber_allow_pause: ::core::option::Option<bool>,
3843 #[prost(bool, tag="4")]
3844 pub disable_ice_lite: bool,
3845}
3846#[allow(clippy::derive_partial_eq_without_eq)]
3847#[derive(Clone, PartialEq, ::prost::Message)]
3848pub struct JoinRequest {
3849 #[prost(message, optional, tag="1")]
3850 pub client_info: ::core::option::Option<ClientInfo>,
3851 #[prost(message, optional, tag="2")]
3852 pub connection_settings: ::core::option::Option<ConnectionSettings>,
3853 #[prost(string, tag="3")]
3855 pub metadata: ::prost::alloc::string::String,
3856 #[prost(map="string, string", tag="4")]
3860 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3861 #[prost(message, repeated, tag="5")]
3862 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
3863 #[prost(message, optional, tag="6")]
3864 pub publisher_offer: ::core::option::Option<SessionDescription>,
3865 #[prost(bool, tag="7")]
3866 pub reconnect: bool,
3867 #[prost(enumeration="ReconnectReason", tag="8")]
3868 pub reconnect_reason: i32,
3869 #[prost(string, tag="9")]
3870 pub participant_sid: ::prost::alloc::string::String,
3871 #[prost(message, optional, tag="10")]
3872 pub sync_state: ::core::option::Option<SyncState>,
3873}
3874#[allow(clippy::derive_partial_eq_without_eq)]
3875#[derive(Clone, PartialEq, ::prost::Message)]
3876pub struct WrappedJoinRequest {
3877 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
3878 pub compression: i32,
3879 #[prost(bytes="vec", tag="2")]
3881 pub join_request: ::prost::alloc::vec::Vec<u8>,
3882}
3883pub mod wrapped_join_request {
3885 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3886 #[repr(i32)]
3887 pub enum Compression {
3888 None = 0,
3889 Gzip = 1,
3890 }
3891 impl Compression {
3892 pub fn as_str_name(&self) -> &'static str {
3897 match self {
3898 Compression::None => "NONE",
3899 Compression::Gzip => "GZIP",
3900 }
3901 }
3902 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3904 match value {
3905 "NONE" => Some(Self::None),
3906 "GZIP" => Some(Self::Gzip),
3907 _ => None,
3908 }
3909 }
3910 }
3911}
3912#[allow(clippy::derive_partial_eq_without_eq)]
3913#[derive(Clone, PartialEq, ::prost::Message)]
3914pub struct MediaSectionsRequirement {
3915 #[prost(uint32, tag="1")]
3916 pub num_audios: u32,
3917 #[prost(uint32, tag="2")]
3918 pub num_videos: u32,
3919}
3920#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3921#[repr(i32)]
3922pub enum SignalTarget {
3923 Publisher = 0,
3924 Subscriber = 1,
3925}
3926impl SignalTarget {
3927 pub fn as_str_name(&self) -> &'static str {
3932 match self {
3933 SignalTarget::Publisher => "PUBLISHER",
3934 SignalTarget::Subscriber => "SUBSCRIBER",
3935 }
3936 }
3937 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3939 match value {
3940 "PUBLISHER" => Some(Self::Publisher),
3941 "SUBSCRIBER" => Some(Self::Subscriber),
3942 _ => None,
3943 }
3944 }
3945}
3946#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3947#[repr(i32)]
3948pub enum StreamState {
3949 Active = 0,
3950 Paused = 1,
3951}
3952impl StreamState {
3953 pub fn as_str_name(&self) -> &'static str {
3958 match self {
3959 StreamState::Active => "ACTIVE",
3960 StreamState::Paused => "PAUSED",
3961 }
3962 }
3963 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3965 match value {
3966 "ACTIVE" => Some(Self::Active),
3967 "PAUSED" => Some(Self::Paused),
3968 _ => None,
3969 }
3970 }
3971}
3972#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3973#[repr(i32)]
3974pub enum CandidateProtocol {
3975 Udp = 0,
3976 Tcp = 1,
3977 Tls = 2,
3978}
3979impl CandidateProtocol {
3980 pub fn as_str_name(&self) -> &'static str {
3985 match self {
3986 CandidateProtocol::Udp => "UDP",
3987 CandidateProtocol::Tcp => "TCP",
3988 CandidateProtocol::Tls => "TLS",
3989 }
3990 }
3991 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3993 match value {
3994 "UDP" => Some(Self::Udp),
3995 "TCP" => Some(Self::Tcp),
3996 "TLS" => Some(Self::Tls),
3997 _ => None,
3998 }
3999 }
4000}
4001#[allow(clippy::derive_partial_eq_without_eq)]
4002#[derive(Clone, PartialEq, ::prost::Message)]
4003pub struct Job {
4004 #[prost(string, tag="1")]
4005 pub id: ::prost::alloc::string::String,
4006 #[prost(string, tag="9")]
4007 pub dispatch_id: ::prost::alloc::string::String,
4008 #[prost(enumeration="JobType", tag="2")]
4009 pub r#type: i32,
4010 #[prost(message, optional, tag="3")]
4011 pub room: ::core::option::Option<Room>,
4012 #[prost(message, optional, tag="4")]
4013 pub participant: ::core::option::Option<ParticipantInfo>,
4014 #[deprecated]
4015 #[prost(string, tag="5")]
4016 pub namespace: ::prost::alloc::string::String,
4017 #[prost(string, tag="6")]
4018 pub metadata: ::prost::alloc::string::String,
4019 #[prost(string, tag="7")]
4020 pub agent_name: ::prost::alloc::string::String,
4021 #[prost(message, optional, tag="8")]
4022 pub state: ::core::option::Option<JobState>,
4023 #[prost(bool, tag="10")]
4024 pub enable_recording: bool,
4025}
4026#[allow(clippy::derive_partial_eq_without_eq)]
4027#[derive(Clone, PartialEq, ::prost::Message)]
4028pub struct JobState {
4029 #[prost(enumeration="JobStatus", tag="1")]
4030 pub status: i32,
4031 #[prost(string, tag="2")]
4032 pub error: ::prost::alloc::string::String,
4033 #[prost(int64, tag="3")]
4034 pub started_at: i64,
4035 #[prost(int64, tag="4")]
4036 pub ended_at: i64,
4037 #[prost(int64, tag="5")]
4038 pub updated_at: i64,
4039 #[prost(string, tag="6")]
4040 pub participant_identity: ::prost::alloc::string::String,
4041 #[prost(string, tag="7")]
4042 pub worker_id: ::prost::alloc::string::String,
4043 #[prost(string, tag="8")]
4044 pub agent_id: ::prost::alloc::string::String,
4045}
4046#[allow(clippy::derive_partial_eq_without_eq)]
4048#[derive(Clone, PartialEq, ::prost::Message)]
4049pub struct WorkerMessage {
4050 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4051 pub message: ::core::option::Option<worker_message::Message>,
4052}
4053pub mod worker_message {
4055 #[allow(clippy::derive_partial_eq_without_eq)]
4056#[derive(Clone, PartialEq, ::prost::Oneof)]
4057 pub enum Message {
4058 #[prost(message, tag="1")]
4060 Register(super::RegisterWorkerRequest),
4061 #[prost(message, tag="2")]
4063 Availability(super::AvailabilityResponse),
4064 #[prost(message, tag="3")]
4066 UpdateWorker(super::UpdateWorkerStatus),
4067 #[prost(message, tag="4")]
4069 UpdateJob(super::UpdateJobStatus),
4070 #[prost(message, tag="5")]
4071 Ping(super::WorkerPing),
4072 #[prost(message, tag="6")]
4073 SimulateJob(super::SimulateJobRequest),
4074 #[prost(message, tag="7")]
4075 MigrateJob(super::MigrateJobRequest),
4076 }
4077}
4078#[allow(clippy::derive_partial_eq_without_eq)]
4080#[derive(Clone, PartialEq, ::prost::Message)]
4081pub struct ServerMessage {
4082 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4083 pub message: ::core::option::Option<server_message::Message>,
4084}
4085pub mod server_message {
4087 #[allow(clippy::derive_partial_eq_without_eq)]
4088#[derive(Clone, PartialEq, ::prost::Oneof)]
4089 pub enum Message {
4090 #[prost(message, tag="1")]
4092 Register(super::RegisterWorkerResponse),
4093 #[prost(message, tag="2")]
4095 Availability(super::AvailabilityRequest),
4096 #[prost(message, tag="3")]
4097 Assignment(super::JobAssignment),
4098 #[prost(message, tag="5")]
4099 Termination(super::JobTermination),
4100 #[prost(message, tag="4")]
4101 Pong(super::WorkerPong),
4102 }
4103}
4104#[allow(clippy::derive_partial_eq_without_eq)]
4105#[derive(Clone, PartialEq, ::prost::Message)]
4106pub struct SimulateJobRequest {
4107 #[prost(enumeration="JobType", tag="1")]
4108 pub r#type: i32,
4109 #[prost(message, optional, tag="2")]
4110 pub room: ::core::option::Option<Room>,
4111 #[prost(message, optional, tag="3")]
4112 pub participant: ::core::option::Option<ParticipantInfo>,
4113}
4114#[allow(clippy::derive_partial_eq_without_eq)]
4115#[derive(Clone, PartialEq, ::prost::Message)]
4116pub struct WorkerPing {
4117 #[prost(int64, tag="1")]
4118 pub timestamp: i64,
4119}
4120#[allow(clippy::derive_partial_eq_without_eq)]
4121#[derive(Clone, PartialEq, ::prost::Message)]
4122pub struct WorkerPong {
4123 #[prost(int64, tag="1")]
4124 pub last_timestamp: i64,
4125 #[prost(int64, tag="2")]
4126 pub timestamp: i64,
4127}
4128#[allow(clippy::derive_partial_eq_without_eq)]
4129#[derive(Clone, PartialEq, ::prost::Message)]
4130pub struct RegisterWorkerRequest {
4131 #[prost(enumeration="JobType", tag="1")]
4132 pub r#type: i32,
4133 #[prost(string, tag="8")]
4134 pub agent_name: ::prost::alloc::string::String,
4135 #[prost(string, tag="3")]
4137 pub version: ::prost::alloc::string::String,
4138 #[prost(uint32, tag="5")]
4140 pub ping_interval: u32,
4141 #[prost(string, optional, tag="6")]
4142 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4143 #[prost(message, optional, tag="7")]
4144 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4145}
4146#[allow(clippy::derive_partial_eq_without_eq)]
4147#[derive(Clone, PartialEq, ::prost::Message)]
4148pub struct RegisterWorkerResponse {
4149 #[prost(string, tag="1")]
4150 pub worker_id: ::prost::alloc::string::String,
4151 #[prost(message, optional, tag="3")]
4152 pub server_info: ::core::option::Option<ServerInfo>,
4153}
4154#[allow(clippy::derive_partial_eq_without_eq)]
4155#[derive(Clone, PartialEq, ::prost::Message)]
4156pub struct MigrateJobRequest {
4157 #[prost(string, repeated, tag="2")]
4159 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4160}
4161#[allow(clippy::derive_partial_eq_without_eq)]
4162#[derive(Clone, PartialEq, ::prost::Message)]
4163pub struct AvailabilityRequest {
4164 #[prost(message, optional, tag="1")]
4165 pub job: ::core::option::Option<Job>,
4166 #[prost(bool, tag="2")]
4169 pub resuming: bool,
4170}
4171#[allow(clippy::derive_partial_eq_without_eq)]
4172#[derive(Clone, PartialEq, ::prost::Message)]
4173pub struct AvailabilityResponse {
4174 #[prost(string, tag="1")]
4175 pub job_id: ::prost::alloc::string::String,
4176 #[prost(bool, tag="2")]
4177 pub available: bool,
4178 #[prost(bool, tag="3")]
4179 pub supports_resume: bool,
4180 #[prost(bool, tag="8")]
4181 pub terminate: bool,
4182 #[prost(string, tag="4")]
4183 pub participant_name: ::prost::alloc::string::String,
4184 #[prost(string, tag="5")]
4185 pub participant_identity: ::prost::alloc::string::String,
4186 #[prost(string, tag="6")]
4187 pub participant_metadata: ::prost::alloc::string::String,
4188 #[prost(map="string, string", tag="7")]
4190 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4191}
4192#[allow(clippy::derive_partial_eq_without_eq)]
4193#[derive(Clone, PartialEq, ::prost::Message)]
4194pub struct UpdateJobStatus {
4195 #[prost(string, tag="1")]
4196 pub job_id: ::prost::alloc::string::String,
4197 #[prost(enumeration="JobStatus", tag="2")]
4199 pub status: i32,
4200 #[prost(string, tag="3")]
4202 pub error: ::prost::alloc::string::String,
4203}
4204#[allow(clippy::derive_partial_eq_without_eq)]
4205#[derive(Clone, PartialEq, ::prost::Message)]
4206pub struct UpdateWorkerStatus {
4207 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4208 pub status: ::core::option::Option<i32>,
4209 #[prost(float, tag="3")]
4211 pub load: f32,
4212 #[prost(uint32, tag="4")]
4213 pub job_count: u32,
4214}
4215#[allow(clippy::derive_partial_eq_without_eq)]
4216#[derive(Clone, PartialEq, ::prost::Message)]
4217pub struct JobAssignment {
4218 #[prost(message, optional, tag="1")]
4219 pub job: ::core::option::Option<Job>,
4220 #[prost(string, optional, tag="2")]
4221 pub url: ::core::option::Option<::prost::alloc::string::String>,
4222 #[prost(string, tag="3")]
4223 pub token: ::prost::alloc::string::String,
4224}
4225#[allow(clippy::derive_partial_eq_without_eq)]
4226#[derive(Clone, PartialEq, ::prost::Message)]
4227pub struct JobTermination {
4228 #[prost(string, tag="1")]
4229 pub job_id: ::prost::alloc::string::String,
4230}
4231#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4232#[repr(i32)]
4233pub enum JobType {
4234 JtRoom = 0,
4235 JtPublisher = 1,
4236 JtParticipant = 2,
4237}
4238impl JobType {
4239 pub fn as_str_name(&self) -> &'static str {
4244 match self {
4245 JobType::JtRoom => "JT_ROOM",
4246 JobType::JtPublisher => "JT_PUBLISHER",
4247 JobType::JtParticipant => "JT_PARTICIPANT",
4248 }
4249 }
4250 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4252 match value {
4253 "JT_ROOM" => Some(Self::JtRoom),
4254 "JT_PUBLISHER" => Some(Self::JtPublisher),
4255 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4256 _ => None,
4257 }
4258 }
4259}
4260#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4261#[repr(i32)]
4262pub enum WorkerStatus {
4263 WsAvailable = 0,
4264 WsFull = 1,
4265}
4266impl WorkerStatus {
4267 pub fn as_str_name(&self) -> &'static str {
4272 match self {
4273 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4274 WorkerStatus::WsFull => "WS_FULL",
4275 }
4276 }
4277 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4279 match value {
4280 "WS_AVAILABLE" => Some(Self::WsAvailable),
4281 "WS_FULL" => Some(Self::WsFull),
4282 _ => None,
4283 }
4284 }
4285}
4286#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4287#[repr(i32)]
4288pub enum JobStatus {
4289 JsPending = 0,
4290 JsRunning = 1,
4291 JsSuccess = 2,
4292 JsFailed = 3,
4293}
4294impl JobStatus {
4295 pub fn as_str_name(&self) -> &'static str {
4300 match self {
4301 JobStatus::JsPending => "JS_PENDING",
4302 JobStatus::JsRunning => "JS_RUNNING",
4303 JobStatus::JsSuccess => "JS_SUCCESS",
4304 JobStatus::JsFailed => "JS_FAILED",
4305 }
4306 }
4307 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4309 match value {
4310 "JS_PENDING" => Some(Self::JsPending),
4311 "JS_RUNNING" => Some(Self::JsRunning),
4312 "JS_SUCCESS" => Some(Self::JsSuccess),
4313 "JS_FAILED" => Some(Self::JsFailed),
4314 _ => None,
4315 }
4316 }
4317}
4318#[allow(clippy::derive_partial_eq_without_eq)]
4319#[derive(Clone, PartialEq, ::prost::Message)]
4320pub struct CreateAgentDispatchRequest {
4321 #[prost(string, tag="1")]
4322 pub agent_name: ::prost::alloc::string::String,
4323 #[prost(string, tag="2")]
4324 pub room: ::prost::alloc::string::String,
4325 #[prost(string, tag="3")]
4326 pub metadata: ::prost::alloc::string::String,
4327}
4328#[allow(clippy::derive_partial_eq_without_eq)]
4329#[derive(Clone, PartialEq, ::prost::Message)]
4330pub struct RoomAgentDispatch {
4331 #[prost(string, tag="1")]
4332 pub agent_name: ::prost::alloc::string::String,
4333 #[prost(string, tag="2")]
4334 pub metadata: ::prost::alloc::string::String,
4335}
4336#[allow(clippy::derive_partial_eq_without_eq)]
4337#[derive(Clone, PartialEq, ::prost::Message)]
4338pub struct DeleteAgentDispatchRequest {
4339 #[prost(string, tag="1")]
4340 pub dispatch_id: ::prost::alloc::string::String,
4341 #[prost(string, tag="2")]
4342 pub room: ::prost::alloc::string::String,
4343}
4344#[allow(clippy::derive_partial_eq_without_eq)]
4345#[derive(Clone, PartialEq, ::prost::Message)]
4346pub struct ListAgentDispatchRequest {
4347 #[prost(string, tag="1")]
4349 pub dispatch_id: ::prost::alloc::string::String,
4350 #[prost(string, tag="2")]
4352 pub room: ::prost::alloc::string::String,
4353}
4354#[allow(clippy::derive_partial_eq_without_eq)]
4355#[derive(Clone, PartialEq, ::prost::Message)]
4356pub struct ListAgentDispatchResponse {
4357 #[prost(message, repeated, tag="1")]
4358 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4359}
4360#[allow(clippy::derive_partial_eq_without_eq)]
4361#[derive(Clone, PartialEq, ::prost::Message)]
4362pub struct AgentDispatch {
4363 #[prost(string, tag="1")]
4364 pub id: ::prost::alloc::string::String,
4365 #[prost(string, tag="2")]
4366 pub agent_name: ::prost::alloc::string::String,
4367 #[prost(string, tag="3")]
4368 pub room: ::prost::alloc::string::String,
4369 #[prost(string, tag="4")]
4370 pub metadata: ::prost::alloc::string::String,
4371 #[prost(message, optional, tag="5")]
4372 pub state: ::core::option::Option<AgentDispatchState>,
4373}
4374#[allow(clippy::derive_partial_eq_without_eq)]
4375#[derive(Clone, PartialEq, ::prost::Message)]
4376pub struct AgentDispatchState {
4377 #[prost(message, repeated, tag="1")]
4380 pub jobs: ::prost::alloc::vec::Vec<Job>,
4381 #[prost(int64, tag="2")]
4382 pub created_at: i64,
4383 #[prost(int64, tag="3")]
4384 pub deleted_at: i64,
4385}
4386#[allow(clippy::derive_partial_eq_without_eq)]
4387#[derive(Clone, PartialEq, ::prost::Message)]
4388pub struct CreateRoomRequest {
4389 #[prost(string, tag="1")]
4391 pub name: ::prost::alloc::string::String,
4392 #[prost(string, tag="12")]
4394 pub room_preset: ::prost::alloc::string::String,
4395 #[prost(uint32, tag="2")]
4397 pub empty_timeout: u32,
4398 #[prost(uint32, tag="10")]
4400 pub departure_timeout: u32,
4401 #[prost(uint32, tag="3")]
4403 pub max_participants: u32,
4404 #[prost(string, tag="4")]
4406 pub node_id: ::prost::alloc::string::String,
4407 #[prost(string, tag="5")]
4409 pub metadata: ::prost::alloc::string::String,
4410 #[prost(message, optional, tag="6")]
4412 pub egress: ::core::option::Option<RoomEgress>,
4413 #[prost(uint32, tag="7")]
4415 pub min_playout_delay: u32,
4416 #[prost(uint32, tag="8")]
4417 pub max_playout_delay: u32,
4418 #[prost(bool, tag="9")]
4421 pub sync_streams: bool,
4422 #[prost(bool, tag="13")]
4424 pub replay_enabled: bool,
4425 #[prost(message, repeated, tag="14")]
4429 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4430}
4431#[allow(clippy::derive_partial_eq_without_eq)]
4432#[derive(Clone, PartialEq, ::prost::Message)]
4433pub struct RoomEgress {
4434 #[prost(message, optional, tag="1")]
4435 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
4436 #[prost(message, optional, tag="3")]
4437 pub participant: ::core::option::Option<AutoParticipantEgress>,
4438 #[prost(message, optional, tag="2")]
4439 pub tracks: ::core::option::Option<AutoTrackEgress>,
4440}
4441#[allow(clippy::derive_partial_eq_without_eq)]
4442#[derive(Clone, PartialEq, ::prost::Message)]
4443pub struct RoomAgent {
4444 #[prost(message, repeated, tag="1")]
4445 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4446}
4447#[allow(clippy::derive_partial_eq_without_eq)]
4448#[derive(Clone, PartialEq, ::prost::Message)]
4449pub struct ListRoomsRequest {
4450 #[prost(string, repeated, tag="1")]
4452 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4453}
4454#[allow(clippy::derive_partial_eq_without_eq)]
4455#[derive(Clone, PartialEq, ::prost::Message)]
4456pub struct ListRoomsResponse {
4457 #[prost(message, repeated, tag="1")]
4458 pub rooms: ::prost::alloc::vec::Vec<Room>,
4459}
4460#[allow(clippy::derive_partial_eq_without_eq)]
4461#[derive(Clone, PartialEq, ::prost::Message)]
4462pub struct DeleteRoomRequest {
4463 #[prost(string, tag="1")]
4465 pub room: ::prost::alloc::string::String,
4466}
4467#[allow(clippy::derive_partial_eq_without_eq)]
4468#[derive(Clone, PartialEq, ::prost::Message)]
4469pub struct DeleteRoomResponse {
4470}
4471#[allow(clippy::derive_partial_eq_without_eq)]
4472#[derive(Clone, PartialEq, ::prost::Message)]
4473pub struct ListParticipantsRequest {
4474 #[prost(string, tag="1")]
4476 pub room: ::prost::alloc::string::String,
4477}
4478#[allow(clippy::derive_partial_eq_without_eq)]
4479#[derive(Clone, PartialEq, ::prost::Message)]
4480pub struct ListParticipantsResponse {
4481 #[prost(message, repeated, tag="1")]
4482 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4483}
4484#[allow(clippy::derive_partial_eq_without_eq)]
4485#[derive(Clone, PartialEq, ::prost::Message)]
4486pub struct RoomParticipantIdentity {
4487 #[prost(string, tag="1")]
4489 pub room: ::prost::alloc::string::String,
4490 #[prost(string, tag="2")]
4492 pub identity: ::prost::alloc::string::String,
4493}
4494#[allow(clippy::derive_partial_eq_without_eq)]
4495#[derive(Clone, PartialEq, ::prost::Message)]
4496pub struct RemoveParticipantResponse {
4497}
4498#[allow(clippy::derive_partial_eq_without_eq)]
4499#[derive(Clone, PartialEq, ::prost::Message)]
4500pub struct MuteRoomTrackRequest {
4501 #[prost(string, tag="1")]
4503 pub room: ::prost::alloc::string::String,
4504 #[prost(string, tag="2")]
4505 pub identity: ::prost::alloc::string::String,
4506 #[prost(string, tag="3")]
4508 pub track_sid: ::prost::alloc::string::String,
4509 #[prost(bool, tag="4")]
4511 pub muted: bool,
4512}
4513#[allow(clippy::derive_partial_eq_without_eq)]
4514#[derive(Clone, PartialEq, ::prost::Message)]
4515pub struct MuteRoomTrackResponse {
4516 #[prost(message, optional, tag="1")]
4517 pub track: ::core::option::Option<TrackInfo>,
4518}
4519#[allow(clippy::derive_partial_eq_without_eq)]
4520#[derive(Clone, PartialEq, ::prost::Message)]
4521pub struct UpdateParticipantRequest {
4522 #[prost(string, tag="1")]
4523 pub room: ::prost::alloc::string::String,
4524 #[prost(string, tag="2")]
4525 pub identity: ::prost::alloc::string::String,
4526 #[prost(string, tag="3")]
4528 pub metadata: ::prost::alloc::string::String,
4529 #[prost(message, optional, tag="4")]
4531 pub permission: ::core::option::Option<ParticipantPermission>,
4532 #[prost(string, tag="5")]
4534 pub name: ::prost::alloc::string::String,
4535 #[prost(map="string, string", tag="6")]
4538 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4539}
4540#[allow(clippy::derive_partial_eq_without_eq)]
4541#[derive(Clone, PartialEq, ::prost::Message)]
4542pub struct UpdateSubscriptionsRequest {
4543 #[prost(string, tag="1")]
4544 pub room: ::prost::alloc::string::String,
4545 #[prost(string, tag="2")]
4546 pub identity: ::prost::alloc::string::String,
4547 #[prost(string, repeated, tag="3")]
4549 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4550 #[prost(bool, tag="4")]
4552 pub subscribe: bool,
4553 #[prost(message, repeated, tag="5")]
4555 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4556}
4557#[allow(clippy::derive_partial_eq_without_eq)]
4559#[derive(Clone, PartialEq, ::prost::Message)]
4560pub struct UpdateSubscriptionsResponse {
4561}
4562#[allow(clippy::derive_partial_eq_without_eq)]
4563#[derive(Clone, PartialEq, ::prost::Message)]
4564pub struct SendDataRequest {
4565 #[prost(string, tag="1")]
4566 pub room: ::prost::alloc::string::String,
4567 #[prost(bytes="vec", tag="2")]
4568 pub data: ::prost::alloc::vec::Vec<u8>,
4569 #[prost(enumeration="data_packet::Kind", tag="3")]
4570 pub kind: i32,
4571 #[deprecated]
4573 #[prost(string, repeated, tag="4")]
4574 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4575 #[prost(string, repeated, tag="6")]
4577 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4578 #[prost(string, optional, tag="5")]
4579 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4580 #[prost(bytes="vec", tag="7")]
4582 pub nonce: ::prost::alloc::vec::Vec<u8>,
4583}
4584#[allow(clippy::derive_partial_eq_without_eq)]
4586#[derive(Clone, PartialEq, ::prost::Message)]
4587pub struct SendDataResponse {
4588}
4589#[allow(clippy::derive_partial_eq_without_eq)]
4590#[derive(Clone, PartialEq, ::prost::Message)]
4591pub struct UpdateRoomMetadataRequest {
4592 #[prost(string, tag="1")]
4593 pub room: ::prost::alloc::string::String,
4594 #[prost(string, tag="2")]
4596 pub metadata: ::prost::alloc::string::String,
4597}
4598#[allow(clippy::derive_partial_eq_without_eq)]
4599#[derive(Clone, PartialEq, ::prost::Message)]
4600pub struct RoomConfiguration {
4601 #[prost(string, tag="1")]
4603 pub name: ::prost::alloc::string::String,
4604 #[prost(uint32, tag="2")]
4606 pub empty_timeout: u32,
4607 #[prost(uint32, tag="3")]
4609 pub departure_timeout: u32,
4610 #[prost(uint32, tag="4")]
4612 pub max_participants: u32,
4613 #[prost(string, tag="11")]
4615 pub metadata: ::prost::alloc::string::String,
4616 #[prost(message, optional, tag="5")]
4618 pub egress: ::core::option::Option<RoomEgress>,
4619 #[prost(uint32, tag="7")]
4621 pub min_playout_delay: u32,
4622 #[prost(uint32, tag="8")]
4623 pub max_playout_delay: u32,
4624 #[prost(bool, tag="9")]
4627 pub sync_streams: bool,
4628 #[prost(message, repeated, tag="10")]
4630 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4631}
4632#[allow(clippy::derive_partial_eq_without_eq)]
4633#[derive(Clone, PartialEq, ::prost::Message)]
4634pub struct ForwardParticipantRequest {
4635 #[prost(string, tag="1")]
4637 pub room: ::prost::alloc::string::String,
4638 #[prost(string, tag="2")]
4640 pub identity: ::prost::alloc::string::String,
4641 #[prost(string, tag="3")]
4643 pub destination_room: ::prost::alloc::string::String,
4644}
4645#[allow(clippy::derive_partial_eq_without_eq)]
4646#[derive(Clone, PartialEq, ::prost::Message)]
4647pub struct ForwardParticipantResponse {
4648}
4649#[allow(clippy::derive_partial_eq_without_eq)]
4650#[derive(Clone, PartialEq, ::prost::Message)]
4651pub struct MoveParticipantRequest {
4652 #[prost(string, tag="1")]
4654 pub room: ::prost::alloc::string::String,
4655 #[prost(string, tag="2")]
4657 pub identity: ::prost::alloc::string::String,
4658 #[prost(string, tag="3")]
4660 pub destination_room: ::prost::alloc::string::String,
4661}
4662#[allow(clippy::derive_partial_eq_without_eq)]
4663#[derive(Clone, PartialEq, ::prost::Message)]
4664pub struct MoveParticipantResponse {
4665}
4666#[allow(clippy::derive_partial_eq_without_eq)]
4667#[derive(Clone, PartialEq, ::prost::Message)]
4668pub struct PerformRpcRequest {
4669 #[prost(string, tag="1")]
4670 pub room: ::prost::alloc::string::String,
4671 #[prost(string, tag="2")]
4672 pub destination_identity: ::prost::alloc::string::String,
4673 #[prost(string, tag="3")]
4674 pub method: ::prost::alloc::string::String,
4675 #[prost(string, tag="4")]
4676 pub payload: ::prost::alloc::string::String,
4677 #[prost(uint32, tag="5")]
4678 pub response_timeout_ms: u32,
4679}
4680#[allow(clippy::derive_partial_eq_without_eq)]
4681#[derive(Clone, PartialEq, ::prost::Message)]
4682pub struct PerformRpcResponse {
4683 #[prost(string, tag="1")]
4684 pub payload: ::prost::alloc::string::String,
4685}
4686#[allow(clippy::derive_partial_eq_without_eq)]
4687#[derive(Clone, PartialEq, ::prost::Message)]
4688pub struct CreateIngressRequest {
4689 #[prost(enumeration="IngressInput", tag="1")]
4690 pub input_type: i32,
4691 #[prost(string, tag="9")]
4693 pub url: ::prost::alloc::string::String,
4694 #[prost(string, tag="2")]
4696 pub name: ::prost::alloc::string::String,
4697 #[prost(string, tag="3")]
4699 pub room_name: ::prost::alloc::string::String,
4700 #[prost(string, tag="4")]
4702 pub participant_identity: ::prost::alloc::string::String,
4703 #[prost(string, tag="5")]
4705 pub participant_name: ::prost::alloc::string::String,
4706 #[prost(string, tag="10")]
4708 pub participant_metadata: ::prost::alloc::string::String,
4709 #[deprecated]
4711 #[prost(bool, tag="8")]
4712 pub bypass_transcoding: bool,
4713 #[prost(bool, optional, tag="11")]
4715 pub enable_transcoding: ::core::option::Option<bool>,
4716 #[prost(message, optional, tag="6")]
4717 pub audio: ::core::option::Option<IngressAudioOptions>,
4718 #[prost(message, optional, tag="7")]
4719 pub video: ::core::option::Option<IngressVideoOptions>,
4720 #[prost(bool, optional, tag="12")]
4722 pub enabled: ::core::option::Option<bool>,
4723}
4724#[allow(clippy::derive_partial_eq_without_eq)]
4725#[derive(Clone, PartialEq, ::prost::Message)]
4726pub struct IngressAudioOptions {
4727 #[prost(string, tag="1")]
4728 pub name: ::prost::alloc::string::String,
4729 #[prost(enumeration="TrackSource", tag="2")]
4730 pub source: i32,
4731 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4732 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4733}
4734pub mod ingress_audio_options {
4736 #[allow(clippy::derive_partial_eq_without_eq)]
4737#[derive(Clone, PartialEq, ::prost::Oneof)]
4738 pub enum EncodingOptions {
4739 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4740 Preset(i32),
4741 #[prost(message, tag="4")]
4742 Options(super::IngressAudioEncodingOptions),
4743 }
4744}
4745#[allow(clippy::derive_partial_eq_without_eq)]
4746#[derive(Clone, PartialEq, ::prost::Message)]
4747pub struct IngressVideoOptions {
4748 #[prost(string, tag="1")]
4749 pub name: ::prost::alloc::string::String,
4750 #[prost(enumeration="TrackSource", tag="2")]
4751 pub source: i32,
4752 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
4753 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
4754}
4755pub mod ingress_video_options {
4757 #[allow(clippy::derive_partial_eq_without_eq)]
4758#[derive(Clone, PartialEq, ::prost::Oneof)]
4759 pub enum EncodingOptions {
4760 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
4761 Preset(i32),
4762 #[prost(message, tag="4")]
4763 Options(super::IngressVideoEncodingOptions),
4764 }
4765}
4766#[allow(clippy::derive_partial_eq_without_eq)]
4767#[derive(Clone, PartialEq, ::prost::Message)]
4768pub struct IngressAudioEncodingOptions {
4769 #[prost(enumeration="AudioCodec", tag="1")]
4771 pub audio_codec: i32,
4772 #[prost(uint32, tag="2")]
4773 pub bitrate: u32,
4774 #[prost(bool, tag="3")]
4775 pub disable_dtx: bool,
4776 #[prost(uint32, tag="4")]
4777 pub channels: u32,
4778}
4779#[allow(clippy::derive_partial_eq_without_eq)]
4780#[derive(Clone, PartialEq, ::prost::Message)]
4781pub struct IngressVideoEncodingOptions {
4782 #[prost(enumeration="VideoCodec", tag="1")]
4784 pub video_codec: i32,
4785 #[prost(double, tag="2")]
4786 pub frame_rate: f64,
4787 #[prost(message, repeated, tag="3")]
4789 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4790}
4791#[allow(clippy::derive_partial_eq_without_eq)]
4792#[derive(Clone, PartialEq, ::prost::Message)]
4793pub struct IngressInfo {
4794 #[prost(string, tag="1")]
4795 pub ingress_id: ::prost::alloc::string::String,
4796 #[prost(string, tag="2")]
4797 pub name: ::prost::alloc::string::String,
4798 #[prost(string, tag="3")]
4799 pub stream_key: ::prost::alloc::string::String,
4800 #[prost(string, tag="4")]
4802 pub url: ::prost::alloc::string::String,
4803 #[prost(enumeration="IngressInput", tag="5")]
4807 pub input_type: i32,
4808 #[deprecated]
4809 #[prost(bool, tag="13")]
4810 pub bypass_transcoding: bool,
4811 #[prost(bool, optional, tag="15")]
4812 pub enable_transcoding: ::core::option::Option<bool>,
4813 #[prost(message, optional, tag="6")]
4814 pub audio: ::core::option::Option<IngressAudioOptions>,
4815 #[prost(message, optional, tag="7")]
4816 pub video: ::core::option::Option<IngressVideoOptions>,
4817 #[prost(string, tag="8")]
4818 pub room_name: ::prost::alloc::string::String,
4819 #[prost(string, tag="9")]
4820 pub participant_identity: ::prost::alloc::string::String,
4821 #[prost(string, tag="10")]
4822 pub participant_name: ::prost::alloc::string::String,
4823 #[prost(string, tag="14")]
4824 pub participant_metadata: ::prost::alloc::string::String,
4825 #[prost(bool, tag="11")]
4826 pub reusable: bool,
4827 #[prost(message, optional, tag="12")]
4829 pub state: ::core::option::Option<IngressState>,
4830 #[prost(bool, optional, tag="16")]
4832 pub enabled: ::core::option::Option<bool>,
4833}
4834#[allow(clippy::derive_partial_eq_without_eq)]
4835#[derive(Clone, PartialEq, ::prost::Message)]
4836pub struct IngressState {
4837 #[prost(enumeration="ingress_state::Status", tag="1")]
4838 pub status: i32,
4839 #[prost(string, tag="2")]
4841 pub error: ::prost::alloc::string::String,
4842 #[prost(message, optional, tag="3")]
4843 pub video: ::core::option::Option<InputVideoState>,
4844 #[prost(message, optional, tag="4")]
4845 pub audio: ::core::option::Option<InputAudioState>,
4846 #[prost(string, tag="5")]
4848 pub room_id: ::prost::alloc::string::String,
4849 #[prost(int64, tag="7")]
4850 pub started_at: i64,
4851 #[prost(int64, tag="8")]
4852 pub ended_at: i64,
4853 #[prost(int64, tag="10")]
4854 pub updated_at: i64,
4855 #[prost(string, tag="9")]
4856 pub resource_id: ::prost::alloc::string::String,
4857 #[prost(message, repeated, tag="6")]
4858 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
4859}
4860pub mod ingress_state {
4862 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4863 #[repr(i32)]
4864 pub enum Status {
4865 EndpointInactive = 0,
4866 EndpointBuffering = 1,
4867 EndpointPublishing = 2,
4868 EndpointError = 3,
4869 EndpointComplete = 4,
4870 }
4871 impl Status {
4872 pub fn as_str_name(&self) -> &'static str {
4877 match self {
4878 Status::EndpointInactive => "ENDPOINT_INACTIVE",
4879 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
4880 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
4881 Status::EndpointError => "ENDPOINT_ERROR",
4882 Status::EndpointComplete => "ENDPOINT_COMPLETE",
4883 }
4884 }
4885 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4887 match value {
4888 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
4889 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
4890 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
4891 "ENDPOINT_ERROR" => Some(Self::EndpointError),
4892 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
4893 _ => None,
4894 }
4895 }
4896 }
4897}
4898#[allow(clippy::derive_partial_eq_without_eq)]
4899#[derive(Clone, PartialEq, ::prost::Message)]
4900pub struct InputVideoState {
4901 #[prost(string, tag="1")]
4902 pub mime_type: ::prost::alloc::string::String,
4903 #[prost(uint32, tag="2")]
4904 pub average_bitrate: u32,
4905 #[prost(uint32, tag="3")]
4906 pub width: u32,
4907 #[prost(uint32, tag="4")]
4908 pub height: u32,
4909 #[prost(double, tag="5")]
4910 pub framerate: f64,
4911}
4912#[allow(clippy::derive_partial_eq_without_eq)]
4913#[derive(Clone, PartialEq, ::prost::Message)]
4914pub struct InputAudioState {
4915 #[prost(string, tag="1")]
4916 pub mime_type: ::prost::alloc::string::String,
4917 #[prost(uint32, tag="2")]
4918 pub average_bitrate: u32,
4919 #[prost(uint32, tag="3")]
4920 pub channels: u32,
4921 #[prost(uint32, tag="4")]
4922 pub sample_rate: u32,
4923}
4924#[allow(clippy::derive_partial_eq_without_eq)]
4925#[derive(Clone, PartialEq, ::prost::Message)]
4926pub struct UpdateIngressRequest {
4927 #[prost(string, tag="1")]
4928 pub ingress_id: ::prost::alloc::string::String,
4929 #[prost(string, tag="2")]
4930 pub name: ::prost::alloc::string::String,
4931 #[prost(string, tag="3")]
4932 pub room_name: ::prost::alloc::string::String,
4933 #[prost(string, tag="4")]
4934 pub participant_identity: ::prost::alloc::string::String,
4935 #[prost(string, tag="5")]
4936 pub participant_name: ::prost::alloc::string::String,
4937 #[prost(string, tag="9")]
4938 pub participant_metadata: ::prost::alloc::string::String,
4939 #[deprecated]
4940 #[prost(bool, optional, tag="8")]
4941 pub bypass_transcoding: ::core::option::Option<bool>,
4942 #[prost(bool, optional, tag="10")]
4943 pub enable_transcoding: ::core::option::Option<bool>,
4944 #[prost(message, optional, tag="6")]
4945 pub audio: ::core::option::Option<IngressAudioOptions>,
4946 #[prost(message, optional, tag="7")]
4947 pub video: ::core::option::Option<IngressVideoOptions>,
4948 #[prost(bool, optional, tag="11")]
4950 pub enabled: ::core::option::Option<bool>,
4951}
4952#[allow(clippy::derive_partial_eq_without_eq)]
4953#[derive(Clone, PartialEq, ::prost::Message)]
4954pub struct ListIngressRequest {
4955 #[prost(string, tag="1")]
4959 pub room_name: ::prost::alloc::string::String,
4960 #[prost(string, tag="2")]
4962 pub ingress_id: ::prost::alloc::string::String,
4963}
4964#[allow(clippy::derive_partial_eq_without_eq)]
4965#[derive(Clone, PartialEq, ::prost::Message)]
4966pub struct ListIngressResponse {
4967 #[prost(message, repeated, tag="1")]
4968 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
4969}
4970#[allow(clippy::derive_partial_eq_without_eq)]
4971#[derive(Clone, PartialEq, ::prost::Message)]
4972pub struct DeleteIngressRequest {
4973 #[prost(string, tag="1")]
4974 pub ingress_id: ::prost::alloc::string::String,
4975}
4976#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4977#[repr(i32)]
4978pub enum IngressInput {
4979 RtmpInput = 0,
4980 WhipInput = 1,
4981 UrlInput = 2,
4983}
4984impl IngressInput {
4985 pub fn as_str_name(&self) -> &'static str {
4990 match self {
4991 IngressInput::RtmpInput => "RTMP_INPUT",
4992 IngressInput::WhipInput => "WHIP_INPUT",
4993 IngressInput::UrlInput => "URL_INPUT",
4994 }
4995 }
4996 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4998 match value {
4999 "RTMP_INPUT" => Some(Self::RtmpInput),
5000 "WHIP_INPUT" => Some(Self::WhipInput),
5001 "URL_INPUT" => Some(Self::UrlInput),
5002 _ => None,
5003 }
5004 }
5005}
5006#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5007#[repr(i32)]
5008pub enum IngressAudioEncodingPreset {
5009 OpusStereo96kbps = 0,
5011 OpusMono64kbs = 1,
5013}
5014impl IngressAudioEncodingPreset {
5015 pub fn as_str_name(&self) -> &'static str {
5020 match self {
5021 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5022 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5023 }
5024 }
5025 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5027 match value {
5028 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5029 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5030 _ => None,
5031 }
5032 }
5033}
5034#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5035#[repr(i32)]
5036pub enum IngressVideoEncodingPreset {
5037 H264720p30fps3Layers = 0,
5039 H2641080p30fps3Layers = 1,
5041 H264540p25fps2Layers = 2,
5043 H264720p30fps1Layer = 3,
5045 H2641080p30fps1Layer = 4,
5047 H264720p30fps3LayersHighMotion = 5,
5049 H2641080p30fps3LayersHighMotion = 6,
5051 H264540p25fps2LayersHighMotion = 7,
5053 H264720p30fps1LayerHighMotion = 8,
5055 H2641080p30fps1LayerHighMotion = 9,
5057}
5058impl IngressVideoEncodingPreset {
5059 pub fn as_str_name(&self) -> &'static str {
5064 match self {
5065 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5066 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5067 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5068 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5069 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5070 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5071 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5072 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5073 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5074 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5075 }
5076 }
5077 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5079 match value {
5080 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5081 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5082 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5083 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5084 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5085 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5086 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5087 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5088 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5089 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5090 _ => None,
5091 }
5092 }
5093}
5094#[allow(clippy::derive_partial_eq_without_eq)]
5095#[derive(Clone, PartialEq, ::prost::Message)]
5096pub struct WebhookEvent {
5097 #[prost(string, tag="1")]
5101 pub event: ::prost::alloc::string::String,
5102 #[prost(message, optional, tag="2")]
5103 pub room: ::core::option::Option<Room>,
5104 #[prost(message, optional, tag="3")]
5106 pub participant: ::core::option::Option<ParticipantInfo>,
5107 #[prost(message, optional, tag="9")]
5109 pub egress_info: ::core::option::Option<EgressInfo>,
5110 #[prost(message, optional, tag="10")]
5112 pub ingress_info: ::core::option::Option<IngressInfo>,
5113 #[prost(message, optional, tag="8")]
5115 pub track: ::core::option::Option<TrackInfo>,
5116 #[prost(string, tag="6")]
5118 pub id: ::prost::alloc::string::String,
5119 #[prost(int64, tag="7")]
5121 pub created_at: i64,
5122 #[deprecated]
5123 #[prost(int32, tag="11")]
5124 pub num_dropped: i32,
5125}
5126#[allow(clippy::derive_partial_eq_without_eq)]
5128#[derive(Clone, PartialEq, ::prost::Message)]
5129pub struct SipStatus {
5130 #[prost(enumeration="SipStatusCode", tag="1")]
5131 pub code: i32,
5132 #[prost(string, tag="2")]
5133 pub status: ::prost::alloc::string::String,
5134}
5135#[allow(clippy::derive_partial_eq_without_eq)]
5136#[derive(Clone, PartialEq, ::prost::Message)]
5137pub struct CreateSipTrunkRequest {
5138 #[prost(string, repeated, tag="1")]
5141 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5142 #[prost(string, tag="2")]
5144 pub outbound_address: ::prost::alloc::string::String,
5145 #[prost(string, tag="3")]
5147 pub outbound_number: ::prost::alloc::string::String,
5148 #[deprecated]
5149 #[prost(string, repeated, tag="4")]
5150 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5151 #[prost(string, repeated, tag="9")]
5155 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5156 #[prost(string, tag="5")]
5159 pub inbound_username: ::prost::alloc::string::String,
5160 #[prost(string, tag="6")]
5161 pub inbound_password: ::prost::alloc::string::String,
5162 #[prost(string, tag="7")]
5163 pub outbound_username: ::prost::alloc::string::String,
5164 #[prost(string, tag="8")]
5165 pub outbound_password: ::prost::alloc::string::String,
5166 #[prost(string, tag="10")]
5168 pub name: ::prost::alloc::string::String,
5169 #[prost(string, tag="11")]
5171 pub metadata: ::prost::alloc::string::String,
5172}
5173#[allow(clippy::derive_partial_eq_without_eq)]
5174#[derive(Clone, PartialEq, ::prost::Message)]
5175pub struct ProviderInfo {
5176 #[prost(string, tag="1")]
5177 pub id: ::prost::alloc::string::String,
5178 #[prost(string, tag="2")]
5179 pub name: ::prost::alloc::string::String,
5180 #[prost(enumeration="ProviderType", tag="3")]
5181 pub r#type: i32,
5182 #[prost(bool, tag="4")]
5183 pub prevent_transfer: bool,
5184}
5185#[allow(clippy::derive_partial_eq_without_eq)]
5186#[derive(Clone, PartialEq, ::prost::Message)]
5187pub struct SipTrunkInfo {
5188 #[prost(string, tag="1")]
5189 pub sip_trunk_id: ::prost::alloc::string::String,
5190 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5191 pub kind: i32,
5192 #[prost(string, repeated, tag="2")]
5195 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5196 #[prost(string, tag="3")]
5198 pub outbound_address: ::prost::alloc::string::String,
5199 #[prost(string, tag="4")]
5201 pub outbound_number: ::prost::alloc::string::String,
5202 #[prost(enumeration="SipTransport", tag="13")]
5204 pub transport: i32,
5205 #[deprecated]
5206 #[prost(string, repeated, tag="5")]
5207 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5208 #[prost(string, repeated, tag="10")]
5212 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5213 #[prost(string, tag="6")]
5216 pub inbound_username: ::prost::alloc::string::String,
5217 #[prost(string, tag="7")]
5218 pub inbound_password: ::prost::alloc::string::String,
5219 #[prost(string, tag="8")]
5220 pub outbound_username: ::prost::alloc::string::String,
5221 #[prost(string, tag="9")]
5222 pub outbound_password: ::prost::alloc::string::String,
5223 #[prost(string, tag="11")]
5225 pub name: ::prost::alloc::string::String,
5226 #[prost(string, tag="12")]
5228 pub metadata: ::prost::alloc::string::String,
5229}
5230pub mod sip_trunk_info {
5232 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5233 #[repr(i32)]
5234 pub enum TrunkKind {
5235 TrunkLegacy = 0,
5236 TrunkInbound = 1,
5237 TrunkOutbound = 2,
5238 }
5239 impl TrunkKind {
5240 pub fn as_str_name(&self) -> &'static str {
5245 match self {
5246 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5247 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5248 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5249 }
5250 }
5251 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5253 match value {
5254 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5255 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5256 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5257 _ => None,
5258 }
5259 }
5260 }
5261}
5262#[allow(clippy::derive_partial_eq_without_eq)]
5263#[derive(Clone, PartialEq, ::prost::Message)]
5264pub struct CreateSipInboundTrunkRequest {
5265 #[prost(message, optional, tag="1")]
5267 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5268}
5269#[allow(clippy::derive_partial_eq_without_eq)]
5270#[derive(Clone, PartialEq, ::prost::Message)]
5271pub struct UpdateSipInboundTrunkRequest {
5272 #[prost(string, tag="1")]
5273 pub sip_trunk_id: ::prost::alloc::string::String,
5274 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5275 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5276}
5277pub mod update_sip_inbound_trunk_request {
5279 #[allow(clippy::derive_partial_eq_without_eq)]
5280#[derive(Clone, PartialEq, ::prost::Oneof)]
5281 pub enum Action {
5282 #[prost(message, tag="2")]
5283 Replace(super::SipInboundTrunkInfo),
5284 #[prost(message, tag="3")]
5285 Update(super::SipInboundTrunkUpdate),
5286 }
5287}
5288#[allow(clippy::derive_partial_eq_without_eq)]
5289#[derive(Clone, PartialEq, ::prost::Message)]
5290pub struct SipInboundTrunkInfo {
5291 #[prost(string, tag="1")]
5292 pub sip_trunk_id: ::prost::alloc::string::String,
5293 #[prost(string, tag="2")]
5295 pub name: ::prost::alloc::string::String,
5296 #[prost(string, tag="3")]
5298 pub metadata: ::prost::alloc::string::String,
5299 #[prost(string, repeated, tag="4")]
5302 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5303 #[prost(string, repeated, tag="5")]
5306 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5307 #[prost(string, repeated, tag="6")]
5310 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5311 #[prost(string, tag="7")]
5314 pub auth_username: ::prost::alloc::string::String,
5315 #[prost(string, tag="8")]
5316 pub auth_password: ::prost::alloc::string::String,
5317 #[prost(map="string, string", tag="9")]
5319 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5320 #[prost(map="string, string", tag="10")]
5322 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5323 #[prost(map="string, string", tag="14")]
5326 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5327 #[prost(enumeration="SipHeaderOptions", tag="15")]
5334 pub include_headers: i32,
5335 #[prost(message, optional, tag="11")]
5337 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5338 #[prost(message, optional, tag="12")]
5340 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5341 #[prost(bool, tag="13")]
5342 pub krisp_enabled: bool,
5343 #[prost(enumeration="SipMediaEncryption", tag="16")]
5344 pub media_encryption: i32,
5345}
5346#[allow(clippy::derive_partial_eq_without_eq)]
5347#[derive(Clone, PartialEq, ::prost::Message)]
5348pub struct SipInboundTrunkUpdate {
5349 #[prost(message, optional, tag="1")]
5350 pub numbers: ::core::option::Option<ListUpdate>,
5351 #[prost(message, optional, tag="2")]
5352 pub allowed_addresses: ::core::option::Option<ListUpdate>,
5353 #[prost(message, optional, tag="3")]
5354 pub allowed_numbers: ::core::option::Option<ListUpdate>,
5355 #[prost(string, optional, tag="4")]
5356 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5357 #[prost(string, optional, tag="5")]
5358 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5359 #[prost(string, optional, tag="6")]
5360 pub name: ::core::option::Option<::prost::alloc::string::String>,
5361 #[prost(string, optional, tag="7")]
5362 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5363 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5364 pub media_encryption: ::core::option::Option<i32>,
5365}
5366#[allow(clippy::derive_partial_eq_without_eq)]
5367#[derive(Clone, PartialEq, ::prost::Message)]
5368pub struct CreateSipOutboundTrunkRequest {
5369 #[prost(message, optional, tag="1")]
5371 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5372}
5373#[allow(clippy::derive_partial_eq_without_eq)]
5374#[derive(Clone, PartialEq, ::prost::Message)]
5375pub struct UpdateSipOutboundTrunkRequest {
5376 #[prost(string, tag="1")]
5377 pub sip_trunk_id: ::prost::alloc::string::String,
5378 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
5379 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
5380}
5381pub mod update_sip_outbound_trunk_request {
5383 #[allow(clippy::derive_partial_eq_without_eq)]
5384#[derive(Clone, PartialEq, ::prost::Oneof)]
5385 pub enum Action {
5386 #[prost(message, tag="2")]
5387 Replace(super::SipOutboundTrunkInfo),
5388 #[prost(message, tag="3")]
5389 Update(super::SipOutboundTrunkUpdate),
5390 }
5391}
5392#[allow(clippy::derive_partial_eq_without_eq)]
5393#[derive(Clone, PartialEq, ::prost::Message)]
5394pub struct SipOutboundTrunkInfo {
5395 #[prost(string, tag="1")]
5396 pub sip_trunk_id: ::prost::alloc::string::String,
5397 #[prost(string, tag="2")]
5399 pub name: ::prost::alloc::string::String,
5400 #[prost(string, tag="3")]
5402 pub metadata: ::prost::alloc::string::String,
5403 #[prost(string, tag="4")]
5406 pub address: ::prost::alloc::string::String,
5407 #[prost(string, tag="14")]
5409 pub destination_country: ::prost::alloc::string::String,
5410 #[prost(enumeration="SipTransport", tag="5")]
5412 pub transport: i32,
5413 #[prost(string, repeated, tag="6")]
5415 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5416 #[prost(string, tag="7")]
5419 pub auth_username: ::prost::alloc::string::String,
5420 #[prost(string, tag="8")]
5421 pub auth_password: ::prost::alloc::string::String,
5422 #[prost(map="string, string", tag="9")]
5425 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5426 #[prost(map="string, string", tag="10")]
5429 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5430 #[prost(map="string, string", tag="11")]
5433 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5434 #[prost(enumeration="SipHeaderOptions", tag="12")]
5441 pub include_headers: i32,
5442 #[prost(enumeration="SipMediaEncryption", tag="13")]
5443 pub media_encryption: i32,
5444}
5445#[allow(clippy::derive_partial_eq_without_eq)]
5446#[derive(Clone, PartialEq, ::prost::Message)]
5447pub struct SipOutboundTrunkUpdate {
5448 #[prost(string, optional, tag="1")]
5449 pub address: ::core::option::Option<::prost::alloc::string::String>,
5450 #[prost(enumeration="SipTransport", optional, tag="2")]
5451 pub transport: ::core::option::Option<i32>,
5452 #[prost(string, optional, tag="9")]
5453 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
5454 #[prost(message, optional, tag="3")]
5455 pub numbers: ::core::option::Option<ListUpdate>,
5456 #[prost(string, optional, tag="4")]
5457 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5458 #[prost(string, optional, tag="5")]
5459 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5460 #[prost(string, optional, tag="6")]
5461 pub name: ::core::option::Option<::prost::alloc::string::String>,
5462 #[prost(string, optional, tag="7")]
5463 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5464 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5465 pub media_encryption: ::core::option::Option<i32>,
5466}
5467#[allow(clippy::derive_partial_eq_without_eq)]
5468#[derive(Clone, PartialEq, ::prost::Message)]
5469pub struct GetSipInboundTrunkRequest {
5470 #[prost(string, tag="1")]
5471 pub sip_trunk_id: ::prost::alloc::string::String,
5472}
5473#[allow(clippy::derive_partial_eq_without_eq)]
5474#[derive(Clone, PartialEq, ::prost::Message)]
5475pub struct GetSipInboundTrunkResponse {
5476 #[prost(message, optional, tag="1")]
5477 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5478}
5479#[allow(clippy::derive_partial_eq_without_eq)]
5480#[derive(Clone, PartialEq, ::prost::Message)]
5481pub struct GetSipOutboundTrunkRequest {
5482 #[prost(string, tag="1")]
5483 pub sip_trunk_id: ::prost::alloc::string::String,
5484}
5485#[allow(clippy::derive_partial_eq_without_eq)]
5486#[derive(Clone, PartialEq, ::prost::Message)]
5487pub struct GetSipOutboundTrunkResponse {
5488 #[prost(message, optional, tag="1")]
5489 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5490}
5491#[allow(clippy::derive_partial_eq_without_eq)]
5492#[derive(Clone, PartialEq, ::prost::Message)]
5493pub struct ListSipTrunkRequest {
5494 #[prost(message, optional, tag="1")]
5495 pub page: ::core::option::Option<Pagination>,
5496}
5497#[allow(clippy::derive_partial_eq_without_eq)]
5498#[derive(Clone, PartialEq, ::prost::Message)]
5499pub struct ListSipTrunkResponse {
5500 #[prost(message, repeated, tag="1")]
5501 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
5502}
5503#[allow(clippy::derive_partial_eq_without_eq)]
5505#[derive(Clone, PartialEq, ::prost::Message)]
5506pub struct ListSipInboundTrunkRequest {
5507 #[prost(message, optional, tag="3")]
5508 pub page: ::core::option::Option<Pagination>,
5509 #[prost(string, repeated, tag="1")]
5512 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5513 #[prost(string, repeated, tag="2")]
5515 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5516}
5517#[allow(clippy::derive_partial_eq_without_eq)]
5518#[derive(Clone, PartialEq, ::prost::Message)]
5519pub struct ListSipInboundTrunkResponse {
5520 #[prost(message, repeated, tag="1")]
5521 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
5522}
5523#[allow(clippy::derive_partial_eq_without_eq)]
5525#[derive(Clone, PartialEq, ::prost::Message)]
5526pub struct ListSipOutboundTrunkRequest {
5527 #[prost(message, optional, tag="3")]
5528 pub page: ::core::option::Option<Pagination>,
5529 #[prost(string, repeated, tag="1")]
5532 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5533 #[prost(string, repeated, tag="2")]
5535 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5536}
5537#[allow(clippy::derive_partial_eq_without_eq)]
5538#[derive(Clone, PartialEq, ::prost::Message)]
5539pub struct ListSipOutboundTrunkResponse {
5540 #[prost(message, repeated, tag="1")]
5541 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
5542}
5543#[allow(clippy::derive_partial_eq_without_eq)]
5544#[derive(Clone, PartialEq, ::prost::Message)]
5545pub struct DeleteSipTrunkRequest {
5546 #[prost(string, tag="1")]
5547 pub sip_trunk_id: ::prost::alloc::string::String,
5548}
5549#[allow(clippy::derive_partial_eq_without_eq)]
5550#[derive(Clone, PartialEq, ::prost::Message)]
5551pub struct SipDispatchRuleDirect {
5552 #[prost(string, tag="1")]
5554 pub room_name: ::prost::alloc::string::String,
5555 #[prost(string, tag="2")]
5557 pub pin: ::prost::alloc::string::String,
5558}
5559#[allow(clippy::derive_partial_eq_without_eq)]
5560#[derive(Clone, PartialEq, ::prost::Message)]
5561pub struct SipDispatchRuleIndividual {
5562 #[prost(string, tag="1")]
5564 pub room_prefix: ::prost::alloc::string::String,
5565 #[prost(string, tag="2")]
5567 pub pin: ::prost::alloc::string::String,
5568}
5569#[allow(clippy::derive_partial_eq_without_eq)]
5570#[derive(Clone, PartialEq, ::prost::Message)]
5571pub struct SipDispatchRuleCallee {
5572 #[prost(string, tag="1")]
5574 pub room_prefix: ::prost::alloc::string::String,
5575 #[prost(string, tag="2")]
5577 pub pin: ::prost::alloc::string::String,
5578 #[prost(bool, tag="3")]
5580 pub randomize: bool,
5581}
5582#[allow(clippy::derive_partial_eq_without_eq)]
5583#[derive(Clone, PartialEq, ::prost::Message)]
5584pub struct SipDispatchRule {
5585 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
5586 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
5587}
5588pub mod sip_dispatch_rule {
5590 #[allow(clippy::derive_partial_eq_without_eq)]
5591#[derive(Clone, PartialEq, ::prost::Oneof)]
5592 pub enum Rule {
5593 #[prost(message, tag="1")]
5597 DispatchRuleDirect(super::SipDispatchRuleDirect),
5598 #[prost(message, tag="2")]
5600 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
5601 #[prost(message, tag="3")]
5603 DispatchRuleCallee(super::SipDispatchRuleCallee),
5604 }
5605}
5606#[allow(clippy::derive_partial_eq_without_eq)]
5607#[derive(Clone, PartialEq, ::prost::Message)]
5608pub struct CreateSipDispatchRuleRequest {
5609 #[prost(message, optional, tag="10")]
5611 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
5612 #[deprecated]
5613 #[prost(message, optional, tag="1")]
5614 pub rule: ::core::option::Option<SipDispatchRule>,
5615 #[deprecated]
5618 #[prost(string, repeated, tag="2")]
5619 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5620 #[deprecated]
5623 #[prost(bool, tag="3")]
5624 pub hide_phone_number: bool,
5625 #[deprecated]
5627 #[prost(string, repeated, tag="6")]
5628 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5629 #[deprecated]
5631 #[prost(string, tag="4")]
5632 pub name: ::prost::alloc::string::String,
5633 #[deprecated]
5636 #[prost(string, tag="5")]
5637 pub metadata: ::prost::alloc::string::String,
5638 #[prost(map="string, string", tag="7")]
5641 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5642 #[deprecated]
5644 #[prost(string, tag="8")]
5645 pub room_preset: ::prost::alloc::string::String,
5646 #[deprecated]
5648 #[prost(message, optional, tag="9")]
5649 pub room_config: ::core::option::Option<RoomConfiguration>,
5650}
5651#[allow(clippy::derive_partial_eq_without_eq)]
5652#[derive(Clone, PartialEq, ::prost::Message)]
5653pub struct UpdateSipDispatchRuleRequest {
5654 #[prost(string, tag="1")]
5655 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5656 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
5657 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
5658}
5659pub mod update_sip_dispatch_rule_request {
5661 #[allow(clippy::derive_partial_eq_without_eq)]
5662#[derive(Clone, PartialEq, ::prost::Oneof)]
5663 pub enum Action {
5664 #[prost(message, tag="2")]
5665 Replace(super::SipDispatchRuleInfo),
5666 #[prost(message, tag="3")]
5667 Update(super::SipDispatchRuleUpdate),
5668 }
5669}
5670#[allow(clippy::derive_partial_eq_without_eq)]
5671#[derive(Clone, PartialEq, ::prost::Message)]
5672pub struct SipDispatchRuleInfo {
5673 #[prost(string, tag="1")]
5674 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5675 #[prost(message, optional, tag="2")]
5676 pub rule: ::core::option::Option<SipDispatchRule>,
5677 #[prost(string, repeated, tag="3")]
5678 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5679 #[prost(bool, tag="4")]
5680 pub hide_phone_number: bool,
5681 #[prost(string, repeated, tag="7")]
5683 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5684 #[prost(string, tag="5")]
5686 pub name: ::prost::alloc::string::String,
5687 #[prost(string, tag="6")]
5690 pub metadata: ::prost::alloc::string::String,
5691 #[prost(map="string, string", tag="8")]
5694 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5695 #[prost(string, tag="9")]
5697 pub room_preset: ::prost::alloc::string::String,
5698 #[prost(message, optional, tag="10")]
5700 pub room_config: ::core::option::Option<RoomConfiguration>,
5701 #[prost(bool, tag="11")]
5702 pub krisp_enabled: bool,
5703 #[prost(enumeration="SipMediaEncryption", tag="12")]
5705 pub media_encryption: i32,
5706}
5707#[allow(clippy::derive_partial_eq_without_eq)]
5708#[derive(Clone, PartialEq, ::prost::Message)]
5709pub struct SipDispatchRuleUpdate {
5710 #[prost(message, optional, tag="1")]
5711 pub trunk_ids: ::core::option::Option<ListUpdate>,
5712 #[prost(message, optional, tag="2")]
5713 pub rule: ::core::option::Option<SipDispatchRule>,
5714 #[prost(string, optional, tag="3")]
5715 pub name: ::core::option::Option<::prost::alloc::string::String>,
5716 #[prost(string, optional, tag="4")]
5717 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5718 #[prost(map="string, string", tag="5")]
5719 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5720 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
5721 pub media_encryption: ::core::option::Option<i32>,
5722}
5723#[allow(clippy::derive_partial_eq_without_eq)]
5725#[derive(Clone, PartialEq, ::prost::Message)]
5726pub struct ListSipDispatchRuleRequest {
5727 #[prost(message, optional, tag="3")]
5728 pub page: ::core::option::Option<Pagination>,
5729 #[prost(string, repeated, tag="1")]
5732 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5733 #[prost(string, repeated, tag="2")]
5735 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5736}
5737#[allow(clippy::derive_partial_eq_without_eq)]
5738#[derive(Clone, PartialEq, ::prost::Message)]
5739pub struct ListSipDispatchRuleResponse {
5740 #[prost(message, repeated, tag="1")]
5741 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
5742}
5743#[allow(clippy::derive_partial_eq_without_eq)]
5744#[derive(Clone, PartialEq, ::prost::Message)]
5745pub struct DeleteSipDispatchRuleRequest {
5746 #[prost(string, tag="1")]
5747 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5748}
5749#[allow(clippy::derive_partial_eq_without_eq)]
5750#[derive(Clone, PartialEq, ::prost::Message)]
5751pub struct SipOutboundConfig {
5752 #[prost(string, tag="1")]
5754 pub hostname: ::prost::alloc::string::String,
5755 #[prost(string, tag="7")]
5757 pub destination_country: ::prost::alloc::string::String,
5758 #[prost(enumeration="SipTransport", tag="2")]
5760 pub transport: i32,
5761 #[prost(string, tag="3")]
5764 pub auth_username: ::prost::alloc::string::String,
5765 #[prost(string, tag="4")]
5766 pub auth_password: ::prost::alloc::string::String,
5767 #[prost(map="string, string", tag="5")]
5770 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5771 #[prost(map="string, string", tag="6")]
5774 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5775}
5776#[allow(clippy::derive_partial_eq_without_eq)]
5779#[derive(Clone, PartialEq, ::prost::Message)]
5780pub struct CreateSipParticipantRequest {
5781 #[prost(string, tag="1")]
5783 pub sip_trunk_id: ::prost::alloc::string::String,
5784 #[prost(message, optional, tag="20")]
5785 pub trunk: ::core::option::Option<SipOutboundConfig>,
5786 #[prost(string, tag="2")]
5788 pub sip_call_to: ::prost::alloc::string::String,
5789 #[prost(string, tag="15")]
5791 pub sip_number: ::prost::alloc::string::String,
5792 #[prost(string, tag="3")]
5794 pub room_name: ::prost::alloc::string::String,
5795 #[prost(string, tag="4")]
5797 pub participant_identity: ::prost::alloc::string::String,
5798 #[prost(string, tag="7")]
5800 pub participant_name: ::prost::alloc::string::String,
5801 #[prost(string, tag="8")]
5803 pub participant_metadata: ::prost::alloc::string::String,
5804 #[prost(map="string, string", tag="9")]
5806 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5807 #[prost(string, tag="5")]
5810 pub dtmf: ::prost::alloc::string::String,
5811 #[deprecated]
5813 #[prost(bool, tag="6")]
5814 pub play_ringtone: bool,
5815 #[prost(bool, tag="13")]
5816 pub play_dialtone: bool,
5817 #[prost(bool, tag="10")]
5820 pub hide_phone_number: bool,
5821 #[prost(map="string, string", tag="16")]
5823 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5824 #[prost(enumeration="SipHeaderOptions", tag="17")]
5831 pub include_headers: i32,
5832 #[prost(message, optional, tag="11")]
5834 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5835 #[prost(message, optional, tag="12")]
5837 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5838 #[prost(bool, tag="14")]
5840 pub krisp_enabled: bool,
5841 #[prost(enumeration="SipMediaEncryption", tag="18")]
5842 pub media_encryption: i32,
5843 #[prost(bool, tag="19")]
5845 pub wait_until_answered: bool,
5846 #[prost(string, optional, tag="21")]
5853 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
5854 #[prost(message, optional, tag="22")]
5856 pub destination: ::core::option::Option<Destination>,
5857}
5858#[allow(clippy::derive_partial_eq_without_eq)]
5859#[derive(Clone, PartialEq, ::prost::Message)]
5860pub struct SipParticipantInfo {
5861 #[prost(string, tag="1")]
5862 pub participant_id: ::prost::alloc::string::String,
5863 #[prost(string, tag="2")]
5864 pub participant_identity: ::prost::alloc::string::String,
5865 #[prost(string, tag="3")]
5866 pub room_name: ::prost::alloc::string::String,
5867 #[prost(string, tag="4")]
5868 pub sip_call_id: ::prost::alloc::string::String,
5869}
5870#[allow(clippy::derive_partial_eq_without_eq)]
5871#[derive(Clone, PartialEq, ::prost::Message)]
5872pub struct TransferSipParticipantRequest {
5873 #[prost(string, tag="1")]
5874 pub participant_identity: ::prost::alloc::string::String,
5875 #[prost(string, tag="2")]
5876 pub room_name: ::prost::alloc::string::String,
5877 #[prost(string, tag="3")]
5878 pub transfer_to: ::prost::alloc::string::String,
5879 #[prost(bool, tag="4")]
5881 pub play_dialtone: bool,
5882 #[prost(map="string, string", tag="5")]
5884 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5885 #[prost(message, optional, tag="6")]
5887 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5888}
5889#[allow(clippy::derive_partial_eq_without_eq)]
5890#[derive(Clone, PartialEq, ::prost::Message)]
5891pub struct SipCallInfo {
5892 #[prost(string, tag="1")]
5893 pub call_id: ::prost::alloc::string::String,
5894 #[prost(string, tag="2")]
5895 pub trunk_id: ::prost::alloc::string::String,
5896 #[prost(string, tag="16")]
5897 pub dispatch_rule_id: ::prost::alloc::string::String,
5898 #[prost(string, tag="17")]
5899 pub region: ::prost::alloc::string::String,
5900 #[prost(string, tag="3")]
5901 pub room_name: ::prost::alloc::string::String,
5902 #[prost(string, tag="4")]
5904 pub room_id: ::prost::alloc::string::String,
5905 #[prost(string, tag="5")]
5906 pub participant_identity: ::prost::alloc::string::String,
5907 #[prost(map="string, string", tag="18")]
5908 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5909 #[prost(message, optional, tag="6")]
5910 pub from_uri: ::core::option::Option<SipUri>,
5911 #[prost(message, optional, tag="7")]
5912 pub to_uri: ::core::option::Option<SipUri>,
5913 #[deprecated]
5914 #[prost(int64, tag="9")]
5915 pub created_at: i64,
5916 #[deprecated]
5917 #[prost(int64, tag="10")]
5918 pub started_at: i64,
5919 #[deprecated]
5920 #[prost(int64, tag="11")]
5921 pub ended_at: i64,
5922 #[prost(enumeration="SipFeature", repeated, tag="14")]
5923 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
5924 #[prost(enumeration="SipCallDirection", tag="15")]
5925 pub call_direction: i32,
5926 #[prost(enumeration="SipCallStatus", tag="8")]
5927 pub call_status: i32,
5928 #[prost(int64, tag="22")]
5929 pub created_at_ns: i64,
5930 #[prost(int64, tag="23")]
5931 pub started_at_ns: i64,
5932 #[prost(int64, tag="24")]
5933 pub ended_at_ns: i64,
5934 #[prost(enumeration="DisconnectReason", tag="12")]
5935 pub disconnect_reason: i32,
5936 #[prost(string, tag="13")]
5937 pub error: ::prost::alloc::string::String,
5938 #[prost(message, optional, tag="19")]
5939 pub call_status_code: ::core::option::Option<SipStatus>,
5940 #[prost(string, tag="20")]
5941 pub audio_codec: ::prost::alloc::string::String,
5942 #[prost(string, tag="21")]
5943 pub media_encryption: ::prost::alloc::string::String,
5944 #[prost(string, tag="25")]
5945 pub pcap_file_link: ::prost::alloc::string::String,
5946 #[prost(message, repeated, tag="26")]
5947 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
5948 #[prost(message, optional, tag="27")]
5949 pub provider_info: ::core::option::Option<ProviderInfo>,
5950}
5951#[allow(clippy::derive_partial_eq_without_eq)]
5952#[derive(Clone, PartialEq, ::prost::Message)]
5953pub struct SipTransferInfo {
5954 #[prost(string, tag="1")]
5955 pub transfer_id: ::prost::alloc::string::String,
5956 #[prost(string, tag="2")]
5957 pub call_id: ::prost::alloc::string::String,
5958 #[prost(string, tag="3")]
5959 pub transfer_to: ::prost::alloc::string::String,
5960 #[prost(int64, tag="4")]
5961 pub transfer_initiated_at_ns: i64,
5962 #[prost(int64, tag="5")]
5963 pub transfer_completed_at_ns: i64,
5964 #[prost(enumeration="SipTransferStatus", tag="6")]
5965 pub transfer_status: i32,
5966 #[prost(string, tag="7")]
5967 pub error: ::prost::alloc::string::String,
5968 #[prost(message, optional, tag="8")]
5969 pub transfer_status_code: ::core::option::Option<SipStatus>,
5970}
5971#[allow(clippy::derive_partial_eq_without_eq)]
5972#[derive(Clone, PartialEq, ::prost::Message)]
5973pub struct SipUri {
5974 #[prost(string, tag="1")]
5975 pub user: ::prost::alloc::string::String,
5976 #[prost(string, tag="2")]
5977 pub host: ::prost::alloc::string::String,
5978 #[prost(string, tag="3")]
5979 pub ip: ::prost::alloc::string::String,
5980 #[prost(uint32, tag="4")]
5981 pub port: u32,
5982 #[prost(enumeration="SipTransport", tag="5")]
5983 pub transport: i32,
5984}
5985#[allow(clippy::derive_partial_eq_without_eq)]
5986#[derive(Clone, PartialEq, ::prost::Message)]
5987pub struct Destination {
5988 #[prost(string, tag="1")]
5989 pub city: ::prost::alloc::string::String,
5990 #[prost(string, tag="2")]
5991 pub country: ::prost::alloc::string::String,
5992 #[prost(string, tag="3")]
5993 pub region: ::prost::alloc::string::String,
5994}
5995#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5996#[repr(i32)]
5997pub enum SipStatusCode {
5998 SipStatusUnknown = 0,
5999 SipStatusTrying = 100,
6000 SipStatusRinging = 180,
6001 SipStatusCallIsForwarded = 181,
6002 SipStatusQueued = 182,
6003 SipStatusSessionProgress = 183,
6004 SipStatusEarlyDialogTerminated = 199,
6005 SipStatusOk = 200,
6006 SipStatusAccepted = 202,
6007 SipStatusNoNotification = 204,
6008 SipStatusMultipleChoices = 300,
6009 SipStatusMovedPermanently = 301,
6010 SipStatusMovedTemporarily = 302,
6011 SipStatusUseProxy = 305,
6012 SipStatusAlternativeService = 380,
6013 SipStatusBadRequest = 400,
6014 SipStatusUnauthorized = 401,
6015 SipStatusPaymentRequired = 402,
6016 SipStatusForbidden = 403,
6017 SipStatusNotfound = 404,
6018 SipStatusMethodNotAllowed = 405,
6019 SipStatusNotAcceptable = 406,
6020 SipStatusProxyAuthRequired = 407,
6021 SipStatusRequestTimeout = 408,
6022 SipStatusConflict = 409,
6023 SipStatusGone = 410,
6024 SipStatusLengthRequired = 411,
6025 SipStatusConditionalRequestFailed = 412,
6026 SipStatusRequestEntityTooLarge = 413,
6027 SipStatusRequestUriTooLong = 414,
6028 SipStatusUnsupportedMediaType = 415,
6029 SipStatusRequestedRangeNotSatisfiable = 416,
6030 SipStatusUnknownResourcePriority = 417,
6031 SipStatusBadExtension = 420,
6032 SipStatusExtensionRequired = 421,
6033 SipStatusSessionIntervalTooSmall = 422,
6034 SipStatusIntervalTooBrief = 423,
6035 SipStatusBadLocationInformation = 424,
6036 SipStatusBadAlertMessage = 425,
6037 SipStatusUseIdentityHeader = 428,
6038 SipStatusProvideReferrerIdentity = 429,
6039 SipStatusFlowFailed = 430,
6040 SipStatusAnonymityDisallowed = 433,
6041 SipStatusBadIdentityInfo = 436,
6042 SipStatusUnsupportedCertificate = 437,
6043 SipStatusInvalidIdentityHeader = 438,
6044 SipStatusFirstHopLacksOutboundSupport = 439,
6045 SipStatusMaxBreadthExceeded = 440,
6046 SipStatusBadInfoPackage = 469,
6047 SipStatusConsentNeeded = 470,
6048 SipStatusTemporarilyUnavailable = 480,
6049 SipStatusCallTransactionDoesNotExists = 481,
6050 SipStatusLoopDetected = 482,
6051 SipStatusTooManyHops = 483,
6052 SipStatusAddressIncomplete = 484,
6053 SipStatusAmbiguous = 485,
6054 SipStatusBusyHere = 486,
6055 SipStatusRequestTerminated = 487,
6056 SipStatusNotAcceptableHere = 488,
6057 SipStatusBadEvent = 489,
6058 SipStatusRequestPending = 491,
6059 SipStatusUndecipherable = 493,
6060 SipStatusSecurityAgreementRequired = 494,
6061 SipStatusInternalServerError = 500,
6062 SipStatusNotImplemented = 501,
6063 SipStatusBadGateway = 502,
6064 SipStatusServiceUnavailable = 503,
6065 SipStatusGatewayTimeout = 504,
6066 SipStatusVersionNotSupported = 505,
6067 SipStatusMessageTooLarge = 513,
6068 SipStatusGlobalBusyEverywhere = 600,
6069 SipStatusGlobalDecline = 603,
6070 SipStatusGlobalDoesNotExistAnywhere = 604,
6071 SipStatusGlobalNotAcceptable = 606,
6072 SipStatusGlobalUnwanted = 607,
6073 SipStatusGlobalRejected = 608,
6074}
6075impl SipStatusCode {
6076 pub fn as_str_name(&self) -> &'static str {
6081 match self {
6082 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6083 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6084 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6085 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6086 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6087 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6088 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6089 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6090 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6091 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6092 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6093 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6094 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6095 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6096 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6097 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6098 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6099 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6100 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6101 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6102 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6103 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6104 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6105 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6106 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6107 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6108 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6109 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6110 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6111 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6112 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6113 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6114 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6115 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6116 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6117 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6118 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6119 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6120 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6121 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6122 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6123 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6124 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6125 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6126 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6127 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6128 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6129 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6130 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6131 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6132 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6133 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6134 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6135 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6136 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6137 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6138 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6139 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6140 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6141 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6142 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6143 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6144 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6145 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6146 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6147 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6148 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6149 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6150 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6151 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6152 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6153 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6154 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6155 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6156 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6157 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6158 }
6159 }
6160 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6162 match value {
6163 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6164 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6165 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6166 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6167 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6168 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6169 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6170 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6171 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6172 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6173 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6174 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6175 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6176 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6177 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6178 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6179 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6180 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6181 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6182 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6183 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6184 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6185 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6186 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6187 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6188 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6189 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6190 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6191 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6192 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6193 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6194 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6195 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6196 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6197 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6198 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6199 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6200 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6201 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6202 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6203 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6204 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6205 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6206 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6207 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6208 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6209 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6210 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6211 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6212 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6213 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6214 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6215 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6216 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6217 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6218 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6219 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6220 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
6221 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
6222 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
6223 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
6224 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
6225 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
6226 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
6227 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
6228 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
6229 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6230 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6231 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6232 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6233 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6234 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6235 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6236 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6237 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
6238 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
6239 _ => None,
6240 }
6241 }
6242}
6243#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6244#[repr(i32)]
6245pub enum SipTransport {
6246 Auto = 0,
6247 Udp = 1,
6248 Tcp = 2,
6249 Tls = 3,
6250}
6251impl SipTransport {
6252 pub fn as_str_name(&self) -> &'static str {
6257 match self {
6258 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
6259 SipTransport::Udp => "SIP_TRANSPORT_UDP",
6260 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
6261 SipTransport::Tls => "SIP_TRANSPORT_TLS",
6262 }
6263 }
6264 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6266 match value {
6267 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
6268 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
6269 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
6270 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
6271 _ => None,
6272 }
6273 }
6274}
6275#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6276#[repr(i32)]
6277pub enum SipHeaderOptions {
6278 SipNoHeaders = 0,
6280 SipXHeaders = 1,
6282 SipAllHeaders = 2,
6284}
6285impl SipHeaderOptions {
6286 pub fn as_str_name(&self) -> &'static str {
6291 match self {
6292 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
6293 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
6294 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
6295 }
6296 }
6297 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6299 match value {
6300 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
6301 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
6302 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
6303 _ => None,
6304 }
6305 }
6306}
6307#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6308#[repr(i32)]
6309pub enum SipMediaEncryption {
6310 SipMediaEncryptDisable = 0,
6312 SipMediaEncryptAllow = 1,
6314 SipMediaEncryptRequire = 2,
6316}
6317impl SipMediaEncryption {
6318 pub fn as_str_name(&self) -> &'static str {
6323 match self {
6324 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
6325 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
6326 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
6327 }
6328 }
6329 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6331 match value {
6332 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
6333 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
6334 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
6335 _ => None,
6336 }
6337 }
6338}
6339#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6340#[repr(i32)]
6341pub enum ProviderType {
6342 Unknown = 0,
6343 Internal = 1,
6345 External = 2,
6347}
6348impl ProviderType {
6349 pub fn as_str_name(&self) -> &'static str {
6354 match self {
6355 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
6356 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
6357 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
6358 }
6359 }
6360 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6362 match value {
6363 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
6364 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
6365 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
6366 _ => None,
6367 }
6368 }
6369}
6370#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6371#[repr(i32)]
6372pub enum SipCallStatus {
6373 ScsCallIncoming = 0,
6375 ScsParticipantJoined = 1,
6377 ScsActive = 2,
6379 ScsDisconnected = 3,
6381 ScsError = 4,
6383}
6384impl SipCallStatus {
6385 pub fn as_str_name(&self) -> &'static str {
6390 match self {
6391 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
6392 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
6393 SipCallStatus::ScsActive => "SCS_ACTIVE",
6394 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
6395 SipCallStatus::ScsError => "SCS_ERROR",
6396 }
6397 }
6398 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6400 match value {
6401 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
6402 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
6403 "SCS_ACTIVE" => Some(Self::ScsActive),
6404 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
6405 "SCS_ERROR" => Some(Self::ScsError),
6406 _ => None,
6407 }
6408 }
6409}
6410#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6411#[repr(i32)]
6412pub enum SipTransferStatus {
6413 StsTransferOngoing = 0,
6414 StsTransferFailed = 1,
6415 StsTransferSuccessful = 2,
6416}
6417impl SipTransferStatus {
6418 pub fn as_str_name(&self) -> &'static str {
6423 match self {
6424 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
6425 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
6426 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
6427 }
6428 }
6429 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6431 match value {
6432 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
6433 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
6434 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
6435 _ => None,
6436 }
6437 }
6438}
6439#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6440#[repr(i32)]
6441pub enum SipFeature {
6442 None = 0,
6443 KrispEnabled = 1,
6444}
6445impl SipFeature {
6446 pub fn as_str_name(&self) -> &'static str {
6451 match self {
6452 SipFeature::None => "NONE",
6453 SipFeature::KrispEnabled => "KRISP_ENABLED",
6454 }
6455 }
6456 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6458 match value {
6459 "NONE" => Some(Self::None),
6460 "KRISP_ENABLED" => Some(Self::KrispEnabled),
6461 _ => None,
6462 }
6463 }
6464}
6465#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6466#[repr(i32)]
6467pub enum SipCallDirection {
6468 ScdUnknown = 0,
6469 ScdInbound = 1,
6470 ScdOutbound = 2,
6471}
6472impl SipCallDirection {
6473 pub fn as_str_name(&self) -> &'static str {
6478 match self {
6479 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
6480 SipCallDirection::ScdInbound => "SCD_INBOUND",
6481 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
6482 }
6483 }
6484 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6486 match value {
6487 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
6488 "SCD_INBOUND" => Some(Self::ScdInbound),
6489 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
6490 _ => None,
6491 }
6492 }
6493}
6494#[allow(clippy::derive_partial_eq_without_eq)]
6495#[derive(Clone, PartialEq, ::prost::Message)]
6496pub struct DialWhatsAppCallRequest {
6497 #[prost(string, tag="1")]
6499 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6500 #[prost(string, tag="2")]
6502 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
6503 #[prost(string, tag="3")]
6505 pub whatsapp_api_key: ::prost::alloc::string::String,
6506 #[prost(string, tag="12")]
6508 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6509 #[prost(string, tag="4")]
6511 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6512 #[prost(string, tag="5")]
6514 pub room_name: ::prost::alloc::string::String,
6515 #[prost(message, repeated, tag="6")]
6517 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6518 #[prost(string, tag="7")]
6520 pub participant_identity: ::prost::alloc::string::String,
6521 #[prost(string, tag="8")]
6523 pub participant_name: ::prost::alloc::string::String,
6524 #[prost(string, tag="9")]
6526 pub participant_metadata: ::prost::alloc::string::String,
6527 #[prost(map="string, string", tag="10")]
6529 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6530 #[prost(string, tag="11")]
6534 pub destination_country: ::prost::alloc::string::String,
6535}
6536#[allow(clippy::derive_partial_eq_without_eq)]
6537#[derive(Clone, PartialEq, ::prost::Message)]
6538pub struct DialWhatsAppCallResponse {
6539 #[prost(string, tag="1")]
6541 pub whatsapp_call_id: ::prost::alloc::string::String,
6542 #[prost(string, tag="2")]
6544 pub room_name: ::prost::alloc::string::String,
6545}
6546#[allow(clippy::derive_partial_eq_without_eq)]
6547#[derive(Clone, PartialEq, ::prost::Message)]
6548pub struct DisconnectWhatsAppCallRequest {
6549 #[prost(string, tag="1")]
6551 pub whatsapp_call_id: ::prost::alloc::string::String,
6552 #[prost(string, tag="2")]
6554 pub whatsapp_api_key: ::prost::alloc::string::String,
6555}
6556#[allow(clippy::derive_partial_eq_without_eq)]
6557#[derive(Clone, PartialEq, ::prost::Message)]
6558pub struct DisconnectWhatsAppCallResponse {
6559}
6560#[allow(clippy::derive_partial_eq_without_eq)]
6561#[derive(Clone, PartialEq, ::prost::Message)]
6562pub struct ConnectWhatsAppCallRequest {
6563 #[prost(string, tag="1")]
6565 pub whatsapp_call_id: ::prost::alloc::string::String,
6566 #[prost(message, optional, tag="2")]
6569 pub sdp: ::core::option::Option<SessionDescription>,
6570}
6571#[allow(clippy::derive_partial_eq_without_eq)]
6572#[derive(Clone, PartialEq, ::prost::Message)]
6573pub struct ConnectWhatsAppCallResponse {
6574}
6575#[allow(clippy::derive_partial_eq_without_eq)]
6576#[derive(Clone, PartialEq, ::prost::Message)]
6577pub struct AcceptWhatsAppCallRequest {
6578 #[prost(string, tag="1")]
6580 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6581 #[prost(string, tag="2")]
6583 pub whatsapp_api_key: ::prost::alloc::string::String,
6584 #[prost(string, tag="13")]
6586 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6587 #[prost(string, tag="3")]
6589 pub whatsapp_call_id: ::prost::alloc::string::String,
6590 #[prost(string, tag="4")]
6592 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6593 #[prost(message, optional, tag="5")]
6596 pub sdp: ::core::option::Option<SessionDescription>,
6597 #[prost(string, tag="6")]
6599 pub room_name: ::prost::alloc::string::String,
6600 #[prost(message, repeated, tag="7")]
6602 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6603 #[prost(string, tag="8")]
6605 pub participant_identity: ::prost::alloc::string::String,
6606 #[prost(string, tag="9")]
6608 pub participant_name: ::prost::alloc::string::String,
6609 #[prost(string, tag="10")]
6611 pub participant_metadata: ::prost::alloc::string::String,
6612 #[prost(map="string, string", tag="11")]
6614 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6615 #[prost(string, tag="12")]
6619 pub destination_country: ::prost::alloc::string::String,
6620}
6621#[allow(clippy::derive_partial_eq_without_eq)]
6622#[derive(Clone, PartialEq, ::prost::Message)]
6623pub struct AcceptWhatsAppCallResponse {
6624 #[prost(string, tag="1")]
6626 pub room_name: ::prost::alloc::string::String,
6627}
6628#[allow(clippy::derive_partial_eq_without_eq)]
6629#[derive(Clone, PartialEq, ::prost::Message)]
6630pub struct WhatsAppCall {
6631 #[prost(string, tag="1")]
6633 pub whatsapp_call_id: ::prost::alloc::string::String,
6634 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
6636 pub direction: i32,
6637}
6638#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6639#[repr(i32)]
6640pub enum WhatsAppCallDirection {
6641 WhatsappCallDirectionInbound = 0,
6642 WhatsappCallDirectionOutbound = 2,
6643}
6644impl WhatsAppCallDirection {
6645 pub fn as_str_name(&self) -> &'static str {
6650 match self {
6651 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
6652 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
6653 }
6654 }
6655 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6657 match value {
6658 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
6659 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
6660 _ => None,
6661 }
6662 }
6663}
6664#[allow(clippy::derive_partial_eq_without_eq)]
6665#[derive(Clone, PartialEq, ::prost::Message)]
6666pub struct ConnectTwilioCallRequest {
6667 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
6669 pub twilio_call_direction: i32,
6670 #[prost(string, tag="2")]
6672 pub room_name: ::prost::alloc::string::String,
6673 #[prost(message, repeated, tag="3")]
6675 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6676 #[prost(string, tag="4")]
6678 pub participant_identity: ::prost::alloc::string::String,
6679 #[prost(string, tag="5")]
6681 pub participant_name: ::prost::alloc::string::String,
6682 #[prost(string, tag="6")]
6684 pub participant_metadata: ::prost::alloc::string::String,
6685 #[prost(map="string, string", tag="7")]
6687 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6688 #[prost(string, tag="8")]
6690 pub destination_country: ::prost::alloc::string::String,
6691}
6692pub mod connect_twilio_call_request {
6694 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6695 #[repr(i32)]
6696 pub enum TwilioCallDirection {
6697 Inbound = 0,
6699 Outbound = 1,
6701 }
6702 impl TwilioCallDirection {
6703 pub fn as_str_name(&self) -> &'static str {
6708 match self {
6709 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
6710 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
6711 }
6712 }
6713 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6715 match value {
6716 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
6717 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
6718 _ => None,
6719 }
6720 }
6721 }
6722}
6723#[allow(clippy::derive_partial_eq_without_eq)]
6724#[derive(Clone, PartialEq, ::prost::Message)]
6725pub struct ConnectTwilioCallResponse {
6726 #[prost(string, tag="1")]
6728 pub connect_url: ::prost::alloc::string::String,
6729}
6730#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6731#[repr(i32)]
6732pub enum ConnectorType {
6733 Unspecified = 0,
6734 WhatsApp = 1,
6735 Twilio = 2,
6736}
6737impl ConnectorType {
6738 pub fn as_str_name(&self) -> &'static str {
6743 match self {
6744 ConnectorType::Unspecified => "Unspecified",
6745 ConnectorType::WhatsApp => "WhatsApp",
6746 ConnectorType::Twilio => "Twilio",
6747 }
6748 }
6749 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6751 match value {
6752 "Unspecified" => Some(Self::Unspecified),
6753 "WhatsApp" => Some(Self::WhatsApp),
6754 "Twilio" => Some(Self::Twilio),
6755 _ => None,
6756 }
6757 }
6758}
6759include!("livekit.serde.rs");
6760